From 69d972d3857c0bc1f2196d50b7529bd2a8a2fdfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Doru=20Bl=C3=A2nzeanu?= Date: Tue, 17 Mar 2026 17:48:25 +0200 Subject: [PATCH 1/2] Move wasi related implementation to serparate module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Doru Blânzeanu --- src/bindings.rs | 9933 ----------------- src/main.rs | 54 +- src/wasi_impl/mod.rs | 11 + src/{ => wasi_impl}/resource.rs | 2 +- src/{ => wasi_impl}/types.rs | 2 +- src/{ => wasi_impl}/types/buffer.rs | 0 src/{ => wasi_impl}/types/cli.rs | 2 +- .../types/clocks_monotonic_clock.rs | 2 +- .../types/clocks_wall_clock.rs | 2 +- src/{ => wasi_impl}/types/headers.rs | 0 src/{ => wasi_impl}/types/http_future.rs | 0 .../types/http_future_headers.rs | 2 +- .../types/http_future_incoming_response.rs | 2 +- src/{ => wasi_impl}/types/http_headers.rs | 2 +- .../types/http_incoming_body.rs | 2 +- .../types/http_incoming_request.rs | 2 +- .../types/http_incoming_response.rs | 2 +- .../types/http_outgoing_body.rs | 2 +- .../types/http_outgoing_handler.rs | 4 +- .../types/http_outgoing_request.rs | 2 +- .../types/http_outgoing_response.rs | 2 +- .../types/http_request_options.rs | 2 +- .../types/http_response_outparam.rs | 2 +- src/{ => wasi_impl}/types/io_error.rs | 4 +- src/{ => wasi_impl}/types/io_poll.rs | 2 +- src/{ => wasi_impl}/types/io_stream.rs | 2 +- src/{ => wasi_impl}/types/random.rs | 2 +- src/{ => wasi_impl}/types/types.rs | 2 +- src/{ => wasi_impl}/worker.rs | 0 29 files changed, 60 insertions(+), 9986 deletions(-) delete mode 100644 src/bindings.rs create mode 100644 src/wasi_impl/mod.rs rename src/{ => wasi_impl}/resource.rs (98%) rename src/{ => wasi_impl}/types.rs (97%) rename src/{ => wasi_impl}/types/buffer.rs (100%) rename src/{ => wasi_impl}/types/cli.rs (97%) rename src/{ => wasi_impl}/types/clocks_monotonic_clock.rs (93%) rename src/{ => wasi_impl}/types/clocks_wall_clock.rs (93%) rename src/{ => wasi_impl}/types/headers.rs (100%) rename src/{ => wasi_impl}/types/http_future.rs (100%) rename src/{ => wasi_impl}/types/http_future_headers.rs (97%) rename src/{ => wasi_impl}/types/http_future_incoming_response.rs (97%) rename src/{ => wasi_impl}/types/http_headers.rs (98%) rename src/{ => wasi_impl}/types/http_incoming_body.rs (97%) rename src/{ => wasi_impl}/types/http_incoming_request.rs (98%) rename src/{ => wasi_impl}/types/http_incoming_response.rs (97%) rename src/{ => wasi_impl}/types/http_outgoing_body.rs (98%) rename src/{ => wasi_impl}/types/http_outgoing_handler.rs (98%) rename src/{ => wasi_impl}/types/http_outgoing_request.rs (99%) rename src/{ => wasi_impl}/types/http_outgoing_response.rs (98%) rename src/{ => wasi_impl}/types/http_request_options.rs (98%) rename src/{ => wasi_impl}/types/http_response_outparam.rs (96%) rename src/{ => wasi_impl}/types/io_error.rs (78%) rename src/{ => wasi_impl}/types/io_poll.rs (99%) rename src/{ => wasi_impl}/types/io_stream.rs (99%) rename src/{ => wasi_impl}/types/random.rs (89%) rename src/{ => wasi_impl}/types/types.rs (89%) rename src/{ => wasi_impl}/worker.rs (100%) diff --git a/src/bindings.rs b/src/bindings.rs deleted file mode 100644 index 7a62163..0000000 --- a/src/bindings.rs +++ /dev/null @@ -1,9933 +0,0 @@ -#![allow( - clippy::all, - dead_code, - unused_variables, - non_snake_case, - unused_braces, - unused_mut -)] -pub mod r#root { - pub mod r#component { - pub trait RootExports { - type IncomingHandler: super::super::r#wasi::r#http::IncomingHandler< - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >>::T, - >; - fn r#incoming_handler( - &mut self, - ) -> impl ::core::borrow::BorrowMut; - } - pub trait RootImports { - type Poll: super::super::r#wasi::r#io::Poll; - fn r#poll(&mut self) -> impl ::core::borrow::BorrowMut; - type MonotonicClock: super::super::r#wasi::r#clocks::MonotonicClock< - ::T, - >; - fn r#monotonic_clock( - &mut self, - ) -> impl ::core::borrow::BorrowMut; - type Random: super::super::r#wasi::r#random::Random; - fn r#random(&mut self) -> impl ::core::borrow::BorrowMut; - type Error: super::super::r#wasi::r#io::Error; - fn r#error(&mut self) -> impl ::core::borrow::BorrowMut; - type Streams: super::super::r#wasi::r#io::Streams< - ::T, - ::T, - >; - fn r#streams(&mut self) -> impl ::core::borrow::BorrowMut; - type Stdout: super::super::r#wasi::r#cli::Stdout< - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >; - fn r#stdout(&mut self) -> impl ::core::borrow::BorrowMut; - type Stderr: super::super::r#wasi::r#cli::Stderr< - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >; - fn r#stderr(&mut self) -> impl ::core::borrow::BorrowMut; - type Stdin: super::super::r#wasi::r#cli::Stdin< - ::T, - ::T, - >>::T, - >; - fn r#stdin(&mut self) -> impl ::core::borrow::BorrowMut; - type Types: super::super::r#wasi::r#http::Types< - super::super::r#wasi::r#clocks::r#monotonic_clock::Duration, - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - ::T, - >; - fn r#types(&mut self) -> impl ::core::borrow::BorrowMut; - type OutgoingHandler: super::super::r#wasi::r#http::OutgoingHandler< - super::super::r#wasi::r#http::r#types::ErrorCode, - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - ::T, - >>::T, - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >::T, - >; - fn r#outgoing_handler( - &mut self, - ) -> impl ::core::borrow::BorrowMut; - } - pub trait Root { - type Exports: RootExports; - fn instantiate( - self, - imports: I, - ) -> Self::Exports; - } - } -} -pub mod r#wasi { - pub mod r#cli { - pub mod r#stderr { - pub type OutputStream = OutputStream; - } - pub mod r#stdin { - pub type InputStream = InputStream; - } - pub mod r#stdout { - pub type OutputStream = OutputStream; - } - pub trait Stderr { - fn r#get_stderr(&mut self) -> r#stderr::OutputStream; - } - pub trait Stdin { - fn r#get_stdin(&mut self) -> r#stdin::InputStream; - } - pub trait Stdout { - fn r#get_stdout(&mut self) -> r#stdout::OutputStream; - } - } - pub mod r#clocks { - pub mod r#monotonic_clock { - pub type Pollable = Pollable; - pub type Instant = u64; - pub type Duration = u64; - } - pub trait MonotonicClock { - fn r#now(&mut self) -> r#monotonic_clock::Instant; - fn r#resolution(&mut self) -> r#monotonic_clock::Duration; - fn r#subscribe_instant( - &mut self, - r#when: r#monotonic_clock::Instant, - ) -> r#monotonic_clock::Pollable; - fn r#subscribe_duration( - &mut self, - r#when: r#monotonic_clock::Duration, - ) -> r#monotonic_clock::Pollable; - } - } - pub mod r#http { - pub mod r#incoming_handler { - pub type IncomingRequest = IncomingRequest; - pub type ResponseOutparam = ResponseOutparam; - } - pub mod r#outgoing_handler { - pub type OutgoingRequest = OutgoingRequest; - pub type RequestOptions = RequestOptions; - pub type FutureIncomingResponse = FutureIncomingResponse; - pub type ErrorCode = ErrorCode; - } - pub mod r#types { - pub trait Fields { - type T: ::core::marker::Send; - fn new(&mut self) -> Self::T; - fn r#from_list( - &mut self, - r#entries: alloc::vec::Vec<(self::FieldName, self::FieldValue)>, - ) -> ::core::result::Result; - fn r#get( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#name: self::FieldName, - ) -> alloc::vec::Vec; - fn r#has( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#name: self::FieldName, - ) -> bool; - fn r#set( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#name: self::FieldName, - r#value: alloc::vec::Vec, - ) -> ::core::result::Result<(), self::HeaderError>; - fn r#delete( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#name: self::FieldName, - ) -> ::core::result::Result<(), self::HeaderError>; - fn r#append( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#name: self::FieldName, - r#value: self::FieldValue, - ) -> ::core::result::Result<(), self::HeaderError>; - fn r#entries( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> alloc::vec::Vec<(self::FieldName, self::FieldValue)>; - fn r#clone( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> Self::T; - } - pub trait FutureIncomingResponse { - type T: ::core::marker::Send; - fn r#subscribe( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Pollable; - fn r#get( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option< - ::core::result::Result< - ::core::result::Result, - (), - >, - >; - } - pub trait FutureTrailers { - type T: ::core::marker::Send; - fn r#subscribe( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Pollable; - fn r#get( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option< - ::core::result::Result< - ::core::result::Result< - ::core::option::Option>, - self::ErrorCode, - >, - (), - >, - >; - } - pub trait IncomingBody { - type T: ::core::marker::Send; - fn r#stream( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result, ()>; - fn r#finish(&mut self, r#this: Self::T) -> FutureTrailers; - } - pub trait IncomingRequest { - type T: ::core::marker::Send; - fn r#method( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Method; - fn r#path_with_query( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option; - fn r#scheme( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option; - fn r#authority( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option; - fn r#headers( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Headers; - fn r#consume( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result; - } - pub trait IncomingResponse { - type T: ::core::marker::Send; - fn r#status( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::StatusCode; - fn r#headers( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Headers; - fn r#consume( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result; - } - pub trait OutgoingBody { - type T: ::core::marker::Send; - fn r#write( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result, ()>; - fn r#finish( - &mut self, - r#this: Self::T, - r#trailers: ::core::option::Option>, - ) -> ::core::result::Result<(), self::ErrorCode>; - } - pub trait OutgoingRequest { - type T: ::core::marker::Send; - fn new(&mut self, r#headers: self::Headers) -> Self::T; - fn r#body( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result; - fn r#method( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Method; - fn r#set_method( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#method: self::Method, - ) -> ::core::result::Result<(), ()>; - fn r#path_with_query( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option; - fn r#set_path_with_query( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#path_with_query: ::core::option::Option, - ) -> ::core::result::Result<(), ()>; - fn r#scheme( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option; - fn r#set_scheme( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#scheme: ::core::option::Option, - ) -> ::core::result::Result<(), ()>; - fn r#authority( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option; - fn r#set_authority( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#authority: ::core::option::Option, - ) -> ::core::result::Result<(), ()>; - fn r#headers( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Headers; - } - pub trait OutgoingResponse { - type T: ::core::marker::Send; - fn new(&mut self, r#headers: self::Headers) -> Self::T; - fn r#status_code( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::StatusCode; - fn r#set_status_code( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#status_code: self::StatusCode, - ) -> ::core::result::Result<(), ()>; - fn r#headers( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Headers; - fn r#body( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result; - } - pub trait RequestOptions { - type T: ::core::marker::Send; - fn new(&mut self) -> Self::T; - fn r#connect_timeout( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option>; - fn r#set_connect_timeout( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#duration: ::core::option::Option>, - ) -> ::core::result::Result<(), ()>; - fn r#first_byte_timeout( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option>; - fn r#set_first_byte_timeout( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#duration: ::core::option::Option>, - ) -> ::core::result::Result<(), ()>; - fn r#between_bytes_timeout( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::option::Option>; - fn r#set_between_bytes_timeout( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#duration: ::core::option::Option>, - ) -> ::core::result::Result<(), ()>; - } - pub trait ResponseOutparam { - type T: ::core::marker::Send; - fn r#set( - &mut self, - r#param: Self::T, - r#response: ::core::result::Result, - ) -> (); - } - pub type Duration = Duration; - pub type InputStream = InputStream; - pub type Pollable = Pollable; - pub type OutputStream = OutputStream; - pub type IoError = Error; - pub type FieldKey = alloc::string::String; - pub type FieldName = self::FieldKey; - pub type FieldValue = alloc::vec::Vec; - #[derive(Debug)] - pub enum HeaderError { - InvalidSyntax, - Forbidden, - Immutable, - } - #[derive(Debug)] - pub enum Method { - Get, - Head, - Post, - Put, - Delete, - Connect, - Options, - Trace, - Patch, - Other(alloc::string::String), - } - #[derive(Debug)] - pub enum Scheme { - HTTP, - HTTPS, - Other(alloc::string::String), - } - pub type Headers = Fields; - #[derive(Debug)] - pub struct DNSErrorPayload { - pub r#rcode: ::core::option::Option, - pub r#info_code: ::core::option::Option, - } - #[derive(Debug)] - pub struct TLSAlertReceivedPayload { - pub r#alert_id: ::core::option::Option, - pub r#alert_message: ::core::option::Option, - } - #[derive(Debug)] - pub struct FieldSizePayload { - pub r#field_name: ::core::option::Option, - pub r#field_size: ::core::option::Option, - } - #[derive(Debug)] - pub enum ErrorCode { - DNSTimeout, - DNSError(self::DNSErrorPayload), - DestinationNotFound, - DestinationUnavailable, - DestinationIPProhibited, - DestinationIPUnroutable, - ConnectionRefused, - ConnectionTerminated, - ConnectionTimeout, - ConnectionReadTimeout, - ConnectionWriteTimeout, - ConnectionLimitReached, - TLSProtocolError, - TLSCertificateError, - TLSAlertReceived(self::TLSAlertReceivedPayload), - HTTPRequestDenied, - HTTPRequestLengthRequired, - HTTPRequestBodySize(::core::option::Option), - HTTPRequestMethodInvalid, - HTTPRequestURIInvalid, - HTTPRequestURITooLong, - HTTPRequestHeaderSectionSize(::core::option::Option), - HTTPRequestHeaderSize(::core::option::Option), - HTTPRequestTrailerSectionSize(::core::option::Option), - HTTPRequestTrailerSize(self::FieldSizePayload), - HTTPResponseIncomplete, - HTTPResponseHeaderSectionSize(::core::option::Option), - HTTPResponseHeaderSize(self::FieldSizePayload), - HTTPResponseBodySize(::core::option::Option), - HTTPResponseTrailerSectionSize(::core::option::Option), - HTTPResponseTrailerSize(self::FieldSizePayload), - HTTPResponseTransferCoding( - ::core::option::Option, - ), - HTTPResponseContentCoding(::core::option::Option), - HTTPResponseTimeout, - HTTPUpgradeFailed, - HTTPProtocolError, - LoopDetected, - ConfigurationError, - InternalError(::core::option::Option), - } - pub type StatusCode = u16; - pub type Trailers = Fields; - } - pub trait IncomingHandler { - fn r#handle( - &mut self, - r#request: r#incoming_handler::IncomingRequest, - r#response_out: r#incoming_handler::ResponseOutparam, - ) -> (); - } - pub trait OutgoingHandler< - ErrorCode, - FutureIncomingResponse, - OutgoingRequest, - RequestOptions, - > { - fn r#handle( - &mut self, - r#request: r#outgoing_handler::OutgoingRequest, - r#options: ::core::option::Option< - r#outgoing_handler::RequestOptions, - >, - ) -> ::core::result::Result< - r#outgoing_handler::FutureIncomingResponse, - r#outgoing_handler::ErrorCode, - >; - } - pub trait Types< - Duration, - Error, - InputStream, - OutputStream, - Pollable, - >: r#types::Fields + r#types::FutureIncomingResponse< - ::T, - ::T, - Pollable, - >>::T, - InputStream, - >>::T, - >>::T, - Pollable, - > + r#types::FutureTrailers< - ::T, - Pollable, - > + r#types::IncomingBody< - ::T, - Pollable, - >>::T, - InputStream, - > + r#types::IncomingRequest< - ::T, - ::T, - Pollable, - >>::T, - InputStream, - >>::T, - > + r#types::IncomingResponse< - ::T, - ::T, - Pollable, - >>::T, - InputStream, - >>::T, - > + r#types::OutgoingBody< - ::T, - OutputStream, - > + r#types::OutgoingRequest< - ::T, - ::T, - OutputStream, - >>::T, - > + r#types::OutgoingResponse< - ::T, - ::T, - OutputStream, - >>::T, - > + r#types::RequestOptions< - Duration, - > + r#types::ResponseOutparam< - ::T, - ::T, - OutputStream, - >>::T, - >>::T, - > { - fn r#http_error_code( - &mut self, - r#err: ::hyperlight_common::resource::BorrowedResourceGuard< - r#types::IoError, - >, - ) -> ::core::option::Option; - } - } - pub mod r#io { - pub mod r#error { - pub trait Error { - type T: ::core::marker::Send; - fn r#to_debug_string( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> alloc::string::String; - } - } - pub mod r#poll { - pub trait Pollable { - type T: ::core::marker::Send; - fn r#ready( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> bool; - fn r#block( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> (); - } - } - pub mod r#streams { - pub trait InputStream { - type T: ::core::marker::Send; - fn r#read( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#len: u64, - ) -> ::core::result::Result< - alloc::vec::Vec, - self::StreamError, - >; - fn r#blocking_read( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#len: u64, - ) -> ::core::result::Result< - alloc::vec::Vec, - self::StreamError, - >; - fn r#skip( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#len: u64, - ) -> ::core::result::Result>; - fn r#blocking_skip( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#len: u64, - ) -> ::core::result::Result>; - fn r#subscribe( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Pollable; - } - pub trait OutputStream { - type T: ::core::marker::Send; - fn r#check_write( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result>; - fn r#write( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#contents: alloc::vec::Vec, - ) -> ::core::result::Result<(), self::StreamError>; - fn r#blocking_write_and_flush( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#contents: alloc::vec::Vec, - ) -> ::core::result::Result<(), self::StreamError>; - fn r#flush( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result<(), self::StreamError>; - fn r#blocking_flush( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> ::core::result::Result<(), self::StreamError>; - fn r#subscribe( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - ) -> self::Pollable; - fn r#write_zeroes( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#len: u64, - ) -> ::core::result::Result<(), self::StreamError>; - fn r#blocking_write_zeroes_and_flush( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#len: u64, - ) -> ::core::result::Result<(), self::StreamError>; - fn r#splice( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#src: ::hyperlight_common::resource::BorrowedResourceGuard< - InputStream, - >, - r#len: u64, - ) -> ::core::result::Result>; - fn r#blocking_splice( - &mut self, - self_: ::hyperlight_common::resource::BorrowedResourceGuard, - r#src: ::hyperlight_common::resource::BorrowedResourceGuard< - InputStream, - >, - r#len: u64, - ) -> ::core::result::Result>; - } - pub type Error = Error; - pub type Pollable = Pollable; - #[derive(Debug)] - pub enum StreamError { - LastOperationFailed(self::Error), - Closed, - } - } - pub trait Error: r#error::Error {} - pub trait Poll: r#poll::Pollable { - fn r#poll( - &mut self, - r#in: alloc::vec::Vec< - ::hyperlight_common::resource::BorrowedResourceGuard< - ::T, - >, - >, - ) -> alloc::vec::Vec; - } - pub trait Streams< - Error, - Pollable, - >: r#streams::InputStream< - Error, - Pollable, - > + r#streams::OutputStream< - Error, - >::T, - Pollable, - > {} - } - pub mod r#random { - pub trait Random { - fn r#get_random_bytes(&mut self, r#len: u64) -> alloc::vec::Vec; - } - } -} -pub(crate) struct RootResources { - resource0: (), - resource1: (), - resource2: (), - resource3: (), - resource4: (), - resource5: (), - resource6: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - ::T, - >>::T, - >, - >, - resource7: (), - resource8: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - >>::T, - >, - >, - resource9: (), - resource10: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - >, - >, - resource11: (), - resource12: (), - resource13: (), - resource14: (), - resource15: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >, - >, - resource16: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >>::T, - >, - >, - resource17: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - >::T, - >, - >, - resource18: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >, - >, - resource19: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >, - >, - resource20: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >, - >, - resource21: (), - resource22: (), - resource23: (), - resource24: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - >, - >, - resource25: (), - resource26: (), - resource27: (), - resource28: (), - resource29: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - >, - >, - resource30: (), - resource31: (), - resource32: (), - resource33: (), - resource34: (), - resource35: (), - resource36: (), - resource37: (), - resource38: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >, - >, - resource39: (), - resource40: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - ::T, - >>::T, - >, - >, - resource41: (), - resource42: (), - resource43: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - >, - >, - resource44: (), - resource45: (), - resource46: (), - resource47: ::std::collections::VecDeque< - ::hyperlight_common::resource::ResourceEntry< - ::T, - >, - >, - _phantomI: ::core::marker::PhantomData, -} -impl RootResources { - fn new() -> Self { - RootResources { - resource0: (), - resource1: (), - resource2: (), - resource3: (), - resource4: (), - resource5: (), - resource6: ::std::collections::VecDeque::new(), - resource7: (), - resource8: ::std::collections::VecDeque::new(), - resource9: (), - resource10: ::std::collections::VecDeque::new(), - resource11: (), - resource12: (), - resource13: (), - resource14: (), - resource15: ::std::collections::VecDeque::new(), - resource16: ::std::collections::VecDeque::new(), - resource17: ::std::collections::VecDeque::new(), - resource18: ::std::collections::VecDeque::new(), - resource19: ::std::collections::VecDeque::new(), - resource20: ::std::collections::VecDeque::new(), - resource21: (), - resource22: (), - resource23: (), - resource24: ::std::collections::VecDeque::new(), - resource25: (), - resource26: (), - resource27: (), - resource28: (), - resource29: ::std::collections::VecDeque::new(), - resource30: (), - resource31: (), - resource32: (), - resource33: (), - resource34: (), - resource35: (), - resource36: (), - resource37: (), - resource38: ::std::collections::VecDeque::new(), - resource39: (), - resource40: ::std::collections::VecDeque::new(), - resource41: (), - resource42: (), - resource43: ::std::collections::VecDeque::new(), - resource44: (), - resource45: (), - resource46: (), - resource47: ::std::collections::VecDeque::new(), - _phantomI: ::core::marker::PhantomData, - } - } -} -impl< - I: r#root::r#component::RootImports, - S: ::hyperlight_host::sandbox::Callable, -> r#wasi::r#http::IncomingHandler< - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >>::T, -> for RootSandbox { - fn r#handle( - &mut self, - r#request: r#wasi::r#http::r#incoming_handler::IncomingRequest< - ::T, - ::T, - ::T, - >>::T, - ::T, - ::T, - >>::T, - >>::T, - >>::T, - >, - r#response_out: r#wasi::r#http::r#incoming_handler::ResponseOutparam< - ::T, - ::T, - ::T, - ::T, - ::T, - >>::T, - ::T, - >>::T, - >>::T, - >>::T, - >>::T, - >, - ) -> () { - let args = { - let mut rts = self.rt.lock().unwrap(); - ( - { - let i = rts.resource24.len(); - rts.resource24 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(r#request), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }, - { - let i = rts.resource16.len(); - rts.resource16 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - r#response_out, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }, - ) - }; - let ret = ::hyperlight_host::sandbox::Callable::call::< - ::std::vec::Vec, - >(&mut self.sb, "r#wasi::r#http::handle", args); - let ::std::result::Result::Ok(ret) = ret else { - panic!("bad return from guest {:?}", ret) - }; - #[allow(clippy::unused_unit)] () - } -} -pub struct RootSandbox< - T: r#root::r#component::RootImports, - S: ::hyperlight_host::sandbox::Callable, -> { - pub(crate) sb: S, - pub(crate) rt: ::std::sync::Arc<::std::sync::Mutex>>, -} -pub(crate) fn register_host_functions< - I: r#root::r#component::RootImports + ::std::marker::Send + 'static, - S: ::hyperlight_host::func::Registerable, ->(sb: &mut S, i: I) -> ::std::sync::Arc<::std::sync::Mutex>> { - let rts = ::std::sync::Arc::new(::std::sync::Mutex::new(RootResources::new())); - let imports = ::std::sync::Arc::new(::std::sync::Mutex::new(i)); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]pollable.ready", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#poll( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#poll::Pollable::r#ready( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource47[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ alloc::vec![if ret { 1u8 } else { 0u8 }] }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]pollable.block", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#poll( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#poll::Pollable::r#block( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource47[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok(::alloc::vec::Vec::new()) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::poll", - move |r#in: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#poll( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::Poll::r#poll( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let n = u32::from_ne_bytes(r#in[0..4].try_into().unwrap()) - as usize; - let mut in_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let in_elem = &r#in[cursor..]; - let (x, b) = { - let i = u32::from_ne_bytes( - in_elem[0..4].try_into().unwrap(), - ); - let Some(v) = rts.resource47[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - }; - cursor += b; - in_list.push(x); - } - (in_list, cursor) - } - .0, - ); - Ok({ - let mut ret_list = alloc::vec::Vec::new(); - let n = ret.len(); - ret_list.extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_elem in ret { - ret_list - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_elem)) - }) - } - ret_list - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#clocks::now", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#monotonic_clock( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#clocks::MonotonicClock::r#now( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ alloc::vec::Vec::from(u64::to_ne_bytes(ret)) }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#clocks::resolution", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#monotonic_clock( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#clocks::MonotonicClock::r#resolution( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ alloc::vec::Vec::from(u64::to_ne_bytes(ret)) }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#clocks::subscribe-instant", - move |r#when: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#monotonic_clock( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#clocks::MonotonicClock::r#subscribe_instant( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - ( - u64::from_ne_bytes(r#when[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - let i = rts.resource47.len(); - rts.resource47 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#clocks::subscribe-duration", - move |r#when: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#monotonic_clock( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#clocks::MonotonicClock::r#subscribe_duration( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - ( - u64::from_ne_bytes(r#when[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - let i = rts.resource47.len(); - rts.resource47 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#random::get-random-bytes", - move |r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#random( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#random::Random::r#get_random_bytes( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - let mut ret_list = alloc::vec::Vec::new(); - let n = ret.len(); - ret_list.extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_elem in ret { - ret_list - .extend({ alloc::vec::Vec::from(u8::to_ne_bytes(ret_elem)) }) - } - ret_list - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]error.to-debug-string", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#error( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#error::Error::r#to_debug_string( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource43[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let mut ret_string = alloc::vec::Vec::new(); - let ret_bytes = ret.into_bytes(); - ret_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_bytes.len() as u32), - ), - ); - ret_string.extend(ret_bytes); - ret_string - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]input-stream.read", - move |self_: ::std::vec::Vec, r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::InputStream::r#read( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let mut ret_body_list = alloc::vec::Vec::new(); - let n = ret_body.len(); - ret_body_list - .extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_body_elem in ret_body { - ret_body_list - .extend({ - alloc::vec::Vec::from(u8::to_ne_bytes(ret_body_elem)) - }) - } - ret_body_list - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]input-stream.blocking-read", - move |self_: ::std::vec::Vec, r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::InputStream::r#blocking_read( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let mut ret_body_list = alloc::vec::Vec::new(); - let n = ret_body.len(); - ret_body_list - .extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_body_elem in ret_body { - ret_body_list - .extend({ - alloc::vec::Vec::from(u8::to_ne_bytes(ret_body_elem)) - }) - } - ret_body_list - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]input-stream.skip", - move |self_: ::std::vec::Vec, r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::InputStream::r#skip( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]input-stream.blocking-skip", - move |self_: ::std::vec::Vec, r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::InputStream::r#blocking_skip( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]input-stream.subscribe", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::InputStream::r#subscribe( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource47.len(); - rts.resource47 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.check-write", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#check_write( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.write", - move |self_: ::std::vec::Vec, r#contents: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#write( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#contents[0..4].try_into().unwrap()) - as usize; - let mut contents_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let contents_elem = &r#contents[cursor..]; - let (x, b) = { - ( - u8::from_ne_bytes( - contents_elem[0..1usize].try_into().unwrap(), - ), - 1usize, - ) - }; - cursor += b; - contents_list.push(x); - } - (contents_list, cursor) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.blocking-write-and-flush", - move |self_: ::std::vec::Vec, r#contents: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#blocking_write_and_flush( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#contents[0..4].try_into().unwrap()) - as usize; - let mut contents_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let contents_elem = &r#contents[cursor..]; - let (x, b) = { - ( - u8::from_ne_bytes( - contents_elem[0..1usize].try_into().unwrap(), - ), - 1usize, - ) - }; - cursor += b; - contents_list.push(x); - } - (contents_list, cursor) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.flush", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#flush( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.blocking-flush", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#blocking_flush( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.subscribe", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#subscribe( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource47.len(); - rts.resource47 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.write-zeroes", - move |self_: ::std::vec::Vec, r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#write_zeroes( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.blocking-write-zeroes-and-flush", - move |self_: ::std::vec::Vec, r#len: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#blocking_write_zeroes_and_flush( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.splice", - move | - self_: ::std::vec::Vec, - r#src: ::std::vec::Vec, - r#len: ::std::vec::Vec| - { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#splice( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let i = u32::from_ne_bytes(r#src[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#io::[method]output-stream.blocking-splice", - move | - self_: ::std::vec::Vec, - r#src: ::std::vec::Vec, - r#len: ::std::vec::Vec| - { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#streams( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#io::r#streams::OutputStream::r#blocking_splice( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource38[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let i = u32::from_ne_bytes(r#src[0..4].try_into().unwrap()); - let Some(v) = rts.resource40[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u64::from_ne_bytes(r#len[0..8usize].try_into().unwrap()), - 8usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::LastOperationFailed(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - ret_body_ret - .extend({ - let i = rts.resource43.len(); - rts.resource43 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - } - r#wasi::r#io::r#streams::StreamError::< - ::T, - >::Closed => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#cli::get-stdout", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#stdout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#cli::Stdout::r#get_stdout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ - let i = rts.resource38.len(); - rts.resource38 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#cli::get-stderr", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#stderr( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#cli::Stderr::r#get_stderr( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ - let i = rts.resource38.len(); - rts.resource38 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#cli::get-stdin", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#stdin( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#cli::Stdin::r#get_stdin( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ - let i = rts.resource40.len(); - rts.resource40 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[constructor]fields", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::new( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[static]fields.from-list", - move |r#entries: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#from_list( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let n = u32::from_ne_bytes(r#entries[0..4].try_into().unwrap()) - as usize; - let mut entries_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let entries_elem = &r#entries[cursor..]; - let (x, b) = { - let entries_elem_elem = &entries_elem[0..]; - let mut entries_elem_len = 0; - let (entries_elem_elem0, b) = { - let n = u32::from_ne_bytes( - entries_elem_elem[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&entries_elem_elem[4..4 + n]) - .unwrap(), - ); - (s, n + 4) - }; - entries_elem_len += b; - let entries_elem_elem = &entries_elem_elem[b..]; - let (entries_elem_elem1, b) = { - let n = u32::from_ne_bytes( - entries_elem_elem[0..4].try_into().unwrap(), - ) as usize; - let mut entries_elem_elem_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let entries_elem_elem_elem = &entries_elem_elem[cursor..]; - let (x, b) = { - ( - u8::from_ne_bytes( - entries_elem_elem_elem[0..1usize].try_into().unwrap(), - ), - 1usize, - ) - }; - cursor += b; - entries_elem_elem_list.push(x); - } - (entries_elem_elem_list, cursor) - }; - entries_elem_len += b; - let entries_elem_elem = &entries_elem_elem[b..]; - ((entries_elem_elem0, entries_elem_elem1), entries_elem_len) - }; - cursor += b; - entries_list.push(x); - } - (entries_list, cursor) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::HeaderError::InvalidSyntax => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::HeaderError::Forbidden => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::HeaderError::Immutable => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.get", - move |self_: ::std::vec::Vec, r#name: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#get( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#name[0..4].try_into().unwrap()) - as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&r#name[4..4 + n]).unwrap(), - ); - (s, n + 4) - } - .0, - ); - Ok({ - let mut ret_list = alloc::vec::Vec::new(); - let n = ret.len(); - ret_list.extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_elem in ret { - ret_list - .extend({ - let mut ret_elem_list = alloc::vec::Vec::new(); - let n = ret_elem.len(); - ret_elem_list - .extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_elem_elem in ret_elem { - ret_elem_list - .extend({ - alloc::vec::Vec::from(u8::to_ne_bytes(ret_elem_elem)) - }) - } - ret_elem_list - }) - } - ret_list - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.has", - move |self_: ::std::vec::Vec, r#name: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#has( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#name[0..4].try_into().unwrap()) - as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&r#name[4..4 + n]).unwrap(), - ); - (s, n + 4) - } - .0, - ); - Ok({ alloc::vec![if ret { 1u8 } else { 0u8 }] }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.set", - move | - self_: ::std::vec::Vec, - r#name: ::std::vec::Vec, - r#value: ::std::vec::Vec| - { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#set( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#name[0..4].try_into().unwrap()) - as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&r#name[4..4 + n]).unwrap(), - ); - (s, n + 4) - } - .0, - { - let n = u32::from_ne_bytes(r#value[0..4].try_into().unwrap()) - as usize; - let mut value_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let value_elem = &r#value[cursor..]; - let (x, b) = { - let n = u32::from_ne_bytes( - value_elem[0..4].try_into().unwrap(), - ) as usize; - let mut value_elem_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let value_elem_elem = &value_elem[cursor..]; - let (x, b) = { - ( - u8::from_ne_bytes( - value_elem_elem[0..1usize].try_into().unwrap(), - ), - 1usize, - ) - }; - cursor += b; - value_elem_list.push(x); - } - (value_elem_list, cursor) - }; - cursor += b; - value_list.push(x); - } - (value_list, cursor) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::HeaderError::InvalidSyntax => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::HeaderError::Forbidden => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::HeaderError::Immutable => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.delete", - move |self_: ::std::vec::Vec, r#name: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#delete( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#name[0..4].try_into().unwrap()) - as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&r#name[4..4 + n]).unwrap(), - ); - (s, n + 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::HeaderError::InvalidSyntax => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::HeaderError::Forbidden => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::HeaderError::Immutable => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.append", - move | - self_: ::std::vec::Vec, - r#name: ::std::vec::Vec, - r#value: ::std::vec::Vec| - { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#append( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#name[0..4].try_into().unwrap()) - as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&r#name[4..4 + n]).unwrap(), - ); - (s, n + 4) - } - .0, - { - let n = u32::from_ne_bytes(r#value[0..4].try_into().unwrap()) - as usize; - let mut value_list = alloc::vec::Vec::new(); - let mut cursor = 4; - for i in 0..n { - let value_elem = &r#value[cursor..]; - let (x, b) = { - ( - u8::from_ne_bytes( - value_elem[0..1usize].try_into().unwrap(), - ), - 1usize, - ) - }; - cursor += b; - value_list.push(x); - } - (value_list, cursor) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::HeaderError::InvalidSyntax => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::HeaderError::Forbidden => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::HeaderError::Immutable => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.entries", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#entries( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let mut ret_list = alloc::vec::Vec::new(); - let n = ret.len(); - ret_list.extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_elem in ret { - ret_list - .extend({ - let mut ret_elem_tuple = alloc::vec::Vec::new(); - let ret_elem_elem = ret_elem.0; - ret_elem_tuple - .extend({ - let mut ret_elem_elem_string = alloc::vec::Vec::new(); - let ret_elem_elem_bytes = ret_elem_elem.into_bytes(); - ret_elem_elem_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_elem_elem_bytes.len() as u32), - ), - ); - ret_elem_elem_string.extend(ret_elem_elem_bytes); - ret_elem_elem_string - }); - let ret_elem_elem = ret_elem.1; - ret_elem_tuple - .extend({ - let mut ret_elem_elem_list = alloc::vec::Vec::new(); - let n = ret_elem_elem.len(); - ret_elem_elem_list - .extend(alloc::vec::Vec::from(u32::to_ne_bytes(n as u32))); - for ret_elem_elem_elem in ret_elem_elem { - ret_elem_elem_list - .extend({ - alloc::vec::Vec::from(u8::to_ne_bytes(ret_elem_elem_elem)) - }) - } - ret_elem_elem_list - }); - ret_elem_tuple - }) - } - ret_list - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]fields.clone", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::Fields::r#clone( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-request.method", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingRequest::r#method( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource24[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let mut ret_ret = alloc::vec::Vec::new(); - match ret { - r#wasi::r#http::r#types::Method::Get => { - ret_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::Method::Head => { - ret_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::Method::Post => { - ret_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::Method::Put => { - ret_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::Method::Delete => { - ret_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::Method::Connect => { - ret_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::Method::Options => { - ret_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::Method::Trace => { - ret_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::Method::Patch => { - ret_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::Method::Other(ret_body) => { - ret_ret.extend(u32::to_ne_bytes(9u32)); - ret_ret - .extend({ - let mut ret_body_string = alloc::vec::Vec::new(); - let ret_body_bytes = ret_body.into_bytes(); - ret_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_bytes.len() as u32), - ), - ); - ret_body_string.extend(ret_body_bytes); - ret_body_string - }) - } - } - ret_ret - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-request.path-with-query", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingRequest::r#path_with_query( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource24[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_string = alloc::vec::Vec::new(); - let ret_body_bytes = ret_body.into_bytes(); - ret_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_bytes.len() as u32), - ), - ); - ret_body_string.extend(ret_body_bytes); - ret_body_string - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-request.scheme", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingRequest::r#scheme( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource24[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::Scheme::HTTP => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::Scheme::HTTPS => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::Scheme::Other(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - ret_body_ret - .extend({ - let mut ret_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_bytes = ret_body_body.into_bytes(); - ret_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_bytes.len() as u32), - ), - ); - ret_body_body_string.extend(ret_body_body_bytes); - ret_body_body_string - }) - } - } - ret_body_ret - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-request.authority", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingRequest::r#authority( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource24[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_string = alloc::vec::Vec::new(); - let ret_body_bytes = ret_body.into_bytes(); - ret_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_bytes.len() as u32), - ), - ); - ret_body_string.extend(ret_body_bytes); - ret_body_string - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-request.headers", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingRequest::r#headers( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource24[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-request.consume", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingRequest::r#consume( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource24[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource20.len(); - rts.resource20 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-body.stream", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingBody::r#stream( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource20[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource40.len(); - rts.resource40 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[static]incoming-body.finish", - move |r#this: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingBody::r#finish( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#this[0..4].try_into().unwrap()); - let Some(v) = rts.resource20[i as usize].take() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource8.len(); - rts.resource8 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[constructor]outgoing-request", - move |r#headers: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::new( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#headers[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].take() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource19.len(); - rts.resource19 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.body", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#body( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource18.len(); - rts.resource18 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.method", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#method( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let mut ret_ret = alloc::vec::Vec::new(); - match ret { - r#wasi::r#http::r#types::Method::Get => { - ret_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::Method::Head => { - ret_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::Method::Post => { - ret_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::Method::Put => { - ret_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::Method::Delete => { - ret_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::Method::Connect => { - ret_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::Method::Options => { - ret_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::Method::Trace => { - ret_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::Method::Patch => { - ret_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::Method::Other(ret_body) => { - ret_ret.extend(u32::to_ne_bytes(9u32)); - ret_ret - .extend({ - let mut ret_body_string = alloc::vec::Vec::new(); - let ret_body_bytes = ret_body.into_bytes(); - ret_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_bytes.len() as u32), - ), - ); - ret_body_string.extend(ret_body_bytes); - ret_body_string - }) - } - } - ret_ret - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.set-method", - move |self_: ::std::vec::Vec, r#method: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#set_method( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u32::from_ne_bytes(r#method[0..4].try_into().unwrap()); - let method_body = &r#method[4..]; - match n { - 0u32 => (r#wasi::r#http::r#types::Method::Get, 4), - 1u32 => (r#wasi::r#http::r#types::Method::Head, 4), - 2u32 => (r#wasi::r#http::r#types::Method::Post, 4), - 3u32 => (r#wasi::r#http::r#types::Method::Put, 4), - 4u32 => (r#wasi::r#http::r#types::Method::Delete, 4), - 5u32 => (r#wasi::r#http::r#types::Method::Connect, 4), - 6u32 => (r#wasi::r#http::r#types::Method::Options, 4), - 7u32 => (r#wasi::r#http::r#types::Method::Trace, 4), - 8u32 => (r#wasi::r#http::r#types::Method::Patch, 4), - 9u32 => { - let (method_case_Other, b) = { - let n = u32::from_ne_bytes( - method_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&method_body[4..4 + n]).unwrap(), - ); - (s, n + 4) - }; - ( - r#wasi::r#http::r#types::Method::Other(method_case_Other), - b + 4, - ) - } - _ => panic!("invalid value for variant"), - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.path-with-query", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#path_with_query( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_string = alloc::vec::Vec::new(); - let ret_body_bytes = ret_body.into_bytes(); - ret_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_bytes.len() as u32), - ), - ); - ret_body_string.extend(ret_body_bytes); - ret_body_string - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.set-path-with-query", - move |self_: ::std::vec::Vec, r#path_with_query: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#set_path_with_query( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes( - r#path_with_query[0..1].try_into().unwrap(), - ); - if n != 0 { - let path_with_query_body = &r#path_with_query[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - path_with_query_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&path_with_query_body[4..4 + n]) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.scheme", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#scheme( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::Scheme::HTTP => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::Scheme::HTTPS => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - } - r#wasi::r#http::r#types::Scheme::Other(ret_body_body) => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - ret_body_ret - .extend({ - let mut ret_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_bytes = ret_body_body.into_bytes(); - ret_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_bytes.len() as u32), - ), - ); - ret_body_body_string.extend(ret_body_body_bytes); - ret_body_body_string - }) - } - } - ret_body_ret - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.set-scheme", - move |self_: ::std::vec::Vec, r#scheme: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#set_scheme( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#scheme[0..1].try_into().unwrap()); - if n != 0 { - let scheme_body = &r#scheme[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - scheme_body[0..4].try_into().unwrap(), - ); - let scheme_body_body = &scheme_body[4..]; - match n { - 0u32 => (r#wasi::r#http::r#types::Scheme::HTTP, 4), - 1u32 => (r#wasi::r#http::r#types::Scheme::HTTPS, 4), - 2u32 => { - let (scheme_body_case_Other, b) = { - let n = u32::from_ne_bytes( - scheme_body_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&scheme_body_body[4..4 + n]).unwrap(), - ); - (s, n + 4) - }; - ( - r#wasi::r#http::r#types::Scheme::Other( - scheme_body_case_Other, - ), - b + 4, - ) - } - _ => panic!("invalid value for variant"), - } - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.authority", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#authority( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_string = alloc::vec::Vec::new(); - let ret_body_bytes = ret_body.into_bytes(); - ret_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_bytes.len() as u32), - ), - ); - ret_body_string.extend(ret_body_bytes); - ret_body_string - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.set-authority", - move |self_: ::std::vec::Vec, r#authority: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#set_authority( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#authority[0..1].try_into().unwrap()); - if n != 0 { - let authority_body = &r#authority[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - authority_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&authority_body[4..4 + n]).unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-request.headers", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingRequest::r#headers( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-body.write", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingBody::r#write( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource18[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource38.len(); - rts.resource38 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[static]outgoing-body.finish", - move |r#this: ::std::vec::Vec, r#trailers: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingBody::r#finish( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#this[0..4].try_into().unwrap()); - let Some(v) = rts.resource18[i as usize].take() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#trailers[0..1].try_into().unwrap()); - if n != 0 { - let trailers_body = &r#trailers[1..]; - let (x, b) = { - let i = u32::from_ne_bytes( - trailers_body[0..4].try_into().unwrap(), - ); - let Some(v) = rts.resource29[i as usize].take() else { - panic!(""); - }; - (v, 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::ErrorCode::DNSTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::ErrorCode::DNSError( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_rcode = ret_body_body.r#rcode; - ret_body_body_record - .extend({ - match ret_body_body_field_rcode { - ::core::option::Option::Some( - ret_body_body_field_rcode_body, - ) => { - let mut ret_body_body_field_rcode_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_rcode_ret - .extend({ - let mut ret_body_body_field_rcode_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_rcode_body_bytes = ret_body_body_field_rcode_body - .into_bytes(); - ret_body_body_field_rcode_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_rcode_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_rcode_body_string - .extend(ret_body_body_field_rcode_body_bytes); - ret_body_body_field_rcode_body_string - }); - ret_body_body_field_rcode_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_info_code = ret_body_body - .r#info_code; - ret_body_body_record - .extend({ - match ret_body_body_field_info_code { - ::core::option::Option::Some( - ret_body_body_field_info_code_body, - ) => { - let mut ret_body_body_field_info_code_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_info_code_ret - .extend({ - alloc::vec::Vec::from( - u16::to_ne_bytes(ret_body_body_field_info_code_body), - ) - }); - ret_body_body_field_info_code_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::DestinationNotFound => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationUnavailable => { - ret_body_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPProhibited => { - ret_body_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPUnroutable => { - ret_body_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionRefused => { - ret_body_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTerminated => { - ret_body_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionReadTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(9u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionWriteTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(10u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionLimitReached => { - ret_body_ret.extend(u32::to_ne_bytes(11u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSProtocolError => { - ret_body_ret.extend(u32::to_ne_bytes(12u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSCertificateError => { - ret_body_ret.extend(u32::to_ne_bytes(13u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSAlertReceived( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(14u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_alert_id = ret_body_body.r#alert_id; - ret_body_body_record - .extend({ - match ret_body_body_field_alert_id { - ::core::option::Option::Some( - ret_body_body_field_alert_id_body, - ) => { - let mut ret_body_body_field_alert_id_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_alert_id_ret - .extend({ - alloc::vec::Vec::from( - u8::to_ne_bytes(ret_body_body_field_alert_id_body), - ) - }); - ret_body_body_field_alert_id_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_alert_message = ret_body_body - .r#alert_message; - ret_body_body_record - .extend({ - match ret_body_body_field_alert_message { - ::core::option::Option::Some( - ret_body_body_field_alert_message_body, - ) => { - let mut ret_body_body_field_alert_message_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_alert_message_ret - .extend({ - let mut ret_body_body_field_alert_message_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_alert_message_body_bytes = ret_body_body_field_alert_message_body - .into_bytes(); - ret_body_body_field_alert_message_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_alert_message_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_alert_message_body_string - .extend(ret_body_body_field_alert_message_body_bytes); - ret_body_body_field_alert_message_body_string - }); - ret_body_body_field_alert_message_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestDenied => { - ret_body_ret.extend(u32::to_ne_bytes(15u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestLengthRequired => { - ret_body_ret.extend(u32::to_ne_bytes(16u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestBodySize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(17u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestMethodInvalid => { - ret_body_ret.extend(u32::to_ne_bytes(18u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURIInvalid => { - ret_body_ret.extend(u32::to_ne_bytes(19u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURITooLong => { - ret_body_ret.extend(u32::to_ne_bytes(20u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(21u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(22u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_field_field_name = ret_body_body_body - .r#field_name; - ret_body_body_body_record - .extend({ - match ret_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_field_field_name_body_bytes = ret_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_field_field_name_body_string - .extend(ret_body_body_body_field_field_name_body_bytes); - ret_body_body_body_field_field_name_body_string - }); - ret_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_field_field_size = ret_body_body_body - .r#field_size; - ret_body_body_body_record - .extend({ - match ret_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_field_field_size_body), - ) - }); - ret_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_record - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(23u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(24u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseIncomplete => { - ret_body_ret.extend(u32::to_ne_bytes(25u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(26u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(27u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseBodySize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(28u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(29u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(30u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTransferCoding( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(31u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseContentCoding( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(32u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(33u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPUpgradeFailed => { - ret_body_ret.extend(u32::to_ne_bytes(34u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPProtocolError => { - ret_body_ret.extend(u32::to_ne_bytes(35u32)); - } - r#wasi::r#http::r#types::ErrorCode::LoopDetected => { - ret_body_ret.extend(u32::to_ne_bytes(36u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConfigurationError => { - ret_body_ret.extend(u32::to_ne_bytes(37u32)); - } - r#wasi::r#http::r#types::ErrorCode::InternalError( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(38u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[constructor]request-options", - move || { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::new( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - Ok({ - let i = rts.resource17.len(); - rts.resource17 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]request-options.connect-timeout", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::r#connect_timeout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource17[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]request-options.set-connect-timeout", - move |self_: ::std::vec::Vec, r#duration: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::r#set_connect_timeout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource17[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#duration[0..1].try_into().unwrap()); - if n != 0 { - let duration_body = &r#duration[1..]; - let (x, b) = { - ( - u64::from_ne_bytes( - duration_body[0..8usize].try_into().unwrap(), - ), - 8usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]request-options.first-byte-timeout", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::r#first_byte_timeout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource17[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]request-options.set-first-byte-timeout", - move |self_: ::std::vec::Vec, r#duration: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::r#set_first_byte_timeout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource17[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#duration[0..1].try_into().unwrap()); - if n != 0 { - let duration_body = &r#duration[1..]; - let (x, b) = { - ( - u64::from_ne_bytes( - duration_body[0..8usize].try_into().unwrap(), - ), - 8usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]request-options.between-bytes-timeout", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::r#between_bytes_timeout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource17[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body)) - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]request-options.set-between-bytes-timeout", - move |self_: ::std::vec::Vec, r#duration: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::RequestOptions::r#set_between_bytes_timeout( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource17[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#duration[0..1].try_into().unwrap()); - if n != 0 { - let duration_body = &r#duration[1..]; - let (x, b) = { - ( - u64::from_ne_bytes( - duration_body[0..8usize].try_into().unwrap(), - ), - 8usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[static]response-outparam.set", - move |r#param: ::std::vec::Vec, r#response: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::ResponseOutparam::r#set( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#param[0..4].try_into().unwrap()); - let Some(v) = rts.resource16[i as usize].take() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let i = u8::from_ne_bytes(r#response[0..1].try_into().unwrap()); - let response_body = &r#response[1..]; - if i == 0 { - let (x, b) = { - let i = u32::from_ne_bytes( - response_body[0..4].try_into().unwrap(), - ); - let Some(v) = rts.resource15[i as usize].take() else { - panic!(""); - }; - (v, 4) - }; - (::core::result::Result::Ok(x), b + 1) - } else { - let (x, b) = { - let n = u32::from_ne_bytes( - response_body[0..4].try_into().unwrap(), - ); - let response_body_body = &response_body[4..]; - match n { - 0u32 => (r#wasi::r#http::r#types::ErrorCode::DNSTimeout, 4), - 1u32 => { - let (response_body_case_DNSError, b) = { - let mut response_body_body_cursor = 0; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_rcode, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_field_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8( - &response_body_body_field_body[4..4 + n], - ) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_info_code, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - ( - u16::from_ne_bytes( - response_body_body_field_body[0..2usize].try_into().unwrap(), - ), - 2usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - ( - r#wasi::r#http::r#types::DNSErrorPayload { - r#rcode: response_body_body_field_rcode, - r#info_code: response_body_body_field_info_code, - }, - response_body_body_cursor, - ) - }; - ( - r#wasi::r#http::r#types::ErrorCode::DNSError( - response_body_case_DNSError, - ), - b + 4, - ) - } - 2u32 => { - (r#wasi::r#http::r#types::ErrorCode::DestinationNotFound, 4) - } - 3u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::DestinationUnavailable, - 4, - ) - } - 4u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::DestinationIPProhibited, - 4, - ) - } - 5u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::DestinationIPUnroutable, - 4, - ) - } - 6u32 => { - (r#wasi::r#http::r#types::ErrorCode::ConnectionRefused, 4) - } - 7u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::ConnectionTerminated, - 4, - ) - } - 8u32 => { - (r#wasi::r#http::r#types::ErrorCode::ConnectionTimeout, 4) - } - 9u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::ConnectionReadTimeout, - 4, - ) - } - 10u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::ConnectionWriteTimeout, - 4, - ) - } - 11u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::ConnectionLimitReached, - 4, - ) - } - 12u32 => { - (r#wasi::r#http::r#types::ErrorCode::TLSProtocolError, 4) - } - 13u32 => { - (r#wasi::r#http::r#types::ErrorCode::TLSCertificateError, 4) - } - 14u32 => { - let (response_body_case_TLSAlertReceived, b) = { - let mut response_body_body_cursor = 0; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_alert_id, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - ( - u8::from_ne_bytes( - response_body_body_field_body[0..1usize].try_into().unwrap(), - ), - 1usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_alert_message, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_field_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8( - &response_body_body_field_body[4..4 + n], - ) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - ( - r#wasi::r#http::r#types::TLSAlertReceivedPayload { - r#alert_id: response_body_body_field_alert_id, - r#alert_message: response_body_body_field_alert_message, - }, - response_body_body_cursor, - ) - }; - ( - r#wasi::r#http::r#types::ErrorCode::TLSAlertReceived( - response_body_case_TLSAlertReceived, - ), - b + 4, - ) - } - 15u32 => { - (r#wasi::r#http::r#types::ErrorCode::HTTPRequestDenied, 4) - } - 16u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestLengthRequired, - 4, - ) - } - 17u32 => { - let (response_body_case_HTTPRequestBodySize, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - ( - u64::from_ne_bytes( - response_body_body_body[0..8usize].try_into().unwrap(), - ), - 8usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestBodySize( - response_body_case_HTTPRequestBodySize, - ), - b + 4, - ) - } - 18u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestMethodInvalid, - 4, - ) - } - 19u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURIInvalid, - 4, - ) - } - 20u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURITooLong, - 4, - ) - } - 21u32 => { - let (response_body_case_HTTPRequestHeaderSectionSize, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSectionSize( - response_body_case_HTTPRequestHeaderSectionSize, - ), - b + 4, - ) - } - 22u32 => { - let (response_body_case_HTTPRequestHeaderSize, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - let mut response_body_body_body_cursor = 0; - let response_body_body_body_field = &response_body_body_body[response_body_body_body_cursor..]; - let (response_body_body_body_field_field_name, b) = { - let n = u8::from_ne_bytes( - response_body_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body_field_body = &response_body_body_body_field[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_body_field_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8( - &response_body_body_body_field_body[4..4 + n], - ) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_body_cursor += b; - let response_body_body_body_field = &response_body_body_body[response_body_body_body_cursor..]; - let (response_body_body_body_field_field_size, b) = { - let n = u8::from_ne_bytes( - response_body_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body_field_body = &response_body_body_body_field[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_body_field_body[0..4usize] - .try_into() - .unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_body_cursor += b; - ( - r#wasi::r#http::r#types::FieldSizePayload { - r#field_name: response_body_body_body_field_field_name, - r#field_size: response_body_body_body_field_field_size, - }, - response_body_body_body_cursor, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSize( - response_body_case_HTTPRequestHeaderSize, - ), - b + 4, - ) - } - 23u32 => { - let (response_body_case_HTTPRequestTrailerSectionSize, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSectionSize( - response_body_case_HTTPRequestTrailerSectionSize, - ), - b + 4, - ) - } - 24u32 => { - let (response_body_case_HTTPRequestTrailerSize, b) = { - let mut response_body_body_cursor = 0; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_field_name, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_field_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8( - &response_body_body_field_body[4..4 + n], - ) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_field_size, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_field_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - ( - r#wasi::r#http::r#types::FieldSizePayload { - r#field_name: response_body_body_field_field_name, - r#field_size: response_body_body_field_field_size, - }, - response_body_body_cursor, - ) - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSize( - response_body_case_HTTPRequestTrailerSize, - ), - b + 4, - ) - } - 25u32 => { - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseIncomplete, - 4, - ) - } - 26u32 => { - let (response_body_case_HTTPResponseHeaderSectionSize, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSectionSize( - response_body_case_HTTPResponseHeaderSectionSize, - ), - b + 4, - ) - } - 27u32 => { - let (response_body_case_HTTPResponseHeaderSize, b) = { - let mut response_body_body_cursor = 0; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_field_name, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_field_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8( - &response_body_body_field_body[4..4 + n], - ) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_field_size, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_field_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - ( - r#wasi::r#http::r#types::FieldSizePayload { - r#field_name: response_body_body_field_field_name, - r#field_size: response_body_body_field_field_size, - }, - response_body_body_cursor, - ) - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSize( - response_body_case_HTTPResponseHeaderSize, - ), - b + 4, - ) - } - 28u32 => { - let (response_body_case_HTTPResponseBodySize, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - ( - u64::from_ne_bytes( - response_body_body_body[0..8usize].try_into().unwrap(), - ), - 8usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseBodySize( - response_body_case_HTTPResponseBodySize, - ), - b + 4, - ) - } - 29u32 => { - let ( - response_body_case_HTTPResponseTrailerSectionSize, - b, - ) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSectionSize( - response_body_case_HTTPResponseTrailerSectionSize, - ), - b + 4, - ) - } - 30u32 => { - let (response_body_case_HTTPResponseTrailerSize, b) = { - let mut response_body_body_cursor = 0; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_field_name, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_field_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8( - &response_body_body_field_body[4..4 + n], - ) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - let response_body_body_field = &response_body_body[response_body_body_cursor..]; - let (response_body_body_field_field_size, b) = { - let n = u8::from_ne_bytes( - response_body_body_field[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_field_body = &response_body_body_field[1..]; - let (x, b) = { - ( - u32::from_ne_bytes( - response_body_body_field_body[0..4usize].try_into().unwrap(), - ), - 4usize, - ) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - response_body_body_cursor += b; - ( - r#wasi::r#http::r#types::FieldSizePayload { - r#field_name: response_body_body_field_field_name, - r#field_size: response_body_body_field_field_size, - }, - response_body_body_cursor, - ) - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSize( - response_body_case_HTTPResponseTrailerSize, - ), - b + 4, - ) - } - 31u32 => { - let (response_body_case_HTTPResponseTransferCoding, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&response_body_body_body[4..4 + n]) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTransferCoding( - response_body_case_HTTPResponseTransferCoding, - ), - b + 4, - ) - } - 32u32 => { - let (response_body_case_HTTPResponseContentCoding, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&response_body_body_body[4..4 + n]) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::HTTPResponseContentCoding( - response_body_case_HTTPResponseContentCoding, - ), - b + 4, - ) - } - 33u32 => { - (r#wasi::r#http::r#types::ErrorCode::HTTPResponseTimeout, 4) - } - 34u32 => { - (r#wasi::r#http::r#types::ErrorCode::HTTPUpgradeFailed, 4) - } - 35u32 => { - (r#wasi::r#http::r#types::ErrorCode::HTTPProtocolError, 4) - } - 36u32 => { - (r#wasi::r#http::r#types::ErrorCode::LoopDetected, 4) - } - 37u32 => { - (r#wasi::r#http::r#types::ErrorCode::ConfigurationError, 4) - } - 38u32 => { - let (response_body_case_InternalError, b) = { - let n = u8::from_ne_bytes( - response_body_body[0..1].try_into().unwrap(), - ); - if n != 0 { - let response_body_body_body = &response_body_body[1..]; - let (x, b) = { - let n = u32::from_ne_bytes( - response_body_body_body[0..4].try_into().unwrap(), - ) as usize; - let s = ::alloc::string::ToString::to_string( - ::core::str::from_utf8(&response_body_body_body[4..4 + n]) - .unwrap(), - ); - (s, n + 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - }; - ( - r#wasi::r#http::r#types::ErrorCode::InternalError( - response_body_case_InternalError, - ), - b + 4, - ) - } - _ => panic!("invalid value for variant"), - } - }; - (::core::result::Result::Err(x), b + 1) - } - } - .0, - ); - Ok(::alloc::vec::Vec::new()) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[constructor]outgoing-response", - move |r#headers: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingResponse::new( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#headers[0..4].try_into().unwrap()); - let Some(v) = rts.resource29[i as usize].take() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource15.len(); - rts.resource15 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-response.status-code", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingResponse::r#status_code( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource15[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ alloc::vec::Vec::from(u16::to_ne_bytes(ret)) }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-response.set-status-code", - move |self_: ::std::vec::Vec, r#status_code: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingResponse::r#set_status_code( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource15[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - { - ( - u16::from_ne_bytes( - r#status_code[0..2usize].try_into().unwrap(), - ), - 2usize, - ) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-response.headers", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingResponse::r#headers( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource15[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]outgoing-response.body", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::OutgoingResponse::r#body( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource15[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource18.len(); - rts.resource18 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-response.status", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingResponse::r#status( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource10[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ alloc::vec::Vec::from(u16::to_ne_bytes(ret)) }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-response.headers", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingResponse::r#headers( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource10[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]incoming-response.consume", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::IncomingResponse::r#consume( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource10[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource20.len(); - rts.resource20 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]future-trailers.subscribe", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::FutureTrailers::r#subscribe( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource8[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource47.len(); - rts.resource47 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]future-trailers.get", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::FutureTrailers::r#get( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource8[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - match ret_body { - ::core::result::Result::Ok(ret_body_body) => { - let mut ret_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(0), - ); - ret_body_ret - .extend({ - match ret_body_body { - ::core::result::Result::Ok(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(0), - ); - ret_body_body_ret - .extend({ - match ret_body_body_body { - ::core::option::Option::Some(ret_body_body_body_body) => { - let mut ret_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_ret - .extend({ - let i = rts.resource29.len(); - rts.resource29 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_ret - } - ::core::result::Result::Err(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_ret = alloc::vec::Vec::new(); - match ret_body_body_body { - r#wasi::r#http::r#types::ErrorCode::DNSTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::ErrorCode::DNSError( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(1u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_rcode = ret_body_body_body_body - .r#rcode; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_rcode { - ::core::option::Option::Some( - ret_body_body_body_body_field_rcode_body, - ) => { - let mut ret_body_body_body_body_field_rcode_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_rcode_ret - .extend({ - let mut ret_body_body_body_body_field_rcode_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_rcode_body_bytes = ret_body_body_body_body_field_rcode_body - .into_bytes(); - ret_body_body_body_body_field_rcode_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_rcode_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_field_rcode_body_string - .extend(ret_body_body_body_body_field_rcode_body_bytes); - ret_body_body_body_body_field_rcode_body_string - }); - ret_body_body_body_body_field_rcode_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_info_code = ret_body_body_body_body - .r#info_code; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_info_code { - ::core::option::Option::Some( - ret_body_body_body_body_field_info_code_body, - ) => { - let mut ret_body_body_body_body_field_info_code_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_info_code_ret - .extend({ - alloc::vec::Vec::from( - u16::to_ne_bytes( - ret_body_body_body_body_field_info_code_body, - ), - ) - }); - ret_body_body_body_body_field_info_code_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::DestinationNotFound => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationUnavailable => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPProhibited => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPUnroutable => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionRefused => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTerminated => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionReadTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(9u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionWriteTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(10u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionLimitReached => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(11u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSProtocolError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(12u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSCertificateError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(13u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSAlertReceived( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(14u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_alert_id = ret_body_body_body_body - .r#alert_id; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_alert_id { - ::core::option::Option::Some( - ret_body_body_body_body_field_alert_id_body, - ) => { - let mut ret_body_body_body_body_field_alert_id_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_alert_id_ret - .extend({ - alloc::vec::Vec::from( - u8::to_ne_bytes(ret_body_body_body_body_field_alert_id_body), - ) - }); - ret_body_body_body_body_field_alert_id_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_alert_message = ret_body_body_body_body - .r#alert_message; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_alert_message { - ::core::option::Option::Some( - ret_body_body_body_body_field_alert_message_body, - ) => { - let mut ret_body_body_body_body_field_alert_message_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_alert_message_ret - .extend({ - let mut ret_body_body_body_body_field_alert_message_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_alert_message_body_bytes = ret_body_body_body_body_field_alert_message_body - .into_bytes(); - ret_body_body_body_body_field_alert_message_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_alert_message_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_alert_message_body_string - .extend( - ret_body_body_body_body_field_alert_message_body_bytes, - ); - ret_body_body_body_body_field_alert_message_body_string - }); - ret_body_body_body_body_field_alert_message_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestDenied => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(15u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestLengthRequired => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(16u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestBodySize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(17u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u64::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestMethodInvalid => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(18u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURIInvalid => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(19u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURITooLong => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(20u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(21u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(22u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_field_field_name = ret_body_body_body_body_body - .r#field_name; - ret_body_body_body_body_body_record - .extend({ - match ret_body_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_field_field_name_body_bytes - .len() as u32, - ), - ), - ); - ret_body_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_body_field_field_size = ret_body_body_body_body_body - .r#field_size; - ret_body_body_body_body_body_record - .extend({ - match ret_body_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_body_record - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(23u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(24u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name = ret_body_body_body_body - .r#field_name; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_name_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_field_size = ret_body_body_body_body - .r#field_size; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseIncomplete => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(25u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(26u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(27u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name = ret_body_body_body_body - .r#field_name; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_name_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_field_size = ret_body_body_body_body - .r#field_size; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseBodySize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(28u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u64::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(29u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(30u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name = ret_body_body_body_body - .r#field_name; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_name_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_field_size = ret_body_body_body_body - .r#field_size; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTransferCoding( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(31u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_bytes = ret_body_body_body_body_body - .into_bytes(); - ret_body_body_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_body_string - .extend(ret_body_body_body_body_body_bytes); - ret_body_body_body_body_body_string - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseContentCoding( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(32u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_bytes = ret_body_body_body_body_body - .into_bytes(); - ret_body_body_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_body_string - .extend(ret_body_body_body_body_body_bytes); - ret_body_body_body_body_body_string - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(33u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPUpgradeFailed => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(34u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPProtocolError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(35u32)); - } - r#wasi::r#http::r#types::ErrorCode::LoopDetected => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(36u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConfigurationError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(37u32)); - } - r#wasi::r#http::r#types::ErrorCode::InternalError( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(38u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_bytes = ret_body_body_body_body_body - .into_bytes(); - ret_body_body_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_body_string - .extend(ret_body_body_body_body_body_bytes); - ret_body_body_body_body_body_string - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - } - ret_body_body_body_ret - }); - ret_body_body_ret - } - } - }); - ret_body_ret - } - ::core::result::Result::Err(ret_body_body) => { - let mut ret_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_ret - } - } - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]future-incoming-response.subscribe", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::FutureIncomingResponse::r#subscribe( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource6[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - let i = rts.resource47.len(); - rts.resource47 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::[method]future-incoming-response.get", - move |self_: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::r#types::FutureIncomingResponse::r#get( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(self_[0..4].try_into().unwrap()); - let Some(v) = rts.resource6[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - match ret_body { - ::core::result::Result::Ok(ret_body_body) => { - let mut ret_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(0), - ); - ret_body_ret - .extend({ - match ret_body_body { - ::core::result::Result::Ok(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(0), - ); - ret_body_body_ret - .extend({ - let i = rts.resource10.len(); - rts.resource10 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give( - ret_body_body_body, - ), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_body_body_ret - } - ::core::result::Result::Err(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_ret = alloc::vec::Vec::new(); - match ret_body_body_body { - r#wasi::r#http::r#types::ErrorCode::DNSTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::ErrorCode::DNSError( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(1u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_rcode = ret_body_body_body_body - .r#rcode; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_rcode { - ::core::option::Option::Some( - ret_body_body_body_body_field_rcode_body, - ) => { - let mut ret_body_body_body_body_field_rcode_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_rcode_ret - .extend({ - let mut ret_body_body_body_body_field_rcode_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_rcode_body_bytes = ret_body_body_body_body_field_rcode_body - .into_bytes(); - ret_body_body_body_body_field_rcode_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_rcode_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_field_rcode_body_string - .extend(ret_body_body_body_body_field_rcode_body_bytes); - ret_body_body_body_body_field_rcode_body_string - }); - ret_body_body_body_body_field_rcode_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_info_code = ret_body_body_body_body - .r#info_code; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_info_code { - ::core::option::Option::Some( - ret_body_body_body_body_field_info_code_body, - ) => { - let mut ret_body_body_body_body_field_info_code_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_info_code_ret - .extend({ - alloc::vec::Vec::from( - u16::to_ne_bytes( - ret_body_body_body_body_field_info_code_body, - ), - ) - }); - ret_body_body_body_body_field_info_code_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::DestinationNotFound => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationUnavailable => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPProhibited => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPUnroutable => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionRefused => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTerminated => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionReadTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(9u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionWriteTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(10u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionLimitReached => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(11u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSProtocolError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(12u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSCertificateError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(13u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSAlertReceived( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(14u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_alert_id = ret_body_body_body_body - .r#alert_id; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_alert_id { - ::core::option::Option::Some( - ret_body_body_body_body_field_alert_id_body, - ) => { - let mut ret_body_body_body_body_field_alert_id_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_alert_id_ret - .extend({ - alloc::vec::Vec::from( - u8::to_ne_bytes(ret_body_body_body_body_field_alert_id_body), - ) - }); - ret_body_body_body_body_field_alert_id_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_alert_message = ret_body_body_body_body - .r#alert_message; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_alert_message { - ::core::option::Option::Some( - ret_body_body_body_body_field_alert_message_body, - ) => { - let mut ret_body_body_body_body_field_alert_message_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_alert_message_ret - .extend({ - let mut ret_body_body_body_body_field_alert_message_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_alert_message_body_bytes = ret_body_body_body_body_field_alert_message_body - .into_bytes(); - ret_body_body_body_body_field_alert_message_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_alert_message_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_alert_message_body_string - .extend( - ret_body_body_body_body_field_alert_message_body_bytes, - ); - ret_body_body_body_body_field_alert_message_body_string - }); - ret_body_body_body_body_field_alert_message_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestDenied => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(15u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestLengthRequired => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(16u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestBodySize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(17u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u64::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestMethodInvalid => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(18u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURIInvalid => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(19u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURITooLong => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(20u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(21u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(22u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_field_field_name = ret_body_body_body_body_body - .r#field_name; - ret_body_body_body_body_body_record - .extend({ - match ret_body_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_field_field_name_body_bytes - .len() as u32, - ), - ), - ); - ret_body_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_body_field_field_size = ret_body_body_body_body_body - .r#field_size; - ret_body_body_body_body_body_record - .extend({ - match ret_body_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_body_record - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(23u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(24u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name = ret_body_body_body_body - .r#field_name; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_name_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_field_size = ret_body_body_body_body - .r#field_size; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseIncomplete => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(25u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(26u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(27u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name = ret_body_body_body_body - .r#field_name; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_name_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_field_size = ret_body_body_body_body - .r#field_size; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseBodySize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(28u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u64::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSectionSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(29u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_body_body), - ) - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSize( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(30u32)); - ret_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name = ret_body_body_body_body - .r#field_name; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_field_field_name_body_bytes = ret_body_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_name_body_bytes.len() - as u32, - ), - ), - ); - ret_body_body_body_body_field_field_name_body_string - .extend( - ret_body_body_body_body_field_field_name_body_bytes, - ); - ret_body_body_body_body_field_field_name_body_string - }); - ret_body_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_body_field_field_size = ret_body_body_body_body - .r#field_size; - ret_body_body_body_body_record - .extend({ - match ret_body_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_field_field_size_body, - ), - ) - }); - ret_body_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTransferCoding( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(31u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_bytes = ret_body_body_body_body_body - .into_bytes(); - ret_body_body_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_body_string - .extend(ret_body_body_body_body_body_bytes); - ret_body_body_body_body_body_string - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseContentCoding( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(32u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_bytes = ret_body_body_body_body_body - .into_bytes(); - ret_body_body_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_body_string - .extend(ret_body_body_body_body_body_bytes); - ret_body_body_body_body_body_string - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTimeout => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(33u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPUpgradeFailed => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(34u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPProtocolError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(35u32)); - } - r#wasi::r#http::r#types::ErrorCode::LoopDetected => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(36u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConfigurationError => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(37u32)); - } - r#wasi::r#http::r#types::ErrorCode::InternalError( - ret_body_body_body_body, - ) => { - ret_body_body_body_ret.extend(u32::to_ne_bytes(38u32)); - ret_body_body_body_ret - .extend({ - match ret_body_body_body_body { - ::core::option::Option::Some( - ret_body_body_body_body_body, - ) => { - let mut ret_body_body_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_body_ret - .extend({ - let mut ret_body_body_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_body_body_bytes = ret_body_body_body_body_body - .into_bytes(); - ret_body_body_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_body_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_body_body_string - .extend(ret_body_body_body_body_body_bytes); - ret_body_body_body_body_body_string - }); - ret_body_body_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - } - ret_body_body_body_ret - }); - ret_body_body_ret - } - } - }); - ret_body_ret - } - ::core::result::Result::Err(ret_body_body) => { - let mut ret_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_ret - } - } - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::http-error-code", - move |r#err: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#types( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::Types::r#http_error_code( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#err[0..4].try_into().unwrap()); - let Some(v) = rts.resource43[i as usize].borrow() else { - panic!(""); - }; - (v, 4) - } - .0, - ); - Ok({ - match ret { - ::core::option::Option::Some(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::ErrorCode::DNSTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::ErrorCode::DNSError( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_rcode = ret_body_body.r#rcode; - ret_body_body_record - .extend({ - match ret_body_body_field_rcode { - ::core::option::Option::Some( - ret_body_body_field_rcode_body, - ) => { - let mut ret_body_body_field_rcode_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_rcode_ret - .extend({ - let mut ret_body_body_field_rcode_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_rcode_body_bytes = ret_body_body_field_rcode_body - .into_bytes(); - ret_body_body_field_rcode_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_rcode_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_rcode_body_string - .extend(ret_body_body_field_rcode_body_bytes); - ret_body_body_field_rcode_body_string - }); - ret_body_body_field_rcode_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_info_code = ret_body_body - .r#info_code; - ret_body_body_record - .extend({ - match ret_body_body_field_info_code { - ::core::option::Option::Some( - ret_body_body_field_info_code_body, - ) => { - let mut ret_body_body_field_info_code_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_info_code_ret - .extend({ - alloc::vec::Vec::from( - u16::to_ne_bytes(ret_body_body_field_info_code_body), - ) - }); - ret_body_body_field_info_code_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::DestinationNotFound => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationUnavailable => { - ret_body_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPProhibited => { - ret_body_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPUnroutable => { - ret_body_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionRefused => { - ret_body_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTerminated => { - ret_body_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionReadTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(9u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionWriteTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(10u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionLimitReached => { - ret_body_ret.extend(u32::to_ne_bytes(11u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSProtocolError => { - ret_body_ret.extend(u32::to_ne_bytes(12u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSCertificateError => { - ret_body_ret.extend(u32::to_ne_bytes(13u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSAlertReceived( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(14u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_alert_id = ret_body_body.r#alert_id; - ret_body_body_record - .extend({ - match ret_body_body_field_alert_id { - ::core::option::Option::Some( - ret_body_body_field_alert_id_body, - ) => { - let mut ret_body_body_field_alert_id_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_alert_id_ret - .extend({ - alloc::vec::Vec::from( - u8::to_ne_bytes(ret_body_body_field_alert_id_body), - ) - }); - ret_body_body_field_alert_id_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_alert_message = ret_body_body - .r#alert_message; - ret_body_body_record - .extend({ - match ret_body_body_field_alert_message { - ::core::option::Option::Some( - ret_body_body_field_alert_message_body, - ) => { - let mut ret_body_body_field_alert_message_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_alert_message_ret - .extend({ - let mut ret_body_body_field_alert_message_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_alert_message_body_bytes = ret_body_body_field_alert_message_body - .into_bytes(); - ret_body_body_field_alert_message_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_alert_message_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_alert_message_body_string - .extend(ret_body_body_field_alert_message_body_bytes); - ret_body_body_field_alert_message_body_string - }); - ret_body_body_field_alert_message_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestDenied => { - ret_body_ret.extend(u32::to_ne_bytes(15u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestLengthRequired => { - ret_body_ret.extend(u32::to_ne_bytes(16u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestBodySize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(17u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestMethodInvalid => { - ret_body_ret.extend(u32::to_ne_bytes(18u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURIInvalid => { - ret_body_ret.extend(u32::to_ne_bytes(19u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURITooLong => { - ret_body_ret.extend(u32::to_ne_bytes(20u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(21u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(22u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_field_field_name = ret_body_body_body - .r#field_name; - ret_body_body_body_record - .extend({ - match ret_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_field_field_name_body_bytes = ret_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_field_field_name_body_string - .extend(ret_body_body_body_field_field_name_body_bytes); - ret_body_body_body_field_field_name_body_string - }); - ret_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_field_field_size = ret_body_body_body - .r#field_size; - ret_body_body_body_record - .extend({ - match ret_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_field_field_size_body), - ) - }); - ret_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_record - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(23u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(24u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseIncomplete => { - ret_body_ret.extend(u32::to_ne_bytes(25u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(26u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(27u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseBodySize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(28u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(29u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(30u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTransferCoding( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(31u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseContentCoding( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(32u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(33u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPUpgradeFailed => { - ret_body_ret.extend(u32::to_ne_bytes(34u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPProtocolError => { - ret_body_ret.extend(u32::to_ne_bytes(35u32)); - } - r#wasi::r#http::r#types::ErrorCode::LoopDetected => { - ret_body_ret.extend(u32::to_ne_bytes(36u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConfigurationError => { - ret_body_ret.extend(u32::to_ne_bytes(37u32)); - } - r#wasi::r#http::r#types::ErrorCode::InternalError( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(38u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - } - ret_body_ret - }); - ret_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - }, - ) - .unwrap(); - let captured_imports = imports.clone(); - let captured_rts = rts.clone(); - sb.register_host_function( - "r#wasi::r#http::handle", - move |r#request: ::std::vec::Vec, r#options: ::std::vec::Vec| { - let mut rts = captured_rts.lock().unwrap(); - let mut slf = captured_imports.lock().unwrap(); - let mut slf = ::std::ops::DerefMut::deref_mut(&mut slf); - let mut slf = r#root::r#component::RootImports::r#outgoing_handler( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - ); - let ret = r#wasi::r#http::OutgoingHandler::r#handle( - ::std::borrow::BorrowMut::::borrow_mut(&mut slf), - { - let i = u32::from_ne_bytes(r#request[0..4].try_into().unwrap()); - let Some(v) = rts.resource19[i as usize].take() else { - panic!(""); - }; - (v, 4) - } - .0, - { - let n = u8::from_ne_bytes(r#options[0..1].try_into().unwrap()); - if n != 0 { - let options_body = &r#options[1..]; - let (x, b) = { - let i = u32::from_ne_bytes( - options_body[0..4].try_into().unwrap(), - ); - let Some(v) = rts.resource17[i as usize].take() else { - panic!(""); - }; - (v, 4) - }; - (::core::option::Option::Some(x), b + 1) - } else { - (::core::option::Option::None, 1) - } - } - .0, - ); - Ok({ - match ret { - ::core::result::Result::Ok(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(0)); - ret_ret - .extend({ - let i = rts.resource6.len(); - rts.resource6 - .push_back( - ::hyperlight_common::resource::ResourceEntry::give(ret_body), - ); - alloc::vec::Vec::from(u32::to_ne_bytes(i as u32)) - }); - ret_ret - } - ::core::result::Result::Err(ret_body) => { - let mut ret_ret = alloc::vec::Vec::from(u8::to_ne_bytes(1)); - ret_ret - .extend({ - let mut ret_body_ret = alloc::vec::Vec::new(); - match ret_body { - r#wasi::r#http::r#types::ErrorCode::DNSTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(0u32)); - } - r#wasi::r#http::r#types::ErrorCode::DNSError( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(1u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_rcode = ret_body_body.r#rcode; - ret_body_body_record - .extend({ - match ret_body_body_field_rcode { - ::core::option::Option::Some( - ret_body_body_field_rcode_body, - ) => { - let mut ret_body_body_field_rcode_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_rcode_ret - .extend({ - let mut ret_body_body_field_rcode_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_rcode_body_bytes = ret_body_body_field_rcode_body - .into_bytes(); - ret_body_body_field_rcode_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_rcode_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_rcode_body_string - .extend(ret_body_body_field_rcode_body_bytes); - ret_body_body_field_rcode_body_string - }); - ret_body_body_field_rcode_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_info_code = ret_body_body - .r#info_code; - ret_body_body_record - .extend({ - match ret_body_body_field_info_code { - ::core::option::Option::Some( - ret_body_body_field_info_code_body, - ) => { - let mut ret_body_body_field_info_code_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_info_code_ret - .extend({ - alloc::vec::Vec::from( - u16::to_ne_bytes(ret_body_body_field_info_code_body), - ) - }); - ret_body_body_field_info_code_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::DestinationNotFound => { - ret_body_ret.extend(u32::to_ne_bytes(2u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationUnavailable => { - ret_body_ret.extend(u32::to_ne_bytes(3u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPProhibited => { - ret_body_ret.extend(u32::to_ne_bytes(4u32)); - } - r#wasi::r#http::r#types::ErrorCode::DestinationIPUnroutable => { - ret_body_ret.extend(u32::to_ne_bytes(5u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionRefused => { - ret_body_ret.extend(u32::to_ne_bytes(6u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTerminated => { - ret_body_ret.extend(u32::to_ne_bytes(7u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(8u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionReadTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(9u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionWriteTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(10u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConnectionLimitReached => { - ret_body_ret.extend(u32::to_ne_bytes(11u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSProtocolError => { - ret_body_ret.extend(u32::to_ne_bytes(12u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSCertificateError => { - ret_body_ret.extend(u32::to_ne_bytes(13u32)); - } - r#wasi::r#http::r#types::ErrorCode::TLSAlertReceived( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(14u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_alert_id = ret_body_body.r#alert_id; - ret_body_body_record - .extend({ - match ret_body_body_field_alert_id { - ::core::option::Option::Some( - ret_body_body_field_alert_id_body, - ) => { - let mut ret_body_body_field_alert_id_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_alert_id_ret - .extend({ - alloc::vec::Vec::from( - u8::to_ne_bytes(ret_body_body_field_alert_id_body), - ) - }); - ret_body_body_field_alert_id_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_alert_message = ret_body_body - .r#alert_message; - ret_body_body_record - .extend({ - match ret_body_body_field_alert_message { - ::core::option::Option::Some( - ret_body_body_field_alert_message_body, - ) => { - let mut ret_body_body_field_alert_message_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_alert_message_ret - .extend({ - let mut ret_body_body_field_alert_message_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_alert_message_body_bytes = ret_body_body_field_alert_message_body - .into_bytes(); - ret_body_body_field_alert_message_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_alert_message_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_alert_message_body_string - .extend(ret_body_body_field_alert_message_body_bytes); - ret_body_body_field_alert_message_body_string - }); - ret_body_body_field_alert_message_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestDenied => { - ret_body_ret.extend(u32::to_ne_bytes(15u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestLengthRequired => { - ret_body_ret.extend(u32::to_ne_bytes(16u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestBodySize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(17u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestMethodInvalid => { - ret_body_ret.extend(u32::to_ne_bytes(18u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURIInvalid => { - ret_body_ret.extend(u32::to_ne_bytes(19u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestURITooLong => { - ret_body_ret.extend(u32::to_ne_bytes(20u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(21u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestHeaderSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(22u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_body_field_field_name = ret_body_body_body - .r#field_name; - ret_body_body_body_record - .extend({ - match ret_body_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_body_field_field_name_body, - ) => { - let mut ret_body_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_field_field_name_body_bytes = ret_body_body_body_field_field_name_body - .into_bytes(); - ret_body_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_body_field_field_name_body_string - .extend(ret_body_body_body_field_field_name_body_bytes); - ret_body_body_body_field_field_name_body_string - }); - ret_body_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_body_field_field_size = ret_body_body_body - .r#field_size; - ret_body_body_body_record - .extend({ - match ret_body_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_body_field_field_size_body, - ) => { - let mut ret_body_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_field_field_size_body), - ) - }); - ret_body_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_body_record - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(23u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPRequestTrailerSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(24u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseIncomplete => { - ret_body_ret.extend(u32::to_ne_bytes(25u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(26u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseHeaderSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(27u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseBodySize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(28u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u64::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSectionSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(29u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - alloc::vec::Vec::from(u32::to_ne_bytes(ret_body_body_body)) - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTrailerSize( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(30u32)); - ret_body_ret - .extend({ - let mut ret_body_body_record = alloc::vec::Vec::new(); - let ret_body_body_field_field_name = ret_body_body - .r#field_name; - ret_body_body_record - .extend({ - match ret_body_body_field_field_name { - ::core::option::Option::Some( - ret_body_body_field_field_name_body, - ) => { - let mut ret_body_body_field_field_name_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_name_ret - .extend({ - let mut ret_body_body_field_field_name_body_string = alloc::vec::Vec::new(); - let ret_body_body_field_field_name_body_bytes = ret_body_body_field_field_name_body - .into_bytes(); - ret_body_body_field_field_name_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes( - ret_body_body_field_field_name_body_bytes.len() as u32, - ), - ), - ); - ret_body_body_field_field_name_body_string - .extend(ret_body_body_field_field_name_body_bytes); - ret_body_body_field_field_name_body_string - }); - ret_body_body_field_field_name_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - let ret_body_body_field_field_size = ret_body_body - .r#field_size; - ret_body_body_record - .extend({ - match ret_body_body_field_field_size { - ::core::option::Option::Some( - ret_body_body_field_field_size_body, - ) => { - let mut ret_body_body_field_field_size_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_field_field_size_ret - .extend({ - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_field_field_size_body), - ) - }); - ret_body_body_field_field_size_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }); - ret_body_body_record - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTransferCoding( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(31u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseContentCoding( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(32u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - r#wasi::r#http::r#types::ErrorCode::HTTPResponseTimeout => { - ret_body_ret.extend(u32::to_ne_bytes(33u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPUpgradeFailed => { - ret_body_ret.extend(u32::to_ne_bytes(34u32)); - } - r#wasi::r#http::r#types::ErrorCode::HTTPProtocolError => { - ret_body_ret.extend(u32::to_ne_bytes(35u32)); - } - r#wasi::r#http::r#types::ErrorCode::LoopDetected => { - ret_body_ret.extend(u32::to_ne_bytes(36u32)); - } - r#wasi::r#http::r#types::ErrorCode::ConfigurationError => { - ret_body_ret.extend(u32::to_ne_bytes(37u32)); - } - r#wasi::r#http::r#types::ErrorCode::InternalError( - ret_body_body, - ) => { - ret_body_ret.extend(u32::to_ne_bytes(38u32)); - ret_body_ret - .extend({ - match ret_body_body { - ::core::option::Option::Some(ret_body_body_body) => { - let mut ret_body_body_ret = alloc::vec::Vec::from( - u8::to_ne_bytes(1), - ); - ret_body_body_ret - .extend({ - let mut ret_body_body_body_string = alloc::vec::Vec::new(); - let ret_body_body_body_bytes = ret_body_body_body - .into_bytes(); - ret_body_body_body_string - .extend( - alloc::vec::Vec::from( - u32::to_ne_bytes(ret_body_body_body_bytes.len() as u32), - ), - ); - ret_body_body_body_string.extend(ret_body_body_body_bytes); - ret_body_body_body_string - }); - ret_body_body_ret - } - ::core::option::Option::None => { - alloc::vec::Vec::from(u8::to_ne_bytes(0)) - } - } - }) - } - } - ret_body_ret - }); - ret_ret - } - } - }) - }, - ) - .unwrap(); - rts -} -impl< - I: r#root::r#component::RootImports + ::std::marker::Send, - S: ::hyperlight_host::sandbox::Callable, -> r#root::r#component::RootExports for RootSandbox { - type IncomingHandler = Self; - #[allow(refining_impl_trait)] - fn r#incoming_handler<'a>(&'a mut self) -> &'a mut Self { - self - } -} -impl r#root::r#component::Root for ::hyperlight_host::sandbox::UninitializedSandbox { - type Exports = RootSandbox< - I, - ::hyperlight_host::sandbox::initialized_multi_use::MultiUseSandbox, - >; - fn instantiate( - mut self, - i: I, - ) -> Self::Exports { - let rts = register_host_functions(&mut self, i); - let sb = self.evolve().unwrap(); - RootSandbox { sb, rt: rts } - } -} diff --git a/src/main.rs b/src/main.rs index 8f25a1d..f15543e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,28 +1,24 @@ extern crate alloc; -mod bindings { - hyperlight_component_macro::host_bindgen!(); -} +mod wasi_impl; -mod resource; -mod types; -mod worker; +use wasi_impl::{ + Resource, + bindings::{RootSandbox, register_host_functions, wasi, wasi::http::IncomingHandler}, + types, + types::{WasiImpl, http_incoming_body::IncomingBody, io_stream::Stream}, + worker::RUNTIME, +}; use std::{convert::Infallible, net::SocketAddr, str::FromStr, sync::Arc}; -use bindings::RootSandbox; use bytes::Bytes; use http_body_util::{BodyExt, Full}; use hyper::{server::conn::http1, service::service_fn}; use hyper_util::rt::TokioIo; use hyperlight_host::sandbox::SandboxConfiguration; use hyperlight_wasm::LoadedWasmSandbox; -use resource::Resource; use tokio::{net::TcpListener, sync::Mutex}; -use types::{WasiImpl, http_incoming_body::IncomingBody, io_stream::Stream}; -use worker::RUNTIME; - -use crate::bindings::wasi::http::IncomingHandler; fn main() { let args = std::env::args().collect::>(); @@ -46,13 +42,13 @@ fn main() { let mut sb = builder.build().unwrap(); - let state = types::WasiImpl::new(); - let rt = bindings::register_host_functions(&mut sb, state); + let state = WasiImpl::new(); + let rt = register_host_functions(&mut sb, state); let sb = sb.load_runtime().unwrap(); let sb = sb.load_module(wasm_path).unwrap(); - let sb = bindings::RootSandbox { sb, rt }; + let sb = RootSandbox { sb, rt }; let sb = Arc::new(Mutex::new(sb)); RUNTIME.block_on(async move { @@ -92,7 +88,7 @@ async fn hello( mut req: hyper::Request, ) -> Result>, Infallible> { let mut sb = sb.lock().await; - let inst = bindings::root::component::RootExports::incoming_handler(&mut *sb); + let inst = wasi_impl::bindings::root::component::RootExports::incoming_handler(&mut *sb); let body = req.body_mut(); let mut full_body = Vec::new(); @@ -124,9 +120,9 @@ async fn hello( .unwrap_or_default(), ), scheme: Some(if req.uri().scheme_str() == Some("https") { - bindings::wasi::http::types::Scheme::HTTPS + wasi_impl::bindings::wasi::http::types::Scheme::HTTPS } else { - bindings::wasi::http::types::Scheme::HTTP + wasi_impl::bindings::wasi::http::types::Scheme::HTTP }), authority: req .uri() @@ -188,19 +184,19 @@ async fn hello( } } -impl From<&hyper::Method> for bindings::wasi::http::types::Method { +impl From<&hyper::Method> for wasi::http::types::Method { fn from(method: &hyper::Method) -> Self { match method.as_str() { - "GET" => bindings::wasi::http::types::Method::Get, - "POST" => bindings::wasi::http::types::Method::Post, - "PUT" => bindings::wasi::http::types::Method::Put, - "DELETE" => bindings::wasi::http::types::Method::Delete, - "HEAD" => bindings::wasi::http::types::Method::Head, - "OPTIONS" => bindings::wasi::http::types::Method::Options, - "CONNECT" => bindings::wasi::http::types::Method::Connect, - "TRACE" => bindings::wasi::http::types::Method::Trace, - "PATCH" => bindings::wasi::http::types::Method::Patch, - other => bindings::wasi::http::types::Method::Other(other.to_string()), + "GET" => wasi_impl::bindings::wasi::http::types::Method::Get, + "POST" => wasi_impl::bindings::wasi::http::types::Method::Post, + "PUT" => wasi_impl::bindings::wasi::http::types::Method::Put, + "DELETE" => wasi_impl::bindings::wasi::http::types::Method::Delete, + "HEAD" => wasi_impl::bindings::wasi::http::types::Method::Head, + "OPTIONS" => wasi_impl::bindings::wasi::http::types::Method::Options, + "CONNECT" => wasi_impl::bindings::wasi::http::types::Method::Connect, + "TRACE" => wasi_impl::bindings::wasi::http::types::Method::Trace, + "PATCH" => wasi_impl::bindings::wasi::http::types::Method::Patch, + other => wasi_impl::bindings::wasi::http::types::Method::Other(other.to_string()), } } } diff --git a/src/wasi_impl/mod.rs b/src/wasi_impl/mod.rs new file mode 100644 index 0000000..f1218c9 --- /dev/null +++ b/src/wasi_impl/mod.rs @@ -0,0 +1,11 @@ +extern crate alloc; + +pub mod bindings { + hyperlight_component_macro::host_bindgen!(); +} + +pub mod resource; +pub mod types; +pub mod worker; + +pub use resource::Resource; diff --git a/src/resource.rs b/src/wasi_impl/resource.rs similarity index 98% rename from src/resource.rs rename to src/wasi_impl/resource.rs index cab55c7..cc2c4b7 100644 --- a/src/resource.rs +++ b/src/wasi_impl/resource.rs @@ -4,7 +4,7 @@ use std::{ sync::Arc, }; -use crate::{types::io_poll::AnyPollable, worker::RUNTIME}; +use crate::wasi_impl::{types::io_poll::AnyPollable, worker::RUNTIME}; pub struct Resource { inner: Arc>, diff --git a/src/types.rs b/src/wasi_impl/types.rs similarity index 97% rename from src/types.rs rename to src/wasi_impl/types.rs index 4f6aed8..4bdeb4d 100644 --- a/src/types.rs +++ b/src/wasi_impl/types.rs @@ -1,6 +1,6 @@ use std::borrow::BorrowMut; -use crate::bindings::root::component::RootImports; +use crate::wasi_impl::bindings::root::component::RootImports; pub mod buffer; pub mod cli; diff --git a/src/types/buffer.rs b/src/wasi_impl/types/buffer.rs similarity index 100% rename from src/types/buffer.rs rename to src/wasi_impl/types/buffer.rs diff --git a/src/types/cli.rs b/src/wasi_impl/types/cli.rs similarity index 97% rename from src/types/cli.rs rename to src/wasi_impl/types/cli.rs index d36d0ce..09465cd 100644 --- a/src/types/cli.rs +++ b/src/wasi_impl/types/cli.rs @@ -2,7 +2,7 @@ use std::sync::LazyLock; use tokio::io::{AsyncReadExt as _, AsyncWriteExt as _, stderr, stdin, stdout}; -use crate::{bindings::wasi, resource::Resource, worker::RUNTIME}; +use crate::wasi_impl::{bindings::wasi, resource::Resource, worker::RUNTIME}; use super::{WasiImpl, io_stream::Stream}; diff --git a/src/types/clocks_monotonic_clock.rs b/src/wasi_impl/types/clocks_monotonic_clock.rs similarity index 93% rename from src/types/clocks_monotonic_clock.rs rename to src/wasi_impl/types/clocks_monotonic_clock.rs index d4e70c3..39b9b08 100644 --- a/src/types/clocks_monotonic_clock.rs +++ b/src/wasi_impl/types/clocks_monotonic_clock.rs @@ -1,6 +1,6 @@ use std::{sync::LazyLock, time::Duration}; -use crate::{bindings::wasi, resource::Resource}; +use crate::wasi_impl::{bindings::wasi, resource::Resource}; use super::{WasiImpl, io_poll::AnyPollable}; diff --git a/src/types/clocks_wall_clock.rs b/src/wasi_impl/types/clocks_wall_clock.rs similarity index 93% rename from src/types/clocks_wall_clock.rs rename to src/wasi_impl/types/clocks_wall_clock.rs index 5edd602..98fafde 100644 --- a/src/types/clocks_wall_clock.rs +++ b/src/wasi_impl/types/clocks_wall_clock.rs @@ -1,5 +1,5 @@ use super::WasiImpl; -use crate::bindings::wasi; +use crate::wasi_impl::bindings::wasi; impl wasi::clocks::WallClock for WasiImpl { fn now(&mut self) -> wasi::clocks::wall_clock::Datetime { diff --git a/src/types/headers.rs b/src/wasi_impl/types/headers.rs similarity index 100% rename from src/types/headers.rs rename to src/wasi_impl/types/headers.rs diff --git a/src/types/http_future.rs b/src/wasi_impl/types/http_future.rs similarity index 100% rename from src/types/http_future.rs rename to src/wasi_impl/types/http_future.rs diff --git a/src/types/http_future_headers.rs b/src/wasi_impl/types/http_future_headers.rs similarity index 97% rename from src/types/http_future_headers.rs rename to src/wasi_impl/types/http_future_headers.rs index 21fcac4..fd69759 100644 --- a/src/types/http_future_headers.rs +++ b/src/wasi_impl/types/http_future_headers.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn, Resource}, }; diff --git a/src/types/http_future_incoming_response.rs b/src/wasi_impl/types/http_future_incoming_response.rs similarity index 97% rename from src/types/http_future_incoming_response.rs rename to src/wasi_impl/types/http_future_incoming_response.rs index f6174a1..8dcc434 100644 --- a/src/types/http_future_incoming_response.rs +++ b/src/wasi_impl/types/http_future_incoming_response.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn as _, Resource}, }; diff --git a/src/types/http_headers.rs b/src/wasi_impl/types/http_headers.rs similarity index 98% rename from src/types/http_headers.rs rename to src/wasi_impl/types/http_headers.rs index 7859371..5e1b91a 100644 --- a/src/types/http_headers.rs +++ b/src/wasi_impl/types/http_headers.rs @@ -4,7 +4,7 @@ use super::{ WasiImpl, headers::{HeaderError, Headers}, }; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn, Resource}, }; diff --git a/src/types/http_incoming_body.rs b/src/wasi_impl/types/http_incoming_body.rs similarity index 97% rename from src/types/http_incoming_body.rs rename to src/wasi_impl/types/http_incoming_body.rs index ad5d93b..09e7dc7 100644 --- a/src/types/http_incoming_body.rs +++ b/src/wasi_impl/types/http_incoming_body.rs @@ -1,4 +1,4 @@ -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn, Resource}, }; diff --git a/src/types/http_incoming_request.rs b/src/wasi_impl/types/http_incoming_request.rs similarity index 98% rename from src/types/http_incoming_request.rs rename to src/wasi_impl/types/http_incoming_request.rs index eb2070f..a887782 100644 --- a/src/types/http_incoming_request.rs +++ b/src/wasi_impl/types/http_incoming_request.rs @@ -1,4 +1,4 @@ -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn as _, Resource}, }; diff --git a/src/types/http_incoming_response.rs b/src/wasi_impl/types/http_incoming_response.rs similarity index 97% rename from src/types/http_incoming_response.rs rename to src/wasi_impl/types/http_incoming_response.rs index 3df1c09..3b1b404 100644 --- a/src/types/http_incoming_response.rs +++ b/src/wasi_impl/types/http_incoming_response.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn, Resource}, }; diff --git a/src/types/http_outgoing_body.rs b/src/wasi_impl/types/http_outgoing_body.rs similarity index 98% rename from src/types/http_outgoing_body.rs rename to src/wasi_impl/types/http_outgoing_body.rs index 58b574e..c0a688a 100644 --- a/src/types/http_outgoing_body.rs +++ b/src/wasi_impl/types/http_outgoing_body.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn as _, Resource}, }; diff --git a/src/types/http_outgoing_handler.rs b/src/wasi_impl/types/http_outgoing_handler.rs similarity index 98% rename from src/types/http_outgoing_handler.rs rename to src/wasi_impl/types/http_outgoing_handler.rs index faad04d..ba2a3b1 100644 --- a/src/types/http_outgoing_handler.rs +++ b/src/wasi_impl/types/http_outgoing_handler.rs @@ -1,5 +1,5 @@ -use crate::bindings::wasi::{self}; -use crate::resource::{BlockOn, Resource}; +use crate::wasi_impl::bindings::wasi; +use crate::wasi_impl::resource::{BlockOn, Resource}; use wasi::http::types::ErrorCode; diff --git a/src/types/http_outgoing_request.rs b/src/wasi_impl/types/http_outgoing_request.rs similarity index 99% rename from src/types/http_outgoing_request.rs rename to src/wasi_impl/types/http_outgoing_request.rs index a90e226..84bf8c3 100644 --- a/src/types/http_outgoing_request.rs +++ b/src/wasi_impl/types/http_outgoing_request.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn as _, Resource}, }; diff --git a/src/types/http_outgoing_response.rs b/src/wasi_impl/types/http_outgoing_response.rs similarity index 98% rename from src/types/http_outgoing_response.rs rename to src/wasi_impl/types/http_outgoing_response.rs index 64784b0..d71e953 100644 --- a/src/types/http_outgoing_response.rs +++ b/src/wasi_impl/types/http_outgoing_response.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn, Resource}, }; diff --git a/src/types/http_request_options.rs b/src/wasi_impl/types/http_request_options.rs similarity index 98% rename from src/types/http_request_options.rs rename to src/wasi_impl/types/http_request_options.rs index 2118907..375d91f 100644 --- a/src/types/http_request_options.rs +++ b/src/wasi_impl/types/http_request_options.rs @@ -4,7 +4,7 @@ use hyperlight_common::resource::BorrowedResourceGuard; use super::WasiImpl; -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn, Resource}, }; diff --git a/src/types/http_response_outparam.rs b/src/wasi_impl/types/http_response_outparam.rs similarity index 96% rename from src/types/http_response_outparam.rs rename to src/wasi_impl/types/http_response_outparam.rs index 287688e..cc34e47 100644 --- a/src/types/http_response_outparam.rs +++ b/src/wasi_impl/types/http_response_outparam.rs @@ -1,4 +1,4 @@ -use crate::{ +use crate::wasi_impl::{ bindings::wasi, resource::{BlockOn as _, Resource}, }; diff --git a/src/types/io_error.rs b/src/wasi_impl/types/io_error.rs similarity index 78% rename from src/types/io_error.rs rename to src/wasi_impl/types/io_error.rs index 3e29318..ca6d059 100644 --- a/src/types/io_error.rs +++ b/src/wasi_impl/types/io_error.rs @@ -1,8 +1,8 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::types::WasiImpl; +use crate::wasi_impl::types::WasiImpl; -use crate::bindings::wasi; +use crate::wasi_impl::bindings::wasi; impl wasi::io::error::Error for WasiImpl { type T = anyhow::Error; diff --git a/src/types/io_poll.rs b/src/wasi_impl/types/io_poll.rs similarity index 99% rename from src/types/io_poll.rs rename to src/wasi_impl/types/io_poll.rs index 5cd0b1b..6e2d06d 100644 --- a/src/types/io_poll.rs +++ b/src/wasi_impl/types/io_poll.rs @@ -6,7 +6,7 @@ use std::{ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi::{self}, resource::{BlockOn, Resource}, }; diff --git a/src/types/io_stream.rs b/src/wasi_impl/types/io_stream.rs similarity index 99% rename from src/types/io_stream.rs rename to src/wasi_impl/types/io_stream.rs index dae84d9..7c2dff5 100644 --- a/src/types/io_stream.rs +++ b/src/wasi_impl/types/io_stream.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{ +use crate::wasi_impl::{ bindings::wasi::{self, io::streams::StreamError}, resource::{BlockOn, Resource}, }; diff --git a/src/types/random.rs b/src/wasi_impl/types/random.rs similarity index 89% rename from src/types/random.rs rename to src/wasi_impl/types/random.rs index f334807..f1a7ad0 100644 --- a/src/types/random.rs +++ b/src/wasi_impl/types/random.rs @@ -1,4 +1,4 @@ -use crate::bindings::wasi; +use crate::wasi_impl::bindings::wasi; use super::WasiImpl; diff --git a/src/types/types.rs b/src/wasi_impl/types/types.rs similarity index 89% rename from src/types/types.rs rename to src/wasi_impl/types/types.rs index 188de7e..da54018 100644 --- a/src/types/types.rs +++ b/src/wasi_impl/types/types.rs @@ -1,6 +1,6 @@ use hyperlight_common::resource::BorrowedResourceGuard; -use crate::{bindings::wasi, resource::Resource}; +use crate::wasi_impl::{bindings::wasi, resource::Resource}; use super::{WasiImpl, io_poll::AnyPollable, io_stream::Stream}; diff --git a/src/worker.rs b/src/wasi_impl/worker.rs similarity index 100% rename from src/worker.rs rename to src/wasi_impl/worker.rs From 299d43c5b9adfd922f018a50d22f76dcbbfef971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Doru=20Bl=C3=A2nzeanu?= Date: Tue, 17 Mar 2026 21:18:01 +0200 Subject: [PATCH 2/2] Update hyperlight version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Doru Blânzeanu --- Cargo.lock | 351 ++++++++++++++++++++++++++-------------------------- Cargo.toml | 20 +-- README.md | 2 +- justfile | 2 +- src/main.rs | 11 +- 5 files changed, 188 insertions(+), 198 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a7a0db..6adc5ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,7 +17,7 @@ dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy 0.8.42", + "zerocopy", ] [[package]] @@ -244,18 +244,31 @@ version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +[[package]] +name = "cargo-hyperlight" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f745c885e25dbf258ac37804773e60fbb7fce9b46c1db020760131d3faffe35c" +dependencies = [ + "anyhow", + "console", + "const_format", + "glob", + "libc", + "os_str_bytes", + "regex", + "semver", + "serde", + "serde_json", + "which", +] + [[package]] name = "cc" version = "1.2.57" @@ -290,7 +303,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -317,6 +330,38 @@ version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" +[[package]] +name = "console" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" +dependencies = [ + "encode_unicode", + "libc", + "unicode-width", + "windows-sys 0.61.2", +] + +[[package]] +name = "const_format" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.4.2" @@ -449,11 +494,17 @@ dependencies = [ "libc", "nix", "smallvec", - "thiserror 2.0.18", + "thiserror", "tracing", - "zerocopy 0.8.42", + "zerocopy", ] +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "encoding_rs" version = "0.8.35" @@ -705,6 +756,12 @@ dependencies = [ "url", ] +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + [[package]] name = "globset" version = "0.4.18" @@ -905,22 +962,23 @@ dependencies = [ [[package]] name = "hyperlight-common" -version = "0.9.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7f54e238983959d8b6df4c3ba649eb0419525ce70c640a81bd187b5c9ee6370" +checksum = "98f80e9aba9fce2a899c9ff0c62dd39cd479fa2f22ef578faed1d510c5becf94" dependencies = [ "anyhow", "flatbuffers", "log", "spin", + "thiserror", "tracing", ] [[package]] name = "hyperlight-component-macro" -version = "0.9.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7503ed5b290f80e869876fcf2f48846432b954c285caace4cddb1edcbafea216" +checksum = "f217d5bbb0d02c9aac81374c3161af2a3a46a5379a604b0799534762a534d75a" dependencies = [ "env_logger", "hyperlight-component-util", @@ -929,14 +987,14 @@ dependencies = [ "proc-macro2", "quote", "syn", - "wasmparser 0.238.1", + "wasmparser 0.243.0", ] [[package]] name = "hyperlight-component-util" -version = "0.9.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57729c707663f0973658cc96fc34bc7e32b9ceea4c36a1964a306601df69b95" +checksum = "b9b3299460dc5f39d37b8233c9aad7fc52c9548d96a76d35cdcc4f4f49ff6662" dependencies = [ "itertools", "log", @@ -944,14 +1002,14 @@ dependencies = [ "proc-macro2", "quote", "syn", - "wasmparser 0.238.1", + "wasmparser 0.243.0", ] [[package]] name = "hyperlight-host" -version = "0.9.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b93b8262196a19ddf6d43484b94e890e828aac0b99b0b2e55649da6e8df6a1" +checksum = "0f81d712e88785e8860be6b33048fc2c9ad6637864aa50fe95d0037cfa50a4fb" dependencies = [ "anyhow", "bitflags 2.11.0", @@ -969,41 +1027,43 @@ dependencies = [ "libc", "log", "metrics", - "mshv-bindings 0.2.1", - "mshv-bindings 0.3.2", - "mshv-ioctls 0.2.1", - "mshv-ioctls 0.3.2", + "mshv-bindings", + "mshv-ioctls", "page_size", "rand", "rust-embed", "serde_json", "sha256", "termcolor", - "thiserror 2.0.18", + "thiserror", "tracing", "tracing-core", "tracing-log", "uuid", "vmm-sys-util", "windows", - "windows-result 0.3.4", - "windows-sys 0.60.2", + "windows-result", + "windows-sys 0.61.2", "windows-version", ] [[package]] name = "hyperlight-wasm" -version = "0.9.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1c0b51415ca0f861ccc14b81bc1bf6e1e821ff573b23828619316e6dc06522a" +checksum = "9f2e95638da8eeab5f884f61609dfadbc41babd1611c3222ac61c2c8fc3cf911" dependencies = [ "anyhow", "blake3", "built", + "cargo-hyperlight", "cfg-if", + "cfg_aliases", "chrono", + "env_logger", "goblin", "hyperlight-host", + "junction", "libc", "log", "metrics", @@ -1028,6 +1088,7 @@ dependencies = [ "hyperlight-component-macro", "hyperlight-host", "hyperlight-wasm", + "once_cell", "reqwest", "tokio", ] @@ -1044,7 +1105,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core", ] [[package]] @@ -1257,6 +1318,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "junction" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfc352a66ba903c23239ef51e809508b6fc2b0f90e3476ac7a9ff47e863ae95" +dependencies = [ + "scopeguard", + "windows-sys 0.61.2", +] + [[package]] name = "kvm-bindings" version = "0.14.0" @@ -1410,49 +1481,25 @@ dependencies = [ [[package]] name = "mshv-bindings" -version = "0.2.1" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f416b4432174e5a3f956a7887f4c1a4acea9511d81def67fcb8473293630ab9e" +checksum = "3cbfd4f32d185152003679339751839da77c17e18fa8882a11051a236f841426" dependencies = [ "libc", "num_enum", "vmm-sys-util", - "zerocopy 0.7.35", -] - -[[package]] -name = "mshv-bindings" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0cb5031f3243a7459b7c13d960d25420980874eebda816db24ce6077e21d43" -dependencies = [ - "libc", - "num_enum", - "vmm-sys-util", - "zerocopy 0.8.42", -] - -[[package]] -name = "mshv-ioctls" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d57586da719aacc905042eea71ff2efb52d16c7228a94af155c9ea45fe09c1c7" -dependencies = [ - "libc", - "mshv-bindings 0.2.1", - "thiserror 1.0.69", - "vmm-sys-util", + "zerocopy", ] [[package]] name = "mshv-ioctls" -version = "0.3.2" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89abe853221fa6f14ad4066affb9abda241a03d65622887d5794e1422d0bd75a" +checksum = "f035616abe1e4cbc026a1a8094ff8d3900f5063fe6608309098bc745926fdfd8" dependencies = [ "libc", - "mshv-bindings 0.3.2", - "thiserror 2.0.18", + "mshv-bindings", + "thiserror", "vmm-sys-util", ] @@ -1577,6 +1624,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "os_str_bytes" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63eceb7b5d757011a87d08eb2123db15d87fb0c281f65d101ce30a1e96c3ad5c" +dependencies = [ + "memchr", +] + [[package]] name = "page_size" version = "0.6.0" @@ -1607,7 +1663,7 @@ dependencies = [ "libc", "redox_syscall 0.5.18", "smallvec", - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -1670,7 +1726,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.42", + "zerocopy", ] [[package]] @@ -1706,7 +1762,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2", - "thiserror 2.0.18", + "thiserror", "tokio", "tracing", "web-time", @@ -1727,7 +1783,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.18", + "thiserror", "tinyvec", "tracing", "web-time", @@ -1823,7 +1879,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", - "thiserror 2.0.18", + "thiserror", ] [[package]] @@ -2100,6 +2156,10 @@ name = "semver" version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +dependencies = [ + "serde", + "serde_core", +] [[package]] name = "serde" @@ -2339,33 +2399,13 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - [[package]] name = "thiserror" version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.18", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "thiserror-impl", ] [[package]] @@ -2577,6 +2617,12 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -2791,9 +2837,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.238.1" +version = "0.243.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa99c8328024423875ae4a55345cfde8f0371327fb2d0f33b0f52a06fc44408" +checksum = "f6d8db401b0528ec316dfbe579e6ab4152d61739cfe076706d2009127970159d" dependencies = [ "bitflags 2.11.0", "hashbrown 0.15.5", @@ -2843,6 +2889,16 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "which" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81995fafaaaf6ae47a7d0cc83c67caf92aeb7e5331650ae6ff856f7c0c60c459" +dependencies = [ + "libc", + "regex", +] + [[package]] name = "winapi" version = "0.3.9" @@ -2876,37 +2932,23 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.61.3" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ "windows-collections", - "windows-core 0.61.2", + "windows-core", "windows-future", - "windows-link 0.1.3", "windows-numerics", ] [[package]] name = "windows-collections" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ - "windows-core 0.61.2", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "windows-core", ] [[package]] @@ -2917,19 +2959,19 @@ checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] name = "windows-future" -version = "0.2.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", + "windows-core", + "windows-link", "windows-threading", ] @@ -2955,12 +2997,6 @@ dependencies = [ "syn", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" @@ -2969,12 +3005,12 @@ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-numerics" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", + "windows-core", + "windows-link", ] [[package]] @@ -2983,18 +3019,9 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] @@ -3003,16 +3030,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -3021,7 +3039,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3048,7 +3066,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3073,7 +3091,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -3086,11 +3104,11 @@ dependencies = [ [[package]] name = "windows-threading" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -3099,7 +3117,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4060a1da109b9d0326b7262c8e12c84df67cc0dbc9e33cf49e01ccc2eb63631" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -3325,34 +3343,13 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive 0.7.35", -] - [[package]] name = "zerocopy" version = "0.8.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" dependencies = [ - "zerocopy-derive 0.8.42", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "zerocopy-derive", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 81382a0..8774589 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,16 +3,16 @@ name = "hyperlight-wasm-http-example" edition = "2024" [dependencies] -hyperlight-component-macro = { version = "0.9.0" } -hyperlight-common = { version = "0.9.0" } -hyperlight-host = { version = "0.9.0", default-features = false, features = [ "kvm", "mshv2" ] } -hyperlight-wasm = { version = "0.9.0" } - -hyper = "1.7" -reqwest = { version = "0.12", features = ["stream", "gzip", "brotli", "deflate", "rustls-tls", "blocking"] } -bytes = "1" -tokio = { version = "1.47", features = ["full"] } anyhow = "1.0" +bytes = "1" +getrandom = "0.3.3" http-body-util = "0.1" +hyper = "1.7" hyper-util = { version = "0.1", features = ["full"] } -getrandom = "0.3.3" +hyperlight-component-macro = { version = "0.12.0" } +hyperlight-common = { version = "0.12.0" } +hyperlight-host = { version = "0.12.0", default-features = false, features = [ "kvm", "mshv3" ] } +hyperlight-wasm = { version = "0.12.0" } +once_cell = "1.21.3" +reqwest = { version = "0.12", features = ["stream", "gzip", "brotli", "deflate", "rustls-tls", "blocking"] } +tokio = { version = "1.47", features = ["full"] } diff --git a/README.md b/README.md index 1ad39fa..8478d7c 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ cargo run -- out/sample_wasi_http_rust.aot JS: ```sh -cargo run -- out/sample_wasi_http_js.aot +cargo run -- out/sample-wasi-http-js.aot ``` ## Try it yourself! diff --git a/justfile b/justfile index f15436b..5d39a01 100644 --- a/justfile +++ b/justfile @@ -12,7 +12,7 @@ install-hyperlight-wasm-aot: test -f {{ BIN_DIR }}/hyperlight-wasm-aot || \ cargo install hyperlight-wasm-aot \ --locked \ - --version 0.9.0 \ + --version 0.12.0 \ --root {{ TARGET_DIR }} build-js-component: make-out-dir install-hyperlight-wasm-aot diff --git a/src/main.rs b/src/main.rs index f15543e..abc991c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,6 @@ use bytes::Bytes; use http_body_util::{BodyExt, Full}; use hyper::{server::conn::http1, service::service_fn}; use hyper_util::rt::TokioIo; -use hyperlight_host::sandbox::SandboxConfiguration; use hyperlight_wasm::LoadedWasmSandbox; use tokio::{net::TcpListener, sync::Mutex}; @@ -31,14 +30,8 @@ fn main() { let builder = hyperlight_wasm::SandboxBuilder::new() .with_guest_heap_size(30 * 1024 * 1024) - .with_guest_stack_size(1 * 1024 * 1024); - - // hyperlight wasm currently doesn't expose a way to set the host - // function definition size, so we do it manually here with a - // horrible hack to get a mutable reference to the config - let config = builder.get_config() as *const _ as *mut SandboxConfiguration; - let config = unsafe { config.as_mut().unwrap() }; - config.set_host_function_definition_size(20 * 1024); + .with_guest_stack_size(1 * 1024 * 1024) + .with_function_definition_size(20 * 1024); let mut sb = builder.build().unwrap();