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)))
)
)
|