diff --git a/testdata/codegen/result.wit b/testdata/codegen/result.wit new file mode 100644 index 00000000..7bc56ebd --- /dev/null +++ b/testdata/codegen/result.wit @@ -0,0 +1,11 @@ +package test:test; + +world w { + import i; +} + +interface i { + f1: func() -> result; + f2: func() -> result; + f3: func() -> result; +} diff --git a/testdata/codegen/result.wit.json b/testdata/codegen/result.wit.json new file mode 100644 index 00000000..b5b288ef --- /dev/null +++ b/testdata/codegen/result.wit.json @@ -0,0 +1,66 @@ +{ + "worlds": [ + { + "name": "w", + "imports": { + "interface-0": { + "interface": { + "id": 0 + } + } + }, + "exports": {}, + "package": 0 + } + ], + "interfaces": [ + { + "name": "i", + "types": {}, + "functions": { + "f1": { + "name": "f1", + "kind": "freestanding", + "params": [], + "result": 0 + }, + "f2": { + "name": "f2", + "kind": "freestanding", + "params": [], + "result": 0 + }, + "f3": { + "name": "f3", + "kind": "freestanding", + "params": [], + "result": 0 + } + }, + "package": 0 + } + ], + "types": [ + { + "name": null, + "kind": { + "result": { + "ok": "bool", + "err": "u8" + } + }, + "owner": null + } + ], + "packages": [ + { + "name": "test:test", + "interfaces": { + "i": 0 + }, + "worlds": { + "w": 0 + } + } + ] +} \ No newline at end of file diff --git a/testdata/codegen/result.wit.json.golden.wit b/testdata/codegen/result.wit.json.golden.wit new file mode 100644 index 00000000..806ee830 --- /dev/null +++ b/testdata/codegen/result.wit.json.golden.wit @@ -0,0 +1,11 @@ +package test:test; + +interface i { + f1: func() -> result; + f2: func() -> result; + f3: func() -> result; +} + +world w { + import i; +} diff --git a/tests/generated/wasi/cli/v0.2.0/exit/abi.go b/tests/generated/wasi/cli/v0.2.0/exit/abi.go new file mode 100644 index 00000000..29046a86 --- /dev/null +++ b/tests/generated/wasi/cli/v0.2.0/exit/abi.go @@ -0,0 +1,12 @@ +// Code generated by wit-bindgen-go. DO NOT EDIT. + +package exit + +import ( + "go.bytecodealliance.org/cm" +) + +// Result represents the result "#". +// +// result +type Result cm.BoolResult diff --git a/tests/generated/wasi/cli/v0.2.0/exit/exit.wit.go b/tests/generated/wasi/cli/v0.2.0/exit/exit.wit.go index 947fa253..00c39293 100644 --- a/tests/generated/wasi/cli/v0.2.0/exit/exit.wit.go +++ b/tests/generated/wasi/cli/v0.2.0/exit/exit.wit.go @@ -14,7 +14,7 @@ import ( // exit: func(status: result) // //go:nosplit -func Exit(status cm.BoolResult) { +func Exit(status Result) { status0 := (uint32)(cm.BoolToU32(status)) wasmimport_Exit((uint32)(status0)) return diff --git a/tests/generated/wasi/cli/v0.2.0/run/abi.go b/tests/generated/wasi/cli/v0.2.0/run/abi.go new file mode 100644 index 00000000..36dcc952 --- /dev/null +++ b/tests/generated/wasi/cli/v0.2.0/run/abi.go @@ -0,0 +1,12 @@ +// Code generated by wit-bindgen-go. DO NOT EDIT. + +package run + +import ( + "go.bytecodealliance.org/cm" +) + +// Result represents the result "#". +// +// result +type Result cm.BoolResult diff --git a/tests/generated/wasi/cli/v0.2.0/run/run.exports.go b/tests/generated/wasi/cli/v0.2.0/run/run.exports.go index 647b093c..de103ad0 100644 --- a/tests/generated/wasi/cli/v0.2.0/run/run.exports.go +++ b/tests/generated/wasi/cli/v0.2.0/run/run.exports.go @@ -3,7 +3,7 @@ package run import ( - "go.bytecodealliance.org/cm" + "tests/generated/wasi/cli/v0.2.0/exit" ) // Exports represents the caller-defined exports from "wasi:cli/run@0.2.0". @@ -13,5 +13,5 @@ var Exports struct { // Run the program. // // run: func() -> result - Run func() (result cm.BoolResult) + Run func() (result exit.Result) } diff --git a/tests/generated/wasi/filesystem/v0.2.0/types/abi.go b/tests/generated/wasi/filesystem/v0.2.0/types/abi.go index f37c9ff7..7874965a 100644 --- a/tests/generated/wasi/filesystem/v0.2.0/types/abi.go +++ b/tests/generated/wasi/filesystem/v0.2.0/types/abi.go @@ -8,18 +8,68 @@ import ( "unsafe" ) +// ResultErrorCode represents the result "#". +// +// result<_, error-code> +type ResultErrorCode cm.Result[ErrorCode, struct{}, ErrorCode] + +// ResultOutputStreamErrorCode represents the imported result "#". +// +// result +type ResultOutputStreamErrorCode cm.Result[OutputStream, OutputStream, ErrorCode] + +// ResultDescriptorFlagsErrorCode represents the result "#". +// +// result +type ResultDescriptorFlagsErrorCode cm.Result[DescriptorFlags, DescriptorFlags, ErrorCode] + +// ResultDescriptorTypeErrorCode represents the result "#". +// +// result +type ResultDescriptorTypeErrorCode cm.Result[DescriptorType, DescriptorType, ErrorCode] + // MetadataHashValueShape is used for storage in variant or result types. type MetadataHashValueShape struct { _ cm.HostLayout shape [unsafe.Sizeof(MetadataHashValue{})]byte } +// ResultMetadataHashValueErrorCode represents the result "#". +// +// result +type ResultMetadataHashValueErrorCode cm.Result[MetadataHashValueShape, MetadataHashValue, ErrorCode] + +// ResultDescriptorErrorCode represents the imported result "#". +// +// result +type ResultDescriptorErrorCode cm.Result[Descriptor, Descriptor, ErrorCode] + // TupleListU8BoolShape is used for storage in variant or result types. type TupleListU8BoolShape struct { _ cm.HostLayout shape [unsafe.Sizeof(cm.Tuple[cm.List[uint8], bool]{})]byte } +// ResultTupleListU8BoolErrorCode represents the result "#". +// +// result, bool>, error-code> +type ResultTupleListU8BoolErrorCode cm.Result[TupleListU8BoolShape, cm.Tuple[cm.List[uint8], bool], ErrorCode] + +// ResultDirectoryEntryStreamErrorCode represents the imported result "#". +// +// result +type ResultDirectoryEntryStreamErrorCode cm.Result[DirectoryEntryStream, DirectoryEntryStream, ErrorCode] + +// ResultInputStreamErrorCode represents the imported result "#". +// +// result +type ResultInputStreamErrorCode cm.Result[InputStream, InputStream, ErrorCode] + +// ResultStringErrorCode represents the result "#". +// +// result +type ResultStringErrorCode cm.Result[string, string, ErrorCode] + func lower_DateTime(v wallclock.DateTime) (f0 uint64, f1 uint32) { f0 = (uint64)(v.Seconds) f1 = (uint32)(v.Nanoseconds) @@ -43,8 +93,23 @@ type DescriptorStatShape struct { shape [unsafe.Sizeof(DescriptorStat{})]byte } +// ResultDescriptorStatErrorCode represents the result "#". +// +// result +type ResultDescriptorStatErrorCode cm.Result[DescriptorStatShape, DescriptorStat, ErrorCode] + +// ResultFileSizeErrorCode represents the result "#". +// +// result +type ResultFileSizeErrorCode cm.Result[uint64, FileSize, ErrorCode] + // OptionDirectoryEntryShape is used for storage in variant or result types. type OptionDirectoryEntryShape struct { _ cm.HostLayout shape [unsafe.Sizeof(cm.Option[DirectoryEntry]{})]byte } + +// ResultOptionDirectoryEntryErrorCode represents the result "#". +// +// result, error-code> +type ResultOptionDirectoryEntryErrorCode cm.Result[OptionDirectoryEntryShape, cm.Option[DirectoryEntry], ErrorCode] diff --git a/tests/generated/wasi/filesystem/v0.2.0/types/types.wasm.go b/tests/generated/wasi/filesystem/v0.2.0/types/types.wasm.go index b97dad84..b6525c28 100644 --- a/tests/generated/wasi/filesystem/v0.2.0/types/types.wasm.go +++ b/tests/generated/wasi/filesystem/v0.2.0/types/types.wasm.go @@ -14,23 +14,23 @@ func wasmimport_DescriptorResourceDrop(self0 uint32) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.advise //go:noescape -func wasmimport_DescriptorAdvise(self0 uint32, offset0 uint64, length0 uint64, advice0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorAdvise(self0 uint32, offset0 uint64, length0 uint64, advice0 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.append-via-stream //go:noescape -func wasmimport_DescriptorAppendViaStream(self0 uint32, result *cm.Result[OutputStream, OutputStream, ErrorCode]) +func wasmimport_DescriptorAppendViaStream(self0 uint32, result *ResultOutputStreamErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.create-directory-at //go:noescape -func wasmimport_DescriptorCreateDirectoryAt(self0 uint32, path0 *uint8, path1 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorCreateDirectoryAt(self0 uint32, path0 *uint8, path1 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.get-flags //go:noescape -func wasmimport_DescriptorGetFlags(self0 uint32, result *cm.Result[DescriptorFlags, DescriptorFlags, ErrorCode]) +func wasmimport_DescriptorGetFlags(self0 uint32, result *ResultDescriptorFlagsErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.get-type //go:noescape -func wasmimport_DescriptorGetType(self0 uint32, result *cm.Result[DescriptorType, DescriptorType, ErrorCode]) +func wasmimport_DescriptorGetType(self0 uint32, result *ResultDescriptorTypeErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.is-same-object //go:noescape @@ -38,87 +38,87 @@ func wasmimport_DescriptorIsSameObject(self0 uint32, other0 uint32) (result0 uin //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.link-at //go:noescape -func wasmimport_DescriptorLinkAt(self0 uint32, oldPathFlags0 uint32, oldPath0 *uint8, oldPath1 uint32, newDescriptor0 uint32, newPath0 *uint8, newPath1 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorLinkAt(self0 uint32, oldPathFlags0 uint32, oldPath0 *uint8, oldPath1 uint32, newDescriptor0 uint32, newPath0 *uint8, newPath1 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.metadata-hash //go:noescape -func wasmimport_DescriptorMetadataHash(self0 uint32, result *cm.Result[MetadataHashValueShape, MetadataHashValue, ErrorCode]) +func wasmimport_DescriptorMetadataHash(self0 uint32, result *ResultMetadataHashValueErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.metadata-hash-at //go:noescape -func wasmimport_DescriptorMetadataHashAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, result *cm.Result[MetadataHashValueShape, MetadataHashValue, ErrorCode]) +func wasmimport_DescriptorMetadataHashAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, result *ResultMetadataHashValueErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.open-at //go:noescape -func wasmimport_DescriptorOpenAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, openFlags0 uint32, flags0 uint32, result *cm.Result[Descriptor, Descriptor, ErrorCode]) +func wasmimport_DescriptorOpenAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, openFlags0 uint32, flags0 uint32, result *ResultDescriptorErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.read //go:noescape -func wasmimport_DescriptorRead(self0 uint32, length0 uint64, offset0 uint64, result *cm.Result[TupleListU8BoolShape, cm.Tuple[cm.List[uint8], bool], ErrorCode]) +func wasmimport_DescriptorRead(self0 uint32, length0 uint64, offset0 uint64, result *ResultTupleListU8BoolErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.read-directory //go:noescape -func wasmimport_DescriptorReadDirectory(self0 uint32, result *cm.Result[DirectoryEntryStream, DirectoryEntryStream, ErrorCode]) +func wasmimport_DescriptorReadDirectory(self0 uint32, result *ResultDirectoryEntryStreamErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.read-via-stream //go:noescape -func wasmimport_DescriptorReadViaStream(self0 uint32, offset0 uint64, result *cm.Result[InputStream, InputStream, ErrorCode]) +func wasmimport_DescriptorReadViaStream(self0 uint32, offset0 uint64, result *ResultInputStreamErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.readlink-at //go:noescape -func wasmimport_DescriptorReadLinkAt(self0 uint32, path0 *uint8, path1 uint32, result *cm.Result[string, string, ErrorCode]) +func wasmimport_DescriptorReadLinkAt(self0 uint32, path0 *uint8, path1 uint32, result *ResultStringErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.remove-directory-at //go:noescape -func wasmimport_DescriptorRemoveDirectoryAt(self0 uint32, path0 *uint8, path1 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorRemoveDirectoryAt(self0 uint32, path0 *uint8, path1 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.rename-at //go:noescape -func wasmimport_DescriptorRenameAt(self0 uint32, oldPath0 *uint8, oldPath1 uint32, newDescriptor0 uint32, newPath0 *uint8, newPath1 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorRenameAt(self0 uint32, oldPath0 *uint8, oldPath1 uint32, newDescriptor0 uint32, newPath0 *uint8, newPath1 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.set-size //go:noescape -func wasmimport_DescriptorSetSize(self0 uint32, size0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorSetSize(self0 uint32, size0 uint64, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.set-times //go:noescape -func wasmimport_DescriptorSetTimes(self0 uint32, dataAccessTimestamp0 uint32, dataAccessTimestamp1 uint64, dataAccessTimestamp2 uint32, dataModificationTimestamp0 uint32, dataModificationTimestamp1 uint64, dataModificationTimestamp2 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorSetTimes(self0 uint32, dataAccessTimestamp0 uint32, dataAccessTimestamp1 uint64, dataAccessTimestamp2 uint32, dataModificationTimestamp0 uint32, dataModificationTimestamp1 uint64, dataModificationTimestamp2 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.set-times-at //go:noescape -func wasmimport_DescriptorSetTimesAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, dataAccessTimestamp0 uint32, dataAccessTimestamp1 uint64, dataAccessTimestamp2 uint32, dataModificationTimestamp0 uint32, dataModificationTimestamp1 uint64, dataModificationTimestamp2 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorSetTimesAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, dataAccessTimestamp0 uint32, dataAccessTimestamp1 uint64, dataAccessTimestamp2 uint32, dataModificationTimestamp0 uint32, dataModificationTimestamp1 uint64, dataModificationTimestamp2 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.stat //go:noescape -func wasmimport_DescriptorStat(self0 uint32, result *cm.Result[DescriptorStatShape, DescriptorStat, ErrorCode]) +func wasmimport_DescriptorStat(self0 uint32, result *ResultDescriptorStatErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.stat-at //go:noescape -func wasmimport_DescriptorStatAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, result *cm.Result[DescriptorStatShape, DescriptorStat, ErrorCode]) +func wasmimport_DescriptorStatAt(self0 uint32, pathFlags0 uint32, path0 *uint8, path1 uint32, result *ResultDescriptorStatErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.symlink-at //go:noescape -func wasmimport_DescriptorSymlinkAt(self0 uint32, oldPath0 *uint8, oldPath1 uint32, newPath0 *uint8, newPath1 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorSymlinkAt(self0 uint32, oldPath0 *uint8, oldPath1 uint32, newPath0 *uint8, newPath1 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.sync //go:noescape -func wasmimport_DescriptorSync(self0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorSync(self0 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.sync-data //go:noescape -func wasmimport_DescriptorSyncData(self0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorSyncData(self0 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.unlink-file-at //go:noescape -func wasmimport_DescriptorUnlinkFileAt(self0 uint32, path0 *uint8, path1 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_DescriptorUnlinkFileAt(self0 uint32, path0 *uint8, path1 uint32, result *ResultErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.write //go:noescape -func wasmimport_DescriptorWrite(self0 uint32, buffer0 *uint8, buffer1 uint32, offset0 uint64, result *cm.Result[uint64, FileSize, ErrorCode]) +func wasmimport_DescriptorWrite(self0 uint32, buffer0 *uint8, buffer1 uint32, offset0 uint64, result *ResultFileSizeErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [method]descriptor.write-via-stream //go:noescape -func wasmimport_DescriptorWriteViaStream(self0 uint32, offset0 uint64, result *cm.Result[OutputStream, OutputStream, ErrorCode]) +func wasmimport_DescriptorWriteViaStream(self0 uint32, offset0 uint64, result *ResultOutputStreamErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 [resource-drop]directory-entry-stream //go:noescape @@ -126,7 +126,7 @@ func wasmimport_DirectoryEntryStreamResourceDrop(self0 uint32) //go:wasmimport wasi:filesystem/types@0.2.0 [method]directory-entry-stream.read-directory-entry //go:noescape -func wasmimport_DirectoryEntryStreamReadDirectoryEntry(self0 uint32, result *cm.Result[OptionDirectoryEntryShape, cm.Option[DirectoryEntry], ErrorCode]) +func wasmimport_DirectoryEntryStreamReadDirectoryEntry(self0 uint32, result *ResultOptionDirectoryEntryErrorCode) //go:wasmimport wasi:filesystem/types@0.2.0 filesystem-error-code //go:noescape diff --git a/tests/generated/wasi/filesystem/v0.2.0/types/types.wit.go b/tests/generated/wasi/filesystem/v0.2.0/types/types.wit.go index f8252d54..5f7a57d1 100644 --- a/tests/generated/wasi/filesystem/v0.2.0/types/types.wit.go +++ b/tests/generated/wasi/filesystem/v0.2.0/types/types.wit.go @@ -701,7 +701,7 @@ func (self Descriptor) ResourceDrop() { // advise: func(offset: filesize, length: filesize, advice: advice) -> result<_, error-code> // //go:nosplit -func (self Descriptor) Advise(offset FileSize, length FileSize, advice Advice) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) Advise(offset FileSize, length FileSize, advice Advice) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) offset0 := (uint64)(offset) length0 := (uint64)(length) @@ -722,7 +722,7 @@ func (self Descriptor) Advise(offset FileSize, length FileSize, advice Advice) ( // append-via-stream: func() -> result // //go:nosplit -func (self Descriptor) AppendViaStream() (result cm.Result[OutputStream, OutputStream, ErrorCode]) { +func (self Descriptor) AppendViaStream() (result ResultOutputStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorAppendViaStream((uint32)(self0), &result) return @@ -737,7 +737,7 @@ func (self Descriptor) AppendViaStream() (result cm.Result[OutputStream, OutputS // create-directory-at: func(path: string) -> result<_, error-code> // //go:nosplit -func (self Descriptor) CreateDirectoryAt(path string) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) CreateDirectoryAt(path string) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) path0, path1 := cm.LowerString(path) wasmimport_DescriptorCreateDirectoryAt((uint32)(self0), (*uint8)(path0), (uint32)(path1), &result) @@ -756,7 +756,7 @@ func (self Descriptor) CreateDirectoryAt(path string) (result cm.Result[ErrorCod // get-flags: func() -> result // //go:nosplit -func (self Descriptor) GetFlags() (result cm.Result[DescriptorFlags, DescriptorFlags, ErrorCode]) { +func (self Descriptor) GetFlags() (result ResultDescriptorFlagsErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorGetFlags((uint32)(self0), &result) return @@ -778,7 +778,7 @@ func (self Descriptor) GetFlags() (result cm.Result[DescriptorFlags, DescriptorF // get-type: func() -> result // //go:nosplit -func (self Descriptor) GetType() (result cm.Result[DescriptorType, DescriptorType, ErrorCode]) { +func (self Descriptor) GetType() (result ResultDescriptorTypeErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorGetType((uint32)(self0), &result) return @@ -814,7 +814,7 @@ func (self Descriptor) IsSameObject(other Descriptor) (result bool) { // new-path: string) -> result<_, error-code> // //go:nosplit -func (self Descriptor) LinkAt(oldPathFlags PathFlags, oldPath string, newDescriptor Descriptor, newPath string) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) LinkAt(oldPathFlags PathFlags, oldPath string, newDescriptor Descriptor, newPath string) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) oldPathFlags0 := (uint32)(oldPathFlags) oldPath0, oldPath1 := cm.LowerString(oldPath) @@ -849,7 +849,7 @@ func (self Descriptor) LinkAt(oldPathFlags PathFlags, oldPath string, newDescrip // metadata-hash: func() -> result // //go:nosplit -func (self Descriptor) MetadataHash() (result cm.Result[MetadataHashValueShape, MetadataHashValue, ErrorCode]) { +func (self Descriptor) MetadataHash() (result ResultMetadataHashValueErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorMetadataHash((uint32)(self0), &result) return @@ -866,7 +866,7 @@ func (self Descriptor) MetadataHash() (result cm.Result[MetadataHashValueShape, // error-code> // //go:nosplit -func (self Descriptor) MetadataHashAt(pathFlags PathFlags, path string) (result cm.Result[MetadataHashValueShape, MetadataHashValue, ErrorCode]) { +func (self Descriptor) MetadataHashAt(pathFlags PathFlags, path string) (result ResultMetadataHashValueErrorCode) { self0 := cm.Reinterpret[uint32](self) pathFlags0 := (uint32)(pathFlags) path0, path1 := cm.LowerString(path) @@ -899,7 +899,7 @@ func (self Descriptor) MetadataHashAt(pathFlags PathFlags, path string) (result // descriptor-flags) -> result // //go:nosplit -func (self Descriptor) OpenAt(pathFlags PathFlags, path string, openFlags OpenFlags, flags DescriptorFlags) (result cm.Result[Descriptor, Descriptor, ErrorCode]) { +func (self Descriptor) OpenAt(pathFlags PathFlags, path string, openFlags OpenFlags, flags DescriptorFlags) (result ResultDescriptorErrorCode) { self0 := cm.Reinterpret[uint32](self) pathFlags0 := (uint32)(pathFlags) path0, path1 := cm.LowerString(path) @@ -927,7 +927,7 @@ func (self Descriptor) OpenAt(pathFlags PathFlags, path string, openFlags OpenFl // error-code> // //go:nosplit -func (self Descriptor) Read(length FileSize, offset FileSize) (result cm.Result[TupleListU8BoolShape, cm.Tuple[cm.List[uint8], bool], ErrorCode]) { +func (self Descriptor) Read(length FileSize, offset FileSize) (result ResultTupleListU8BoolErrorCode) { self0 := cm.Reinterpret[uint32](self) length0 := (uint64)(length) offset0 := (uint64)(offset) @@ -950,7 +950,7 @@ func (self Descriptor) Read(length FileSize, offset FileSize) (result cm.Result[ // read-directory: func() -> result // //go:nosplit -func (self Descriptor) ReadDirectory() (result cm.Result[DirectoryEntryStream, DirectoryEntryStream, ErrorCode]) { +func (self Descriptor) ReadDirectory() (result ResultDirectoryEntryStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorReadDirectory((uint32)(self0), &result) return @@ -970,7 +970,7 @@ func (self Descriptor) ReadDirectory() (result cm.Result[DirectoryEntryStream, D // read-via-stream: func(offset: filesize) -> result // //go:nosplit -func (self Descriptor) ReadViaStream(offset FileSize) (result cm.Result[InputStream, InputStream, ErrorCode]) { +func (self Descriptor) ReadViaStream(offset FileSize) (result ResultInputStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) offset0 := (uint64)(offset) wasmimport_DescriptorReadViaStream((uint32)(self0), (uint64)(offset0), &result) @@ -989,7 +989,7 @@ func (self Descriptor) ReadViaStream(offset FileSize) (result cm.Result[InputStr // readlink-at: func(path: string) -> result // //go:nosplit -func (self Descriptor) ReadLinkAt(path string) (result cm.Result[string, string, ErrorCode]) { +func (self Descriptor) ReadLinkAt(path string) (result ResultStringErrorCode) { self0 := cm.Reinterpret[uint32](self) path0, path1 := cm.LowerString(path) wasmimport_DescriptorReadLinkAt((uint32)(self0), (*uint8)(path0), (uint32)(path1), &result) @@ -1007,7 +1007,7 @@ func (self Descriptor) ReadLinkAt(path string) (result cm.Result[string, string, // remove-directory-at: func(path: string) -> result<_, error-code> // //go:nosplit -func (self Descriptor) RemoveDirectoryAt(path string) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) RemoveDirectoryAt(path string) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) path0, path1 := cm.LowerString(path) wasmimport_DescriptorRemoveDirectoryAt((uint32)(self0), (*uint8)(path0), (uint32)(path1), &result) @@ -1024,7 +1024,7 @@ func (self Descriptor) RemoveDirectoryAt(path string) (result cm.Result[ErrorCod // string) -> result<_, error-code> // //go:nosplit -func (self Descriptor) RenameAt(oldPath string, newDescriptor Descriptor, newPath string) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) RenameAt(oldPath string, newDescriptor Descriptor, newPath string) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) oldPath0, oldPath1 := cm.LowerString(oldPath) newDescriptor0 := cm.Reinterpret[uint32](newDescriptor) @@ -1043,7 +1043,7 @@ func (self Descriptor) RenameAt(oldPath string, newDescriptor Descriptor, newPat // set-size: func(size: filesize) -> result<_, error-code> // //go:nosplit -func (self Descriptor) SetSize(size FileSize) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) SetSize(size FileSize) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) size0 := (uint64)(size) wasmimport_DescriptorSetSize((uint32)(self0), (uint64)(size0), &result) @@ -1062,7 +1062,7 @@ func (self Descriptor) SetSize(size FileSize) (result cm.Result[ErrorCode, struc // new-timestamp) -> result<_, error-code> // //go:nosplit -func (self Descriptor) SetTimes(dataAccessTimestamp NewTimestamp, dataModificationTimestamp NewTimestamp) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) SetTimes(dataAccessTimestamp NewTimestamp, dataModificationTimestamp NewTimestamp) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) dataAccessTimestamp0, dataAccessTimestamp1, dataAccessTimestamp2 := lower_NewTimestamp(dataAccessTimestamp) dataModificationTimestamp0, dataModificationTimestamp1, dataModificationTimestamp2 := lower_NewTimestamp(dataModificationTimestamp) @@ -1083,7 +1083,7 @@ func (self Descriptor) SetTimes(dataAccessTimestamp NewTimestamp, dataModificati // new-timestamp, data-modification-timestamp: new-timestamp) -> result<_, error-code> // //go:nosplit -func (self Descriptor) SetTimesAt(pathFlags PathFlags, path string, dataAccessTimestamp NewTimestamp, dataModificationTimestamp NewTimestamp) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) SetTimesAt(pathFlags PathFlags, path string, dataAccessTimestamp NewTimestamp, dataModificationTimestamp NewTimestamp) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) pathFlags0 := (uint32)(pathFlags) path0, path1 := cm.LowerString(path) @@ -1108,7 +1108,7 @@ func (self Descriptor) SetTimesAt(pathFlags PathFlags, path string, dataAccessTi // stat: func() -> result // //go:nosplit -func (self Descriptor) Stat() (result cm.Result[DescriptorStatShape, DescriptorStat, ErrorCode]) { +func (self Descriptor) Stat() (result ResultDescriptorStatErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorStat((uint32)(self0), &result) return @@ -1128,7 +1128,7 @@ func (self Descriptor) Stat() (result cm.Result[DescriptorStatShape, DescriptorS // error-code> // //go:nosplit -func (self Descriptor) StatAt(pathFlags PathFlags, path string) (result cm.Result[DescriptorStatShape, DescriptorStat, ErrorCode]) { +func (self Descriptor) StatAt(pathFlags PathFlags, path string) (result ResultDescriptorStatErrorCode) { self0 := cm.Reinterpret[uint32](self) pathFlags0 := (uint32)(pathFlags) path0, path1 := cm.LowerString(path) @@ -1148,7 +1148,7 @@ func (self Descriptor) StatAt(pathFlags PathFlags, path string) (result cm.Resul // symlink-at: func(old-path: string, new-path: string) -> result<_, error-code> // //go:nosplit -func (self Descriptor) SymlinkAt(oldPath string, newPath string) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) SymlinkAt(oldPath string, newPath string) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) oldPath0, oldPath1 := cm.LowerString(oldPath) newPath0, newPath1 := cm.LowerString(newPath) @@ -1168,7 +1168,7 @@ func (self Descriptor) SymlinkAt(oldPath string, newPath string) (result cm.Resu // sync: func() -> result<_, error-code> // //go:nosplit -func (self Descriptor) Sync() (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) Sync() (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorSync((uint32)(self0), &result) return @@ -1186,7 +1186,7 @@ func (self Descriptor) Sync() (result cm.Result[ErrorCode, struct{}, ErrorCode]) // sync-data: func() -> result<_, error-code> // //go:nosplit -func (self Descriptor) SyncData() (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) SyncData() (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DescriptorSyncData((uint32)(self0), &result) return @@ -1202,7 +1202,7 @@ func (self Descriptor) SyncData() (result cm.Result[ErrorCode, struct{}, ErrorCo // unlink-file-at: func(path: string) -> result<_, error-code> // //go:nosplit -func (self Descriptor) UnlinkFileAt(path string) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self Descriptor) UnlinkFileAt(path string) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) path0, path1 := cm.LowerString(path) wasmimport_DescriptorUnlinkFileAt((uint32)(self0), (*uint8)(path0), (uint32)(path1), &result) @@ -1224,7 +1224,7 @@ func (self Descriptor) UnlinkFileAt(path string) (result cm.Result[ErrorCode, st // write: func(buffer: list, offset: filesize) -> result // //go:nosplit -func (self Descriptor) Write(buffer cm.List[uint8], offset FileSize) (result cm.Result[uint64, FileSize, ErrorCode]) { +func (self Descriptor) Write(buffer cm.List[uint8], offset FileSize) (result ResultFileSizeErrorCode) { self0 := cm.Reinterpret[uint32](self) buffer0, buffer1 := cm.LowerList(buffer) offset0 := (uint64)(offset) @@ -1244,7 +1244,7 @@ func (self Descriptor) Write(buffer cm.List[uint8], offset FileSize) (result cm. // write-via-stream: func(offset: filesize) -> result // //go:nosplit -func (self Descriptor) WriteViaStream(offset FileSize) (result cm.Result[OutputStream, OutputStream, ErrorCode]) { +func (self Descriptor) WriteViaStream(offset FileSize) (result ResultOutputStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) offset0 := (uint64)(offset) wasmimport_DescriptorWriteViaStream((uint32)(self0), (uint64)(offset0), &result) @@ -1276,7 +1276,7 @@ func (self DirectoryEntryStream) ResourceDrop() { // read-directory-entry: func() -> result, error-code> // //go:nosplit -func (self DirectoryEntryStream) ReadDirectoryEntry() (result cm.Result[OptionDirectoryEntryShape, cm.Option[DirectoryEntry], ErrorCode]) { +func (self DirectoryEntryStream) ReadDirectoryEntry() (result ResultOptionDirectoryEntryErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_DirectoryEntryStreamReadDirectoryEntry((uint32)(self0), &result) return diff --git a/tests/generated/wasi/io/v0.2.0/streams/abi.go b/tests/generated/wasi/io/v0.2.0/streams/abi.go new file mode 100644 index 00000000..53193c73 --- /dev/null +++ b/tests/generated/wasi/io/v0.2.0/streams/abi.go @@ -0,0 +1,22 @@ +// Code generated by wit-bindgen-go. DO NOT EDIT. + +package streams + +import ( + "go.bytecodealliance.org/cm" +) + +// ResultListU8StreamError represents the imported result "#". +// +// result, stream-error> +type ResultListU8StreamError cm.Result[cm.List[uint8], cm.List[uint8], StreamError] + +// ResultU64StreamError represents the imported result "#". +// +// result +type ResultU64StreamError cm.Result[uint64, uint64, StreamError] + +// ResultStreamError represents the imported result "#". +// +// result<_, stream-error> +type ResultStreamError cm.Result[StreamError, struct{}, StreamError] diff --git a/tests/generated/wasi/io/v0.2.0/streams/streams.wasm.go b/tests/generated/wasi/io/v0.2.0/streams/streams.wasm.go index eec56645..5d5da4cd 100644 --- a/tests/generated/wasi/io/v0.2.0/streams/streams.wasm.go +++ b/tests/generated/wasi/io/v0.2.0/streams/streams.wasm.go @@ -2,10 +2,6 @@ package streams -import ( - "go.bytecodealliance.org/cm" -) - // This file contains wasmimport and wasmexport declarations for "wasi:io@0.2.0". //go:wasmimport wasi:io/streams@0.2.0 [resource-drop]input-stream @@ -14,19 +10,19 @@ func wasmimport_InputStreamResourceDrop(self0 uint32) //go:wasmimport wasi:io/streams@0.2.0 [method]input-stream.blocking-read //go:noescape -func wasmimport_InputStreamBlockingRead(self0 uint32, len0 uint64, result *cm.Result[cm.List[uint8], cm.List[uint8], StreamError]) +func wasmimport_InputStreamBlockingRead(self0 uint32, len0 uint64, result *ResultListU8StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]input-stream.blocking-skip //go:noescape -func wasmimport_InputStreamBlockingSkip(self0 uint32, len0 uint64, result *cm.Result[uint64, uint64, StreamError]) +func wasmimport_InputStreamBlockingSkip(self0 uint32, len0 uint64, result *ResultU64StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]input-stream.read //go:noescape -func wasmimport_InputStreamRead(self0 uint32, len0 uint64, result *cm.Result[cm.List[uint8], cm.List[uint8], StreamError]) +func wasmimport_InputStreamRead(self0 uint32, len0 uint64, result *ResultListU8StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]input-stream.skip //go:noescape -func wasmimport_InputStreamSkip(self0 uint32, len0 uint64, result *cm.Result[uint64, uint64, StreamError]) +func wasmimport_InputStreamSkip(self0 uint32, len0 uint64, result *ResultU64StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]input-stream.subscribe //go:noescape @@ -38,31 +34,31 @@ func wasmimport_OutputStreamResourceDrop(self0 uint32) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.blocking-flush //go:noescape -func wasmimport_OutputStreamBlockingFlush(self0 uint32, result *cm.Result[StreamError, struct{}, StreamError]) +func wasmimport_OutputStreamBlockingFlush(self0 uint32, result *ResultStreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.blocking-splice //go:noescape -func wasmimport_OutputStreamBlockingSplice(self0 uint32, src0 uint32, len0 uint64, result *cm.Result[uint64, uint64, StreamError]) +func wasmimport_OutputStreamBlockingSplice(self0 uint32, src0 uint32, len0 uint64, result *ResultU64StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.blocking-write-and-flush //go:noescape -func wasmimport_OutputStreamBlockingWriteAndFlush(self0 uint32, contents0 *uint8, contents1 uint32, result *cm.Result[StreamError, struct{}, StreamError]) +func wasmimport_OutputStreamBlockingWriteAndFlush(self0 uint32, contents0 *uint8, contents1 uint32, result *ResultStreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.blocking-write-zeroes-and-flush //go:noescape -func wasmimport_OutputStreamBlockingWriteZeroesAndFlush(self0 uint32, len0 uint64, result *cm.Result[StreamError, struct{}, StreamError]) +func wasmimport_OutputStreamBlockingWriteZeroesAndFlush(self0 uint32, len0 uint64, result *ResultStreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.check-write //go:noescape -func wasmimport_OutputStreamCheckWrite(self0 uint32, result *cm.Result[uint64, uint64, StreamError]) +func wasmimport_OutputStreamCheckWrite(self0 uint32, result *ResultU64StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.flush //go:noescape -func wasmimport_OutputStreamFlush(self0 uint32, result *cm.Result[StreamError, struct{}, StreamError]) +func wasmimport_OutputStreamFlush(self0 uint32, result *ResultStreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.splice //go:noescape -func wasmimport_OutputStreamSplice(self0 uint32, src0 uint32, len0 uint64, result *cm.Result[uint64, uint64, StreamError]) +func wasmimport_OutputStreamSplice(self0 uint32, src0 uint32, len0 uint64, result *ResultU64StreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.subscribe //go:noescape @@ -70,8 +66,8 @@ func wasmimport_OutputStreamSubscribe(self0 uint32) (result0 uint32) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.write //go:noescape -func wasmimport_OutputStreamWrite(self0 uint32, contents0 *uint8, contents1 uint32, result *cm.Result[StreamError, struct{}, StreamError]) +func wasmimport_OutputStreamWrite(self0 uint32, contents0 *uint8, contents1 uint32, result *ResultStreamError) //go:wasmimport wasi:io/streams@0.2.0 [method]output-stream.write-zeroes //go:noescape -func wasmimport_OutputStreamWriteZeroes(self0 uint32, len0 uint64, result *cm.Result[StreamError, struct{}, StreamError]) +func wasmimport_OutputStreamWriteZeroes(self0 uint32, len0 uint64, result *ResultStreamError) diff --git a/tests/generated/wasi/io/v0.2.0/streams/streams.wit.go b/tests/generated/wasi/io/v0.2.0/streams/streams.wit.go index e3a381b7..6f4400c1 100644 --- a/tests/generated/wasi/io/v0.2.0/streams/streams.wit.go +++ b/tests/generated/wasi/io/v0.2.0/streams/streams.wit.go @@ -107,7 +107,7 @@ func (self InputStream) ResourceDrop() { // blocking-read: func(len: u64) -> result, stream-error> // //go:nosplit -func (self InputStream) BlockingRead(len_ uint64) (result cm.Result[cm.List[uint8], cm.List[uint8], StreamError]) { +func (self InputStream) BlockingRead(len_ uint64) (result ResultListU8StreamError) { self0 := cm.Reinterpret[uint32](self) len0 := (uint64)(len_) wasmimport_InputStreamBlockingRead((uint32)(self0), (uint64)(len0), &result) @@ -122,7 +122,7 @@ func (self InputStream) BlockingRead(len_ uint64) (result cm.Result[cm.List[uint // blocking-skip: func(len: u64) -> result // //go:nosplit -func (self InputStream) BlockingSkip(len_ uint64) (result cm.Result[uint64, uint64, StreamError]) { +func (self InputStream) BlockingSkip(len_ uint64) (result ResultU64StreamError) { self0 := cm.Reinterpret[uint32](self) len0 := (uint64)(len_) wasmimport_InputStreamBlockingSkip((uint32)(self0), (uint64)(len0), &result) @@ -161,7 +161,7 @@ func (self InputStream) BlockingSkip(len_ uint64) (result cm.Result[uint64, uint // read: func(len: u64) -> result, stream-error> // //go:nosplit -func (self InputStream) Read(len_ uint64) (result cm.Result[cm.List[uint8], cm.List[uint8], StreamError]) { +func (self InputStream) Read(len_ uint64) (result ResultListU8StreamError) { self0 := cm.Reinterpret[uint32](self) len0 := (uint64)(len_) wasmimport_InputStreamRead((uint32)(self0), (uint64)(len0), &result) @@ -178,7 +178,7 @@ func (self InputStream) Read(len_ uint64) (result cm.Result[cm.List[uint8], cm.L // skip: func(len: u64) -> result // //go:nosplit -func (self InputStream) Skip(len_ uint64) (result cm.Result[uint64, uint64, StreamError]) { +func (self InputStream) Skip(len_ uint64) (result ResultU64StreamError) { self0 := cm.Reinterpret[uint32](self) len0 := (uint64)(len_) wasmimport_InputStreamSkip((uint32)(self0), (uint64)(len0), &result) @@ -237,7 +237,7 @@ func (self OutputStream) ResourceDrop() { // blocking-flush: func() -> result<_, stream-error> // //go:nosplit -func (self OutputStream) BlockingFlush() (result cm.Result[StreamError, struct{}, StreamError]) { +func (self OutputStream) BlockingFlush() (result ResultStreamError) { self0 := cm.Reinterpret[uint32](self) wasmimport_OutputStreamBlockingFlush((uint32)(self0), &result) return @@ -254,7 +254,7 @@ func (self OutputStream) BlockingFlush() (result cm.Result[StreamError, struct{} // blocking-splice: func(src: borrow, len: u64) -> result // //go:nosplit -func (self OutputStream) BlockingSplice(src InputStream, len_ uint64) (result cm.Result[uint64, uint64, StreamError]) { +func (self OutputStream) BlockingSplice(src InputStream, len_ uint64) (result ResultU64StreamError) { self0 := cm.Reinterpret[uint32](self) src0 := cm.Reinterpret[uint32](src) len0 := (uint64)(len_) @@ -290,7 +290,7 @@ func (self OutputStream) BlockingSplice(src InputStream, len_ uint64) (result cm // blocking-write-and-flush: func(contents: list) -> result<_, stream-error> // //go:nosplit -func (self OutputStream) BlockingWriteAndFlush(contents cm.List[uint8]) (result cm.Result[StreamError, struct{}, StreamError]) { +func (self OutputStream) BlockingWriteAndFlush(contents cm.List[uint8]) (result ResultStreamError) { self0 := cm.Reinterpret[uint32](self) contents0, contents1 := cm.LowerList(contents) wasmimport_OutputStreamBlockingWriteAndFlush((uint32)(self0), (*uint8)(contents0), (uint32)(contents1), &result) @@ -325,7 +325,7 @@ func (self OutputStream) BlockingWriteAndFlush(contents cm.List[uint8]) (result // blocking-write-zeroes-and-flush: func(len: u64) -> result<_, stream-error> // //go:nosplit -func (self OutputStream) BlockingWriteZeroesAndFlush(len_ uint64) (result cm.Result[StreamError, struct{}, StreamError]) { +func (self OutputStream) BlockingWriteZeroesAndFlush(len_ uint64) (result ResultStreamError) { self0 := cm.Reinterpret[uint32](self) len0 := (uint64)(len_) wasmimport_OutputStreamBlockingWriteZeroesAndFlush((uint32)(self0), (uint64)(len0), &result) @@ -347,7 +347,7 @@ func (self OutputStream) BlockingWriteZeroesAndFlush(len_ uint64) (result cm.Res // check-write: func() -> result // //go:nosplit -func (self OutputStream) CheckWrite() (result cm.Result[uint64, uint64, StreamError]) { +func (self OutputStream) CheckWrite() (result ResultU64StreamError) { self0 := cm.Reinterpret[uint32](self) wasmimport_OutputStreamCheckWrite((uint32)(self0), &result) return @@ -369,7 +369,7 @@ func (self OutputStream) CheckWrite() (result cm.Result[uint64, uint64, StreamEr // flush: func() -> result<_, stream-error> // //go:nosplit -func (self OutputStream) Flush() (result cm.Result[StreamError, struct{}, StreamError]) { +func (self OutputStream) Flush() (result ResultStreamError) { self0 := cm.Reinterpret[uint32](self) wasmimport_OutputStreamFlush((uint32)(self0), &result) return @@ -394,7 +394,7 @@ func (self OutputStream) Flush() (result cm.Result[StreamError, struct{}, Stream // splice: func(src: borrow, len: u64) -> result // //go:nosplit -func (self OutputStream) Splice(src InputStream, len_ uint64) (result cm.Result[uint64, uint64, StreamError]) { +func (self OutputStream) Splice(src InputStream, len_ uint64) (result ResultU64StreamError) { self0 := cm.Reinterpret[uint32](self) src0 := cm.Reinterpret[uint32](src) len0 := (uint64)(len_) @@ -444,7 +444,7 @@ func (self OutputStream) Subscribe() (result Pollable) { // write: func(contents: list) -> result<_, stream-error> // //go:nosplit -func (self OutputStream) Write(contents cm.List[uint8]) (result cm.Result[StreamError, struct{}, StreamError]) { +func (self OutputStream) Write(contents cm.List[uint8]) (result ResultStreamError) { self0 := cm.Reinterpret[uint32](self) contents0, contents1 := cm.LowerList(contents) wasmimport_OutputStreamWrite((uint32)(self0), (*uint8)(contents0), (uint32)(contents1), &result) @@ -463,7 +463,7 @@ func (self OutputStream) Write(contents cm.List[uint8]) (result cm.Result[Stream // write-zeroes: func(len: u64) -> result<_, stream-error> // //go:nosplit -func (self OutputStream) WriteZeroes(len_ uint64) (result cm.Result[StreamError, struct{}, StreamError]) { +func (self OutputStream) WriteZeroes(len_ uint64) (result ResultStreamError) { self0 := cm.Reinterpret[uint32](self) len0 := (uint64)(len_) wasmimport_OutputStreamWriteZeroes((uint32)(self0), (uint64)(len0), &result) diff --git a/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/abi.go b/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/abi.go index a63f0d01..28b04f3e 100644 --- a/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/abi.go +++ b/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/abi.go @@ -12,3 +12,13 @@ type OptionIPAddressShape struct { _ cm.HostLayout shape [unsafe.Sizeof(cm.Option[IPAddress]{})]byte } + +// ResultOptionIPAddressErrorCode represents the result "#". +// +// result, error-code> +type ResultOptionIPAddressErrorCode cm.Result[OptionIPAddressShape, cm.Option[IPAddress], ErrorCode] + +// ResultResolveAddressStreamErrorCode represents the imported result "#". +// +// result +type ResultResolveAddressStreamErrorCode cm.Result[ResolveAddressStream, ResolveAddressStream, ErrorCode] diff --git a/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wasm.go b/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wasm.go index da5fb000..ee5912c7 100644 --- a/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wasm.go +++ b/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wasm.go @@ -2,10 +2,6 @@ package ipnamelookup -import ( - "go.bytecodealliance.org/cm" -) - // This file contains wasmimport and wasmexport declarations for "wasi:sockets@0.2.0". //go:wasmimport wasi:sockets/ip-name-lookup@0.2.0 [resource-drop]resolve-address-stream @@ -14,7 +10,7 @@ func wasmimport_ResolveAddressStreamResourceDrop(self0 uint32) //go:wasmimport wasi:sockets/ip-name-lookup@0.2.0 [method]resolve-address-stream.resolve-next-address //go:noescape -func wasmimport_ResolveAddressStreamResolveNextAddress(self0 uint32, result *cm.Result[OptionIPAddressShape, cm.Option[IPAddress], ErrorCode]) +func wasmimport_ResolveAddressStreamResolveNextAddress(self0 uint32, result *ResultOptionIPAddressErrorCode) //go:wasmimport wasi:sockets/ip-name-lookup@0.2.0 [method]resolve-address-stream.subscribe //go:noescape @@ -22,4 +18,4 @@ func wasmimport_ResolveAddressStreamSubscribe(self0 uint32) (result0 uint32) //go:wasmimport wasi:sockets/ip-name-lookup@0.2.0 resolve-addresses //go:noescape -func wasmimport_ResolveAddresses(network0 uint32, name0 *uint8, name1 uint32, result *cm.Result[ResolveAddressStream, ResolveAddressStream, ErrorCode]) +func wasmimport_ResolveAddresses(network0 uint32, name0 *uint8, name1 uint32, result *ResultResolveAddressStreamErrorCode) diff --git a/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wit.go b/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wit.go index d878525d..7d313625 100644 --- a/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wit.go +++ b/tests/generated/wasi/sockets/v0.2.0/ip-name-lookup/ip-name-lookup.wit.go @@ -67,7 +67,7 @@ func (self ResolveAddressStream) ResourceDrop() { // resolve-next-address: func() -> result, error-code> // //go:nosplit -func (self ResolveAddressStream) ResolveNextAddress() (result cm.Result[OptionIPAddressShape, cm.Option[IPAddress], ErrorCode]) { +func (self ResolveAddressStream) ResolveNextAddress() (result ResultOptionIPAddressErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_ResolveAddressStreamResolveNextAddress((uint32)(self0), &result) return @@ -117,7 +117,7 @@ func (self ResolveAddressStream) Subscribe() (result Pollable) { // error-code> // //go:nosplit -func ResolveAddresses(network_ Network, name string) (result cm.Result[ResolveAddressStream, ResolveAddressStream, ErrorCode]) { +func ResolveAddresses(network_ Network, name string) (result ResultResolveAddressStreamErrorCode) { network0 := cm.Reinterpret[uint32](network_) name0, name1 := cm.LowerString(name) wasmimport_ResolveAddresses((uint32)(network0), (*uint8)(name0), (uint32)(name1), &result) diff --git a/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/abi.go b/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/abi.go new file mode 100644 index 00000000..2dc5ab7a --- /dev/null +++ b/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/abi.go @@ -0,0 +1,12 @@ +// Code generated by wit-bindgen-go. DO NOT EDIT. + +package tcpcreatesocket + +import ( + "go.bytecodealliance.org/cm" +) + +// ResultTCPSocketErrorCode represents the imported result "#". +// +// result +type ResultTCPSocketErrorCode cm.Result[TCPSocket, TCPSocket, ErrorCode] diff --git a/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wasm.go b/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wasm.go index b7b43155..f26f078e 100644 --- a/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wasm.go +++ b/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wasm.go @@ -2,12 +2,8 @@ package tcpcreatesocket -import ( - "go.bytecodealliance.org/cm" -) - // This file contains wasmimport and wasmexport declarations for "wasi:sockets@0.2.0". //go:wasmimport wasi:sockets/tcp-create-socket@0.2.0 create-tcp-socket //go:noescape -func wasmimport_CreateTCPSocket(addressFamily0 uint32, result *cm.Result[TCPSocket, TCPSocket, ErrorCode]) +func wasmimport_CreateTCPSocket(addressFamily0 uint32, result *ResultTCPSocketErrorCode) diff --git a/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wit.go b/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wit.go index f2aa6eb9..304898a4 100644 --- a/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wit.go +++ b/tests/generated/wasi/sockets/v0.2.0/tcp-create-socket/tcp-create-socket.wit.go @@ -4,7 +4,6 @@ package tcpcreatesocket import ( - "go.bytecodealliance.org/cm" "tests/generated/wasi/sockets/v0.2.0/network" "tests/generated/wasi/sockets/v0.2.0/tcp" ) @@ -61,7 +60,7 @@ type TCPSocket = tcp.TCPSocket // error-code> // //go:nosplit -func CreateTCPSocket(addressFamily IPAddressFamily) (result cm.Result[TCPSocket, TCPSocket, ErrorCode]) { +func CreateTCPSocket(addressFamily IPAddressFamily) (result ResultTCPSocketErrorCode) { addressFamily0 := (uint32)(addressFamily) wasmimport_CreateTCPSocket((uint32)(addressFamily0), &result) return diff --git a/tests/generated/wasi/sockets/v0.2.0/tcp/abi.go b/tests/generated/wasi/sockets/v0.2.0/tcp/abi.go index eb335d00..30481d64 100644 --- a/tests/generated/wasi/sockets/v0.2.0/tcp/abi.go +++ b/tests/generated/wasi/sockets/v0.2.0/tcp/abi.go @@ -14,18 +14,63 @@ type TupleTCPSocketInputStreamOutputStreamShape struct { shape [unsafe.Sizeof(cm.Tuple3[TCPSocket, InputStream, OutputStream]{})]byte } +// ResultTupleTCPSocketInputStreamOutputStreamErrorCode represents the imported result "#". +// +// result, error-code> +type ResultTupleTCPSocketInputStreamOutputStreamErrorCode cm.Result[TupleTCPSocketInputStreamOutputStreamShape, cm.Tuple3[TCPSocket, InputStream, OutputStream], ErrorCode] + +// ResultErrorCode represents the result "#". +// +// result<_, error-code> +type ResultErrorCode cm.Result[ErrorCode, struct{}, ErrorCode] + // TupleInputStreamOutputStreamShape is used for storage in variant or result types. type TupleInputStreamOutputStreamShape struct { _ cm.HostLayout shape [unsafe.Sizeof(cm.Tuple[InputStream, OutputStream]{})]byte } +// ResultTupleInputStreamOutputStreamErrorCode represents the imported result "#". +// +// result, error-code> +type ResultTupleInputStreamOutputStreamErrorCode cm.Result[TupleInputStreamOutputStreamShape, cm.Tuple[InputStream, OutputStream], ErrorCode] + +// ResultU8ErrorCode represents the result "#". +// +// result +type ResultU8ErrorCode cm.Result[uint8, uint8, ErrorCode] + +// ResultU32ErrorCode represents the result "#". +// +// result +type ResultU32ErrorCode cm.Result[uint32, uint32, ErrorCode] + +// ResultBoolErrorCode represents the result "#". +// +// result +type ResultBoolErrorCode cm.Result[ErrorCode, bool, ErrorCode] + +// ResultDurationErrorCode represents the result "#". +// +// result +type ResultDurationErrorCode cm.Result[uint64, Duration, ErrorCode] + // IPSocketAddressShape is used for storage in variant or result types. type IPSocketAddressShape struct { _ cm.HostLayout shape [unsafe.Sizeof(IPSocketAddress{})]byte } +// ResultIPSocketAddressErrorCode represents the result "#". +// +// result +type ResultIPSocketAddressErrorCode cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode] + +// ResultU64ErrorCode represents the result "#". +// +// result +type ResultU64ErrorCode cm.Result[uint64, uint64, ErrorCode] + func lower_IPv4Address(v network.IPv4Address) (f0 uint32, f1 uint32, f2 uint32, f3 uint32) { f0 = (uint32)(v[0]) f1 = (uint32)(v[1]) diff --git a/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wasm.go b/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wasm.go index d6e56c26..2d6f1077 100644 --- a/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wasm.go +++ b/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wasm.go @@ -2,10 +2,6 @@ package tcp -import ( - "go.bytecodealliance.org/cm" -) - // This file contains wasmimport and wasmexport declarations for "wasi:sockets@0.2.0". //go:wasmimport wasi:sockets/tcp@0.2.0 [resource-drop]tcp-socket @@ -14,7 +10,7 @@ func wasmimport_TCPSocketResourceDrop(self0 uint32) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.accept //go:noescape -func wasmimport_TCPSocketAccept(self0 uint32, result *cm.Result[TupleTCPSocketInputStreamOutputStreamShape, cm.Tuple3[TCPSocket, InputStream, OutputStream], ErrorCode]) +func wasmimport_TCPSocketAccept(self0 uint32, result *ResultTupleTCPSocketInputStreamOutputStreamErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.address-family //go:noescape @@ -22,19 +18,19 @@ func wasmimport_TCPSocketAddressFamily(self0 uint32) (result0 uint32) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.finish-bind //go:noescape -func wasmimport_TCPSocketFinishBind(self0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketFinishBind(self0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.finish-connect //go:noescape -func wasmimport_TCPSocketFinishConnect(self0 uint32, result *cm.Result[TupleInputStreamOutputStreamShape, cm.Tuple[InputStream, OutputStream], ErrorCode]) +func wasmimport_TCPSocketFinishConnect(self0 uint32, result *ResultTupleInputStreamOutputStreamErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.finish-listen //go:noescape -func wasmimport_TCPSocketFinishListen(self0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketFinishListen(self0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.hop-limit //go:noescape -func wasmimport_TCPSocketHopLimit(self0 uint32, result *cm.Result[uint8, uint8, ErrorCode]) +func wasmimport_TCPSocketHopLimit(self0 uint32, result *ResultU8ErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.is-listening //go:noescape @@ -42,83 +38,83 @@ func wasmimport_TCPSocketIsListening(self0 uint32) (result0 uint32) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.keep-alive-count //go:noescape -func wasmimport_TCPSocketKeepAliveCount(self0 uint32, result *cm.Result[uint32, uint32, ErrorCode]) +func wasmimport_TCPSocketKeepAliveCount(self0 uint32, result *ResultU32ErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.keep-alive-enabled //go:noescape -func wasmimport_TCPSocketKeepAliveEnabled(self0 uint32, result *cm.Result[ErrorCode, bool, ErrorCode]) +func wasmimport_TCPSocketKeepAliveEnabled(self0 uint32, result *ResultBoolErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.keep-alive-idle-time //go:noescape -func wasmimport_TCPSocketKeepAliveIdleTime(self0 uint32, result *cm.Result[uint64, Duration, ErrorCode]) +func wasmimport_TCPSocketKeepAliveIdleTime(self0 uint32, result *ResultDurationErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.keep-alive-interval //go:noescape -func wasmimport_TCPSocketKeepAliveInterval(self0 uint32, result *cm.Result[uint64, Duration, ErrorCode]) +func wasmimport_TCPSocketKeepAliveInterval(self0 uint32, result *ResultDurationErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.local-address //go:noescape -func wasmimport_TCPSocketLocalAddress(self0 uint32, result *cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) +func wasmimport_TCPSocketLocalAddress(self0 uint32, result *ResultIPSocketAddressErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.receive-buffer-size //go:noescape -func wasmimport_TCPSocketReceiveBufferSize(self0 uint32, result *cm.Result[uint64, uint64, ErrorCode]) +func wasmimport_TCPSocketReceiveBufferSize(self0 uint32, result *ResultU64ErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.remote-address //go:noescape -func wasmimport_TCPSocketRemoteAddress(self0 uint32, result *cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) +func wasmimport_TCPSocketRemoteAddress(self0 uint32, result *ResultIPSocketAddressErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.send-buffer-size //go:noescape -func wasmimport_TCPSocketSendBufferSize(self0 uint32, result *cm.Result[uint64, uint64, ErrorCode]) +func wasmimport_TCPSocketSendBufferSize(self0 uint32, result *ResultU64ErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-hop-limit //go:noescape -func wasmimport_TCPSocketSetHopLimit(self0 uint32, value0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetHopLimit(self0 uint32, value0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-keep-alive-count //go:noescape -func wasmimport_TCPSocketSetKeepAliveCount(self0 uint32, value0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetKeepAliveCount(self0 uint32, value0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-keep-alive-enabled //go:noescape -func wasmimport_TCPSocketSetKeepAliveEnabled(self0 uint32, value0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetKeepAliveEnabled(self0 uint32, value0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-keep-alive-idle-time //go:noescape -func wasmimport_TCPSocketSetKeepAliveIdleTime(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetKeepAliveIdleTime(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-keep-alive-interval //go:noescape -func wasmimport_TCPSocketSetKeepAliveInterval(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetKeepAliveInterval(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-listen-backlog-size //go:noescape -func wasmimport_TCPSocketSetListenBacklogSize(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetListenBacklogSize(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-receive-buffer-size //go:noescape -func wasmimport_TCPSocketSetReceiveBufferSize(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetReceiveBufferSize(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.set-send-buffer-size //go:noescape -func wasmimport_TCPSocketSetSendBufferSize(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketSetSendBufferSize(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.shutdown //go:noescape -func wasmimport_TCPSocketShutdown(self0 uint32, shutdownType0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketShutdown(self0 uint32, shutdownType0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.start-bind //go:noescape -func wasmimport_TCPSocketStartBind(self0 uint32, network0 uint32, localAddress0 uint32, localAddress1 uint32, localAddress2 uint32, localAddress3 uint32, localAddress4 uint32, localAddress5 uint32, localAddress6 uint32, localAddress7 uint32, localAddress8 uint32, localAddress9 uint32, localAddress10 uint32, localAddress11 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketStartBind(self0 uint32, network0 uint32, localAddress0 uint32, localAddress1 uint32, localAddress2 uint32, localAddress3 uint32, localAddress4 uint32, localAddress5 uint32, localAddress6 uint32, localAddress7 uint32, localAddress8 uint32, localAddress9 uint32, localAddress10 uint32, localAddress11 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.start-connect //go:noescape -func wasmimport_TCPSocketStartConnect(self0 uint32, network0 uint32, remoteAddress0 uint32, remoteAddress1 uint32, remoteAddress2 uint32, remoteAddress3 uint32, remoteAddress4 uint32, remoteAddress5 uint32, remoteAddress6 uint32, remoteAddress7 uint32, remoteAddress8 uint32, remoteAddress9 uint32, remoteAddress10 uint32, remoteAddress11 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketStartConnect(self0 uint32, network0 uint32, remoteAddress0 uint32, remoteAddress1 uint32, remoteAddress2 uint32, remoteAddress3 uint32, remoteAddress4 uint32, remoteAddress5 uint32, remoteAddress6 uint32, remoteAddress7 uint32, remoteAddress8 uint32, remoteAddress9 uint32, remoteAddress10 uint32, remoteAddress11 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.start-listen //go:noescape -func wasmimport_TCPSocketStartListen(self0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_TCPSocketStartListen(self0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/tcp@0.2.0 [method]tcp-socket.subscribe //go:noescape diff --git a/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wit.go b/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wit.go index 07cad4c4..710d055e 100644 --- a/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wit.go +++ b/tests/generated/wasi/sockets/v0.2.0/tcp/tcp.wit.go @@ -169,7 +169,7 @@ func (self TCPSocket) ResourceDrop() { // accept: func() -> result, error-code> // //go:nosplit -func (self TCPSocket) Accept() (result cm.Result[TupleTCPSocketInputStreamOutputStreamShape, cm.Tuple3[TCPSocket, InputStream, OutputStream], ErrorCode]) { +func (self TCPSocket) Accept() (result ResultTupleTCPSocketInputStreamOutputStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketAccept((uint32)(self0), &result) return @@ -196,7 +196,7 @@ func (self TCPSocket) AddressFamily() (result IPAddressFamily) { // finish-bind: func() -> result<_, error-code> // //go:nosplit -func (self TCPSocket) FinishBind() (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) FinishBind() (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketFinishBind((uint32)(self0), &result) return @@ -207,7 +207,7 @@ func (self TCPSocket) FinishBind() (result cm.Result[ErrorCode, struct{}, ErrorC // finish-connect: func() -> result, error-code> // //go:nosplit -func (self TCPSocket) FinishConnect() (result cm.Result[TupleInputStreamOutputStreamShape, cm.Tuple[InputStream, OutputStream], ErrorCode]) { +func (self TCPSocket) FinishConnect() (result ResultTupleInputStreamOutputStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketFinishConnect((uint32)(self0), &result) return @@ -218,7 +218,7 @@ func (self TCPSocket) FinishConnect() (result cm.Result[TupleInputStreamOutputSt // finish-listen: func() -> result<_, error-code> // //go:nosplit -func (self TCPSocket) FinishListen() (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) FinishListen() (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketFinishListen((uint32)(self0), &result) return @@ -236,7 +236,7 @@ func (self TCPSocket) FinishListen() (result cm.Result[ErrorCode, struct{}, Erro // hop-limit: func() -> result // //go:nosplit -func (self TCPSocket) HopLimit() (result cm.Result[uint8, uint8, ErrorCode]) { +func (self TCPSocket) HopLimit() (result ResultU8ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketHopLimit((uint32)(self0), &result) return @@ -276,7 +276,7 @@ func (self TCPSocket) IsListening() (result bool) { // keep-alive-count: func() -> result // //go:nosplit -func (self TCPSocket) KeepAliveCount() (result cm.Result[uint32, uint32, ErrorCode]) { +func (self TCPSocket) KeepAliveCount() (result ResultU32ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketKeepAliveCount((uint32)(self0), &result) return @@ -298,7 +298,7 @@ func (self TCPSocket) KeepAliveCount() (result cm.Result[uint32, uint32, ErrorCo // keep-alive-enabled: func() -> result // //go:nosplit -func (self TCPSocket) KeepAliveEnabled() (result cm.Result[ErrorCode, bool, ErrorCode]) { +func (self TCPSocket) KeepAliveEnabled() (result ResultBoolErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketKeepAliveEnabled((uint32)(self0), &result) return @@ -323,7 +323,7 @@ func (self TCPSocket) KeepAliveEnabled() (result cm.Result[ErrorCode, bool, Erro // keep-alive-idle-time: func() -> result // //go:nosplit -func (self TCPSocket) KeepAliveIdleTime() (result cm.Result[uint64, Duration, ErrorCode]) { +func (self TCPSocket) KeepAliveIdleTime() (result ResultDurationErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketKeepAliveIdleTime((uint32)(self0), &result) return @@ -347,7 +347,7 @@ func (self TCPSocket) KeepAliveIdleTime() (result cm.Result[uint64, Duration, Er // keep-alive-interval: func() -> result // //go:nosplit -func (self TCPSocket) KeepAliveInterval() (result cm.Result[uint64, Duration, ErrorCode]) { +func (self TCPSocket) KeepAliveInterval() (result ResultDurationErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketKeepAliveInterval((uint32)(self0), &result) return @@ -376,7 +376,7 @@ func (self TCPSocket) KeepAliveInterval() (result cm.Result[uint64, Duration, Er // local-address: func() -> result // //go:nosplit -func (self TCPSocket) LocalAddress() (result cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) { +func (self TCPSocket) LocalAddress() (result ResultIPSocketAddressErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketLocalAddress((uint32)(self0), &result) return @@ -400,7 +400,7 @@ func (self TCPSocket) LocalAddress() (result cm.Result[IPSocketAddressShape, IPS // receive-buffer-size: func() -> result // //go:nosplit -func (self TCPSocket) ReceiveBufferSize() (result cm.Result[uint64, uint64, ErrorCode]) { +func (self TCPSocket) ReceiveBufferSize() (result ResultU64ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketReceiveBufferSize((uint32)(self0), &result) return @@ -422,7 +422,7 @@ func (self TCPSocket) ReceiveBufferSize() (result cm.Result[uint64, uint64, Erro // remote-address: func() -> result // //go:nosplit -func (self TCPSocket) RemoteAddress() (result cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) { +func (self TCPSocket) RemoteAddress() (result ResultIPSocketAddressErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketRemoteAddress((uint32)(self0), &result) return @@ -433,7 +433,7 @@ func (self TCPSocket) RemoteAddress() (result cm.Result[IPSocketAddressShape, IP // send-buffer-size: func() -> result // //go:nosplit -func (self TCPSocket) SendBufferSize() (result cm.Result[uint64, uint64, ErrorCode]) { +func (self TCPSocket) SendBufferSize() (result ResultU64ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketSendBufferSize((uint32)(self0), &result) return @@ -444,7 +444,7 @@ func (self TCPSocket) SendBufferSize() (result cm.Result[uint64, uint64, ErrorCo // set-hop-limit: func(value: u8) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetHopLimit(value uint8) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetHopLimit(value uint8) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint32)(value) wasmimport_TCPSocketSetHopLimit((uint32)(self0), (uint32)(value0), &result) @@ -456,7 +456,7 @@ func (self TCPSocket) SetHopLimit(value uint8) (result cm.Result[ErrorCode, stru // set-keep-alive-count: func(value: u32) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetKeepAliveCount(value uint32) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetKeepAliveCount(value uint32) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint32)(value) wasmimport_TCPSocketSetKeepAliveCount((uint32)(self0), (uint32)(value0), &result) @@ -468,7 +468,7 @@ func (self TCPSocket) SetKeepAliveCount(value uint32) (result cm.Result[ErrorCod // set-keep-alive-enabled: func(value: bool) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetKeepAliveEnabled(value bool) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetKeepAliveEnabled(value bool) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint32)(cm.BoolToU32(value)) wasmimport_TCPSocketSetKeepAliveEnabled((uint32)(self0), (uint32)(value0), &result) @@ -480,7 +480,7 @@ func (self TCPSocket) SetKeepAliveEnabled(value bool) (result cm.Result[ErrorCod // set-keep-alive-idle-time: func(value: duration) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetKeepAliveIdleTime(value Duration) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetKeepAliveIdleTime(value Duration) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_TCPSocketSetKeepAliveIdleTime((uint32)(self0), (uint64)(value0), &result) @@ -492,7 +492,7 @@ func (self TCPSocket) SetKeepAliveIdleTime(value Duration) (result cm.Result[Err // set-keep-alive-interval: func(value: duration) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetKeepAliveInterval(value Duration) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetKeepAliveInterval(value Duration) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_TCPSocketSetKeepAliveInterval((uint32)(self0), (uint64)(value0), &result) @@ -517,7 +517,7 @@ func (self TCPSocket) SetKeepAliveInterval(value Duration) (result cm.Result[Err // set-listen-backlog-size: func(value: u64) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetListenBacklogSize(value uint64) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetListenBacklogSize(value uint64) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_TCPSocketSetListenBacklogSize((uint32)(self0), (uint64)(value0), &result) @@ -529,7 +529,7 @@ func (self TCPSocket) SetListenBacklogSize(value uint64) (result cm.Result[Error // set-receive-buffer-size: func(value: u64) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetReceiveBufferSize(value uint64) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetReceiveBufferSize(value uint64) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_TCPSocketSetReceiveBufferSize((uint32)(self0), (uint64)(value0), &result) @@ -541,7 +541,7 @@ func (self TCPSocket) SetReceiveBufferSize(value uint64) (result cm.Result[Error // set-send-buffer-size: func(value: u64) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) SetSendBufferSize(value uint64) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) SetSendBufferSize(value uint64) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_TCPSocketSetSendBufferSize((uint32)(self0), (uint64)(value0), &result) @@ -577,7 +577,7 @@ func (self TCPSocket) SetSendBufferSize(value uint64) (result cm.Result[ErrorCod // shutdown: func(shutdown-type: shutdown-type) -> result<_, error-code> // //go:nosplit -func (self TCPSocket) Shutdown(shutdownType ShutdownType) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) Shutdown(shutdownType ShutdownType) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) shutdownType0 := (uint32)(shutdownType) wasmimport_TCPSocketShutdown((uint32)(self0), (uint32)(shutdownType0), &result) @@ -638,7 +638,7 @@ func (self TCPSocket) Shutdown(shutdownType ShutdownType) (result cm.Result[Erro // result<_, error-code> // //go:nosplit -func (self TCPSocket) StartBind(network_ Network, localAddress IPSocketAddress) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) StartBind(network_ Network, localAddress IPSocketAddress) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) network0 := cm.Reinterpret[uint32](network_) localAddress0, localAddress1, localAddress2, localAddress3, localAddress4, localAddress5, localAddress6, localAddress7, localAddress8, localAddress9, localAddress10, localAddress11 := lower_IPSocketAddress(localAddress) @@ -706,7 +706,7 @@ func (self TCPSocket) StartBind(network_ Network, localAddress IPSocketAddress) // -> result<_, error-code> // //go:nosplit -func (self TCPSocket) StartConnect(network_ Network, remoteAddress IPSocketAddress) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) StartConnect(network_ Network, remoteAddress IPSocketAddress) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) network0 := cm.Reinterpret[uint32](network_) remoteAddress0, remoteAddress1, remoteAddress2, remoteAddress3, remoteAddress4, remoteAddress5, remoteAddress6, remoteAddress7, remoteAddress8, remoteAddress9, remoteAddress10, remoteAddress11 := lower_IPSocketAddress(remoteAddress) @@ -748,7 +748,7 @@ func (self TCPSocket) StartConnect(network_ Network, remoteAddress IPSocketAddre // start-listen: func() -> result<_, error-code> // //go:nosplit -func (self TCPSocket) StartListen() (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self TCPSocket) StartListen() (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_TCPSocketStartListen((uint32)(self0), &result) return diff --git a/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/abi.go b/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/abi.go new file mode 100644 index 00000000..b862f69f --- /dev/null +++ b/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/abi.go @@ -0,0 +1,12 @@ +// Code generated by wit-bindgen-go. DO NOT EDIT. + +package udpcreatesocket + +import ( + "go.bytecodealliance.org/cm" +) + +// ResultUDPSocketErrorCode represents the imported result "#". +// +// result +type ResultUDPSocketErrorCode cm.Result[UDPSocket, UDPSocket, ErrorCode] diff --git a/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wasm.go b/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wasm.go index 94b1ab67..49d2a6e0 100644 --- a/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wasm.go +++ b/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wasm.go @@ -2,12 +2,8 @@ package udpcreatesocket -import ( - "go.bytecodealliance.org/cm" -) - // This file contains wasmimport and wasmexport declarations for "wasi:sockets@0.2.0". //go:wasmimport wasi:sockets/udp-create-socket@0.2.0 create-udp-socket //go:noescape -func wasmimport_CreateUDPSocket(addressFamily0 uint32, result *cm.Result[UDPSocket, UDPSocket, ErrorCode]) +func wasmimport_CreateUDPSocket(addressFamily0 uint32, result *ResultUDPSocketErrorCode) diff --git a/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wit.go b/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wit.go index f0f73883..89931161 100644 --- a/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wit.go +++ b/tests/generated/wasi/sockets/v0.2.0/udp-create-socket/udp-create-socket.wit.go @@ -4,7 +4,6 @@ package udpcreatesocket import ( - "go.bytecodealliance.org/cm" "tests/generated/wasi/sockets/v0.2.0/network" "tests/generated/wasi/sockets/v0.2.0/udp" ) @@ -61,7 +60,7 @@ type UDPSocket = udp.UDPSocket // error-code> // //go:nosplit -func CreateUDPSocket(addressFamily IPAddressFamily) (result cm.Result[UDPSocket, UDPSocket, ErrorCode]) { +func CreateUDPSocket(addressFamily IPAddressFamily) (result ResultUDPSocketErrorCode) { addressFamily0 := (uint32)(addressFamily) wasmimport_CreateUDPSocket((uint32)(addressFamily0), &result) return diff --git a/tests/generated/wasi/sockets/v0.2.0/udp/abi.go b/tests/generated/wasi/sockets/v0.2.0/udp/abi.go index 3dfaa27f..25877140 100644 --- a/tests/generated/wasi/sockets/v0.2.0/udp/abi.go +++ b/tests/generated/wasi/sockets/v0.2.0/udp/abi.go @@ -8,12 +8,27 @@ import ( "unsafe" ) +// ResultErrorCode represents the result "#". +// +// result<_, error-code> +type ResultErrorCode cm.Result[ErrorCode, struct{}, ErrorCode] + // IPSocketAddressShape is used for storage in variant or result types. type IPSocketAddressShape struct { _ cm.HostLayout shape [unsafe.Sizeof(IPSocketAddress{})]byte } +// ResultIPSocketAddressErrorCode represents the result "#". +// +// result +type ResultIPSocketAddressErrorCode cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode] + +// ResultU64ErrorCode represents the result "#". +// +// result +type ResultU64ErrorCode cm.Result[uint64, uint64, ErrorCode] + func lower_IPv4Address(v network.IPv4Address) (f0 uint32, f1 uint32, f2 uint32, f3 uint32) { f0 = (uint32)(v[0]) f1 = (uint32)(v[1]) @@ -81,6 +96,11 @@ type TupleIncomingDatagramStreamOutgoingDatagramStreamShape struct { shape [unsafe.Sizeof(cm.Tuple[IncomingDatagramStream, OutgoingDatagramStream]{})]byte } +// ResultTupleIncomingDatagramStreamOutgoingDatagramStreamErrorCode represents the imported result "#". +// +// result, error-code> +type ResultTupleIncomingDatagramStreamOutgoingDatagramStreamErrorCode cm.Result[TupleIncomingDatagramStreamOutgoingDatagramStreamShape, cm.Tuple[IncomingDatagramStream, OutgoingDatagramStream], ErrorCode] + func lower_OptionIPSocketAddress(v cm.Option[IPSocketAddress]) (f0 uint32, f1 uint32, f2 uint32, f3 uint32, f4 uint32, f5 uint32, f6 uint32, f7 uint32, f8 uint32, f9 uint32, f10 uint32, f11 uint32, f12 uint32) { some := v.Some() if some != nil { @@ -101,3 +121,13 @@ func lower_OptionIPSocketAddress(v cm.Option[IPSocketAddress]) (f0 uint32, f1 ui } return } + +// ResultU8ErrorCode represents the result "#". +// +// result +type ResultU8ErrorCode cm.Result[uint8, uint8, ErrorCode] + +// ResultListIncomingDatagramErrorCode represents the result "#". +// +// result, error-code> +type ResultListIncomingDatagramErrorCode cm.Result[cm.List[IncomingDatagram], cm.List[IncomingDatagram], ErrorCode] diff --git a/tests/generated/wasi/sockets/v0.2.0/udp/udp.wasm.go b/tests/generated/wasi/sockets/v0.2.0/udp/udp.wasm.go index 83ce8ca7..e5706daa 100644 --- a/tests/generated/wasi/sockets/v0.2.0/udp/udp.wasm.go +++ b/tests/generated/wasi/sockets/v0.2.0/udp/udp.wasm.go @@ -2,10 +2,6 @@ package udp -import ( - "go.bytecodealliance.org/cm" -) - // This file contains wasmimport and wasmexport declarations for "wasi:sockets@0.2.0". //go:wasmimport wasi:sockets/udp@0.2.0 [resource-drop]udp-socket @@ -18,43 +14,43 @@ func wasmimport_UDPSocketAddressFamily(self0 uint32) (result0 uint32) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.finish-bind //go:noescape -func wasmimport_UDPSocketFinishBind(self0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_UDPSocketFinishBind(self0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.local-address //go:noescape -func wasmimport_UDPSocketLocalAddress(self0 uint32, result *cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) +func wasmimport_UDPSocketLocalAddress(self0 uint32, result *ResultIPSocketAddressErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.receive-buffer-size //go:noescape -func wasmimport_UDPSocketReceiveBufferSize(self0 uint32, result *cm.Result[uint64, uint64, ErrorCode]) +func wasmimport_UDPSocketReceiveBufferSize(self0 uint32, result *ResultU64ErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.remote-address //go:noescape -func wasmimport_UDPSocketRemoteAddress(self0 uint32, result *cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) +func wasmimport_UDPSocketRemoteAddress(self0 uint32, result *ResultIPSocketAddressErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.send-buffer-size //go:noescape -func wasmimport_UDPSocketSendBufferSize(self0 uint32, result *cm.Result[uint64, uint64, ErrorCode]) +func wasmimport_UDPSocketSendBufferSize(self0 uint32, result *ResultU64ErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.set-receive-buffer-size //go:noescape -func wasmimport_UDPSocketSetReceiveBufferSize(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_UDPSocketSetReceiveBufferSize(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.set-send-buffer-size //go:noescape -func wasmimport_UDPSocketSetSendBufferSize(self0 uint32, value0 uint64, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_UDPSocketSetSendBufferSize(self0 uint32, value0 uint64, result *ResultErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.set-unicast-hop-limit //go:noescape -func wasmimport_UDPSocketSetUnicastHopLimit(self0 uint32, value0 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_UDPSocketSetUnicastHopLimit(self0 uint32, value0 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.start-bind //go:noescape -func wasmimport_UDPSocketStartBind(self0 uint32, network0 uint32, localAddress0 uint32, localAddress1 uint32, localAddress2 uint32, localAddress3 uint32, localAddress4 uint32, localAddress5 uint32, localAddress6 uint32, localAddress7 uint32, localAddress8 uint32, localAddress9 uint32, localAddress10 uint32, localAddress11 uint32, result *cm.Result[ErrorCode, struct{}, ErrorCode]) +func wasmimport_UDPSocketStartBind(self0 uint32, network0 uint32, localAddress0 uint32, localAddress1 uint32, localAddress2 uint32, localAddress3 uint32, localAddress4 uint32, localAddress5 uint32, localAddress6 uint32, localAddress7 uint32, localAddress8 uint32, localAddress9 uint32, localAddress10 uint32, localAddress11 uint32, result *ResultErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.stream //go:noescape -func wasmimport_UDPSocketStream(self0 uint32, remoteAddress0 uint32, remoteAddress1 uint32, remoteAddress2 uint32, remoteAddress3 uint32, remoteAddress4 uint32, remoteAddress5 uint32, remoteAddress6 uint32, remoteAddress7 uint32, remoteAddress8 uint32, remoteAddress9 uint32, remoteAddress10 uint32, remoteAddress11 uint32, remoteAddress12 uint32, result *cm.Result[TupleIncomingDatagramStreamOutgoingDatagramStreamShape, cm.Tuple[IncomingDatagramStream, OutgoingDatagramStream], ErrorCode]) +func wasmimport_UDPSocketStream(self0 uint32, remoteAddress0 uint32, remoteAddress1 uint32, remoteAddress2 uint32, remoteAddress3 uint32, remoteAddress4 uint32, remoteAddress5 uint32, remoteAddress6 uint32, remoteAddress7 uint32, remoteAddress8 uint32, remoteAddress9 uint32, remoteAddress10 uint32, remoteAddress11 uint32, remoteAddress12 uint32, result *ResultTupleIncomingDatagramStreamOutgoingDatagramStreamErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.subscribe //go:noescape @@ -62,7 +58,7 @@ func wasmimport_UDPSocketSubscribe(self0 uint32) (result0 uint32) //go:wasmimport wasi:sockets/udp@0.2.0 [method]udp-socket.unicast-hop-limit //go:noescape -func wasmimport_UDPSocketUnicastHopLimit(self0 uint32, result *cm.Result[uint8, uint8, ErrorCode]) +func wasmimport_UDPSocketUnicastHopLimit(self0 uint32, result *ResultU8ErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [resource-drop]incoming-datagram-stream //go:noescape @@ -70,7 +66,7 @@ func wasmimport_IncomingDatagramStreamResourceDrop(self0 uint32) //go:wasmimport wasi:sockets/udp@0.2.0 [method]incoming-datagram-stream.receive //go:noescape -func wasmimport_IncomingDatagramStreamReceive(self0 uint32, maxResults0 uint64, result *cm.Result[cm.List[IncomingDatagram], cm.List[IncomingDatagram], ErrorCode]) +func wasmimport_IncomingDatagramStreamReceive(self0 uint32, maxResults0 uint64, result *ResultListIncomingDatagramErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]incoming-datagram-stream.subscribe //go:noescape @@ -82,11 +78,11 @@ func wasmimport_OutgoingDatagramStreamResourceDrop(self0 uint32) //go:wasmimport wasi:sockets/udp@0.2.0 [method]outgoing-datagram-stream.check-send //go:noescape -func wasmimport_OutgoingDatagramStreamCheckSend(self0 uint32, result *cm.Result[uint64, uint64, ErrorCode]) +func wasmimport_OutgoingDatagramStreamCheckSend(self0 uint32, result *ResultU64ErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]outgoing-datagram-stream.send //go:noescape -func wasmimport_OutgoingDatagramStreamSend(self0 uint32, datagrams0 *OutgoingDatagram, datagrams1 uint32, result *cm.Result[uint64, uint64, ErrorCode]) +func wasmimport_OutgoingDatagramStreamSend(self0 uint32, datagrams0 *OutgoingDatagram, datagrams1 uint32, result *ResultU64ErrorCode) //go:wasmimport wasi:sockets/udp@0.2.0 [method]outgoing-datagram-stream.subscribe //go:noescape diff --git a/tests/generated/wasi/sockets/v0.2.0/udp/udp.wit.go b/tests/generated/wasi/sockets/v0.2.0/udp/udp.wit.go index 67c4110f..dae01f36 100644 --- a/tests/generated/wasi/sockets/v0.2.0/udp/udp.wit.go +++ b/tests/generated/wasi/sockets/v0.2.0/udp/udp.wit.go @@ -122,7 +122,7 @@ func (self UDPSocket) AddressFamily() (result IPAddressFamily) { // finish-bind: func() -> result<_, error-code> // //go:nosplit -func (self UDPSocket) FinishBind() (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self UDPSocket) FinishBind() (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_UDPSocketFinishBind((uint32)(self0), &result) return @@ -151,7 +151,7 @@ func (self UDPSocket) FinishBind() (result cm.Result[ErrorCode, struct{}, ErrorC // local-address: func() -> result // //go:nosplit -func (self UDPSocket) LocalAddress() (result cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) { +func (self UDPSocket) LocalAddress() (result ResultIPSocketAddressErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_UDPSocketLocalAddress((uint32)(self0), &result) return @@ -175,7 +175,7 @@ func (self UDPSocket) LocalAddress() (result cm.Result[IPSocketAddressShape, IPS // receive-buffer-size: func() -> result // //go:nosplit -func (self UDPSocket) ReceiveBufferSize() (result cm.Result[uint64, uint64, ErrorCode]) { +func (self UDPSocket) ReceiveBufferSize() (result ResultU64ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_UDPSocketReceiveBufferSize((uint32)(self0), &result) return @@ -197,7 +197,7 @@ func (self UDPSocket) ReceiveBufferSize() (result cm.Result[uint64, uint64, Erro // remote-address: func() -> result // //go:nosplit -func (self UDPSocket) RemoteAddress() (result cm.Result[IPSocketAddressShape, IPSocketAddress, ErrorCode]) { +func (self UDPSocket) RemoteAddress() (result ResultIPSocketAddressErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_UDPSocketRemoteAddress((uint32)(self0), &result) return @@ -208,7 +208,7 @@ func (self UDPSocket) RemoteAddress() (result cm.Result[IPSocketAddressShape, IP // send-buffer-size: func() -> result // //go:nosplit -func (self UDPSocket) SendBufferSize() (result cm.Result[uint64, uint64, ErrorCode]) { +func (self UDPSocket) SendBufferSize() (result ResultU64ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_UDPSocketSendBufferSize((uint32)(self0), &result) return @@ -219,7 +219,7 @@ func (self UDPSocket) SendBufferSize() (result cm.Result[uint64, uint64, ErrorCo // set-receive-buffer-size: func(value: u64) -> result<_, error-code> // //go:nosplit -func (self UDPSocket) SetReceiveBufferSize(value uint64) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self UDPSocket) SetReceiveBufferSize(value uint64) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_UDPSocketSetReceiveBufferSize((uint32)(self0), (uint64)(value0), &result) @@ -231,7 +231,7 @@ func (self UDPSocket) SetReceiveBufferSize(value uint64) (result cm.Result[Error // set-send-buffer-size: func(value: u64) -> result<_, error-code> // //go:nosplit -func (self UDPSocket) SetSendBufferSize(value uint64) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self UDPSocket) SetSendBufferSize(value uint64) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint64)(value) wasmimport_UDPSocketSetSendBufferSize((uint32)(self0), (uint64)(value0), &result) @@ -243,7 +243,7 @@ func (self UDPSocket) SetSendBufferSize(value uint64) (result cm.Result[ErrorCod // set-unicast-hop-limit: func(value: u8) -> result<_, error-code> // //go:nosplit -func (self UDPSocket) SetUnicastHopLimit(value uint8) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self UDPSocket) SetUnicastHopLimit(value uint8) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) value0 := (uint32)(value) wasmimport_UDPSocketSetUnicastHopLimit((uint32)(self0), (uint32)(value0), &result) @@ -288,7 +288,7 @@ func (self UDPSocket) SetUnicastHopLimit(value uint8) (result cm.Result[ErrorCod // result<_, error-code> // //go:nosplit -func (self UDPSocket) StartBind(network_ Network, localAddress IPSocketAddress) (result cm.Result[ErrorCode, struct{}, ErrorCode]) { +func (self UDPSocket) StartBind(network_ Network, localAddress IPSocketAddress) (result ResultErrorCode) { self0 := cm.Reinterpret[uint32](self) network0 := cm.Reinterpret[uint32](network_) localAddress0, localAddress1, localAddress2, localAddress3, localAddress4, localAddress5, localAddress6, localAddress7, localAddress8, localAddress9, localAddress10, localAddress11 := lower_IPSocketAddress(localAddress) @@ -353,7 +353,7 @@ func (self UDPSocket) StartBind(network_ Network, localAddress IPSocketAddress) // outgoing-datagram-stream>, error-code> // //go:nosplit -func (self UDPSocket) Stream(remoteAddress cm.Option[IPSocketAddress]) (result cm.Result[TupleIncomingDatagramStreamOutgoingDatagramStreamShape, cm.Tuple[IncomingDatagramStream, OutgoingDatagramStream], ErrorCode]) { +func (self UDPSocket) Stream(remoteAddress cm.Option[IPSocketAddress]) (result ResultTupleIncomingDatagramStreamOutgoingDatagramStreamErrorCode) { self0 := cm.Reinterpret[uint32](self) remoteAddress0, remoteAddress1, remoteAddress2, remoteAddress3, remoteAddress4, remoteAddress5, remoteAddress6, remoteAddress7, remoteAddress8, remoteAddress9, remoteAddress10, remoteAddress11, remoteAddress12 := lower_OptionIPSocketAddress(remoteAddress) wasmimport_UDPSocketStream((uint32)(self0), (uint32)(remoteAddress0), (uint32)(remoteAddress1), (uint32)(remoteAddress2), (uint32)(remoteAddress3), (uint32)(remoteAddress4), (uint32)(remoteAddress5), (uint32)(remoteAddress6), (uint32)(remoteAddress7), (uint32)(remoteAddress8), (uint32)(remoteAddress9), (uint32)(remoteAddress10), (uint32)(remoteAddress11), (uint32)(remoteAddress12), &result) @@ -389,7 +389,7 @@ func (self UDPSocket) Subscribe() (result Pollable) { // unicast-hop-limit: func() -> result // //go:nosplit -func (self UDPSocket) UnicastHopLimit() (result cm.Result[uint8, uint8, ErrorCode]) { +func (self UDPSocket) UnicastHopLimit() (result ResultU8ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_UDPSocketUnicastHopLimit((uint32)(self0), &result) return @@ -442,7 +442,7 @@ func (self IncomingDatagramStream) ResourceDrop() { // receive: func(max-results: u64) -> result, error-code> // //go:nosplit -func (self IncomingDatagramStream) Receive(maxResults uint64) (result cm.Result[cm.List[IncomingDatagram], cm.List[IncomingDatagram], ErrorCode]) { +func (self IncomingDatagramStream) Receive(maxResults uint64) (result ResultListIncomingDatagramErrorCode) { self0 := cm.Reinterpret[uint32](self) maxResults0 := (uint64)(maxResults) wasmimport_IncomingDatagramStreamReceive((uint32)(self0), (uint64)(maxResults0), &result) @@ -499,7 +499,7 @@ func (self OutgoingDatagramStream) ResourceDrop() { // check-send: func() -> result // //go:nosplit -func (self OutgoingDatagramStream) CheckSend() (result cm.Result[uint64, uint64, ErrorCode]) { +func (self OutgoingDatagramStream) CheckSend() (result ResultU64ErrorCode) { self0 := cm.Reinterpret[uint32](self) wasmimport_OutgoingDatagramStreamCheckSend((uint32)(self0), &result) return @@ -559,7 +559,7 @@ func (self OutgoingDatagramStream) CheckSend() (result cm.Result[uint64, uint64, // send: func(datagrams: list) -> result // //go:nosplit -func (self OutgoingDatagramStream) Send(datagrams cm.List[OutgoingDatagram]) (result cm.Result[uint64, uint64, ErrorCode]) { +func (self OutgoingDatagramStream) Send(datagrams cm.List[OutgoingDatagram]) (result ResultU64ErrorCode) { self0 := cm.Reinterpret[uint32](self) datagrams0, datagrams1 := cm.LowerList(datagrams) wasmimport_OutgoingDatagramStreamSend((uint32)(self0), (*OutgoingDatagram)(datagrams0), (uint32)(datagrams1), &result) diff --git a/wit/bindgen/generator.go b/wit/bindgen/generator.go index d9794922..eb4e0e81 100644 --- a/wit/bindgen/generator.go +++ b/wit/bindgen/generator.go @@ -377,6 +377,29 @@ func (g *generator) defineInterface(w *wit.World, dir wit.Direction, i *wit.Inte return nil } +func (g *generator) defineAnonymousType(file *gen.File, dir wit.Direction, t wit.Type) error { + if t.TypeName() != "" { + return nil + } + + td, ok := t.(*wit.TypeDef) + if !ok { + return nil + } + + abiFile := g.abiFile(file.Package) + + switch td.Kind.(type) { + case *wit.Result: + g.declareTypeDef(abiFile, dir, td, g.typeDefGoName(dir, td)) + return g.defineTypeDef(dir, td, "") + default: + // fmt.Printf("td.Kind.(type) = %T\n", td.Kind) + } + + return nil +} + func (g *generator) defineTypeDef(dir wit.Direction, t *wit.TypeDef, name string) error { if !g.define(dir, t) { return nil @@ -1651,6 +1674,14 @@ func (g *generator) declareFunction(owner wit.TypeOwner, dir wit.Direction, f *w return fdecl, nil } + // Define anonymous types + for _, p := range f.Params { + g.defineAnonymousType(file, tdir, p.Type) + } + for _, p := range f.Results { + g.defineAnonymousType(file, tdir, p.Type) + } + if dir == wit.Imported { g.ensureParamImports(file, tdir, f.Params) g.ensureParamImports(file, tdir, f.Results)