package ui:tests;
interface ui {
nullary: func();
%f32: func(val: f32);
%list-f32: func(vals: list<f32>);
%f64: func(val: f64);
%list-f64: func(vals: list<f64>);
%char: func(val: char);
list-chars: func(vals: list<char>);
%string: func(val: string);
list-strings: func(vals: list<string>);
option-u8: func(opt: option<u8>);
result-ok-u8: func(res: result<u8>);
result-err-u8: func(res: result<_, u8>);
result-both-u8: func(res: result<u8, u8>);
result-no-payloads: func(res: result);
record basic {
required: u8,
optional: option<u8>,
}
basic-record: func(rec: basic);
record optional-fields {
a: option<u8>,
b: option<u8>,
}
optional-fields-record: func(rec: optional-fields);
record keyword-fields {
true: bool,
false: bool,
some: option<u8>,
none: option<u8>,
ok: result,
err: result,
inf: f32,
nan: f32,
}
keyword-fields-record: func(rec: keyword-fields);
enum hand {
left,
right,
}
hand-enum: func(enm: hand);
enum keyword-cases {
true,
false,
some,
none,
ok,
err,
inf,
nan,
}
keyword-cases-enum: func(enm: keyword-cases);
flags permissions {
read,
write,
}
permission-flags: func(flgs: permissions);
}