diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-08-14 18:08:54 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2024-08-14 18:08:54 +0300 |
| commit | 085817c69d145400eac84e09704f48ede2bece68 (patch) | |
| tree | 593f8a8bf8254cb78586d0355d7a0e1dbbe71c59 /examples/res.ek | |
| parent | 6385450ddba34bc28bd7492d126fd38cb3f86f36 (diff) | |
| download | ek-085817c69d145400eac84e09704f48ede2bece68.tar.gz ek-085817c69d145400eac84e09704f48ede2bece68.zip | |
compiling example of a res struct
Diffstat (limited to 'examples/res.ek')
| -rw-r--r-- | examples/res.ek | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/res.ek b/examples/res.ek new file mode 100644 index 0000000..f7c96df --- /dev/null +++ b/examples/res.ek @@ -0,0 +1,25 @@ +/* simple example with C-like strings. A real implementation would likely want + * to use a string wrapper or something. */ + +typedef i27 {} +typedef i9 {} + +typedef res[any T] { + *i9 e; + T v; + + ok(T v => res![T]) { + return res![T]{.e = 0 as *i9, .v = v}; + } + + error(*i9 e, T v => res![T]) { + return res![T]{.e = e, .v = v}; + } +} + +define any[] {} + +main() +{ + const a = ok::res; +} |
