// Code generated by wit-bindgen-go. DO NOT EDIT. // Package udpcreatesocket represents the imported interface "wasi:sockets/udp-create-socket@0.2.0". package udpcreatesocket import ( "internal/cm" "internal/wasi/sockets/v0.2.0/network" "internal/wasi/sockets/v0.2.0/udp" ) // CreateUDPSocket represents the imported function "create-udp-socket". // // Create a new UDP socket. // // Similar to `socket(AF_INET or AF_INET6, SOCK_DGRAM, IPPROTO_UDP)` in POSIX. // On IPv6 sockets, IPV6_V6ONLY is enabled by default and can't be configured otherwise. // // This function does not require a network capability handle. This is considered // to be safe because // at time of creation, the socket is not bound to any `network` yet. Up to the moment // `bind` is called, // the socket is effectively an in-memory configuration object, unable to communicate // with the outside world. // // All sockets are non-blocking. Use the wasi-poll interface to block on asynchronous // operations. // // # Typical errors // - `not-supported`: The specified `address-family` is not supported. (EAFNOSUPPORT) // - `new-socket-limit`: The new socket resource could not be created because of // a system limit. (EMFILE, ENFILE) // // # References: // - // - // - // - // // create-udp-socket: func(address-family: ip-address-family) -> result // //go:nosplit func CreateUDPSocket(addressFamily network.IPAddressFamily) (result cm.Result[udp.UDPSocket, udp.UDPSocket, network.ErrorCode]) { addressFamily0 := (uint32)(addressFamily) wasmimport_CreateUDPSocket((uint32)(addressFamily0), &result) return } //go:wasmimport wasi:sockets/udp-create-socket@0.2.0 create-udp-socket //go:noescape func wasmimport_CreateUDPSocket(addressFamily0 uint32, result *cm.Result[udp.UDPSocket, udp.UDPSocket, network.ErrorCode])