Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/crates/wiggle/tests/records.witx
1692 views

(use "errno.witx")

(typename $pair_ints
  (record
    (field $first s32)
    (field $second s32)))

(typename $pair_different_ints
  (record
    (field $first s64)
    (field $second s16)
    (field $third s16)
    (field $fourth s32)))

(typename $pair_int_ptrs
  (record
    (field $first (@witx const_pointer s32))
    (field $second (@witx const_pointer s32))))

(typename $pair_int_and_ptr
  (record
    (field $first (@witx const_pointer s32))
    (field $second s32)))

(typename $some_bytes (list u8))

(typename $record_of_list
  (record
    (field $arr $some_bytes)))

(typename $s64 s64)
(typename $u16 u16)

(module $records
  (@interface func (export "sum_of_pair")
    (param $an_pair $pair_ints)
    (result $error (expected $s64 (error $errno))))
  (@interface func (export "sum_of_pair_of_ptrs")
    (param $an_pair $pair_int_ptrs)
    (result $error (expected $s64 (error $errno))))
  (@interface func (export "sum_of_int_and_ptr")
    (param $an_pair $pair_int_and_ptr)
    (result $error (expected $s64 (error $errno))))
  (@interface func (export "return_pair_ints")
    (result $error (expected $pair_ints (error $errno))))
  (@interface func (export "return_pair_of_ptrs")
    (param $first (@witx const_pointer s32))
    (param $second (@witx const_pointer s32))
    (result $error (expected $pair_int_ptrs (error $errno))))
  (@interface func (export "sum_array")
    (param $a_list $record_of_list)
    (result $error (expected $u16 (error $errno))))
)