File: variant.witx

package info (click to toggle)
rust-wasmtime 26.0.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 48,492 kB
  • sloc: ansic: 4,003; sh: 561; javascript: 542; cpp: 254; asm: 175; ml: 96; makefile: 55
file content (27 lines) | stat: -rw-r--r-- 613 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(use "errno.witx")
(use "excuse.witx")

(typename $reason
  (variant (@witx tag $excuse)
    (case $dog_ate f32)
    (case $traffic s32)
    (case $sleeping)))

(typename $reason_mut
  (variant (@witx tag $excuse)
    (case $dog_ate (@witx pointer f32))
    (case $traffic (@witx pointer s32))
    (case $sleeping)))

(module $variant_example
  (@interface func (export "get_tag")
    (param $r $reason)
    (result $error (expected $excuse (error $errno)))
  )

  (@interface func (export "reason_mult")
    (param $r $reason_mut)
    (param $multiply_by u32)
    (result $error (expected (error $errno)))
  )
)