Nasal-Interpreter/test/exception.nas

37 lines
567 B
Plaintext

var ResultTrait={
Ok:func(val) {
me.ok=val;
me.flag=0;
return me;
},
Err:func(info) {
me.err=info;
me.flag=1;
return me;
},
unwrap:func() {
if (me.flag)
die(me.err);
return me.ok;
}
};
var Result = func() {
return{
ok:nil,
err:"",
flag:1,
parents:[ResultTrait]
};
};
var a = func() {
return Result().Ok("hello world");
}
var b = func() {
return Result().Err("exception test");
}
println(a().unwrap());
b().unwrap();