const ret = trydo_thing();
if( ret ) | result | {
do_something_with_result(result);
}
The try keyword returns any error up; the if-unwrap works with what came out of a successful call. Normally you wouldn’t have both, of course.
do_thing would be defined as a union of an error (a distinct kind of type, so it can be reasoned about with try, catch and unwrapping) and the wrapped return value.
I do think Zig is better for this kind of thing.
const ret = try do_thing(); if( ret ) | result | { do_something_with_result(result); }
The try keyword returns any error up; the if-unwrap works with what came out of a successful call. Normally you wouldn’t have both, of course.
do_thing would be defined as a union of an error (a distinct kind of type, so it can be reasoned about with try, catch and unwrapping) and the wrapped return value.
That syntax looks atrocious