Skip to content

Commit 0591a1c

Browse files
committed
Sync CanonicalABI.md
1 parent 49ce648 commit 0591a1c

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

design/mvp/CanonicalABI.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1509,7 +1509,10 @@ def mangle_flags(labels):
15091509
return 'flags { ' + ', '.join(labels) + ' }'
15101510

15111511
def mangle_varianttype(cases):
1512-
mangled_cases = (c.label + '(' + mangle_maybevaltype(c.t) + ')' for c in cases)
1512+
mangled_cases = ('{label}{payload}'.format(
1513+
label = c.label,
1514+
payload = '' if c.t is None else '(' + mangle_valtype(c.t) + ')')
1515+
for c in cases)
15131516
return 'variant { ' + ', '.join(mangled_cases) + ' }'
15141517

15151518
def mangle_enumtype(labels):
@@ -1522,12 +1525,11 @@ def mangle_optiontype(t):
15221525
return 'option<' + mangle_valtype(t) + '>'
15231526

15241527
def mangle_resulttype(ok, error):
1525-
return 'result<' + mangle_maybevaltype(ok) + ', ' + mangle_maybevaltype(error) + '>'
1526-
1527-
def mangle_maybevaltype(t):
1528-
if t is None:
1529-
return '_'
1530-
return mangle_valtype(t)
1528+
match (ok, error):
1529+
case (None, None) : return 'result'
1530+
case (None, _) : return 'result<_, ' + mangle_valtype(error) + '>'
1531+
case (_, None) : return 'result<' + mangle_valtype(ok) + '>'
1532+
case (_, _) : return 'result<' + mangle_valtype(ok) + ', ' + mangle_valtype(error) + '>'
15311533
```
15321534
As an example, given a component type:
15331535
```wasm

0 commit comments

Comments
 (0)