program main fn parse_u64(text: string) -> (result u64 i32) call std.string.parse_u64_result : (result u64 i32) var text : string fn parsed_text(text: string) -> string call std.num.u64_to_string : string std.result.unwrap_ok : u64 call parse_u64 : (result u64 i32) var text : string fn main() -> i32 local let value : unit call parse_u64 : (result u64 i32) string "42" : string if : i32 std.result.is_ok : bool var value : (result u64 i32) if : i32 binary = : bool call std.num.u64_to_string : string std.result.unwrap_ok : u64 var value : (result u64 i32) string "42" : string int 0 : i32 int 1 : i32 std.result.unwrap_err : i32 var value : (result u64 i32) test "parse u64 zero ok" binary = : bool call parsed_text : string string "0" : string string "0" : string test "parse u64 high ok" binary = : bool call parsed_text : string string "18446744073709551615" : string string "18446744073709551615" : string test "parse u64 empty err" local let value : unit call parse_u64 : (result u64 i32) string "" : string if : bool std.result.is_err : bool var value : (result u64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u64 i32) int 1 : i32 bool false : bool test "parse u64 plus err" local let value : unit call parse_u64 : (result u64 i32) string "+1" : string if : bool std.result.is_err : bool var value : (result u64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u64 i32) int 1 : i32 bool false : bool test "parse u64 negative err" local let value : unit call parse_u64 : (result u64 i32) string "-1" : string if : bool std.result.is_err : bool var value : (result u64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u64 i32) int 1 : i32 bool false : bool test "parse u64 above range err" local let value : unit call parse_u64 : (result u64 i32) string "18446744073709551616" : string if : bool std.result.is_err : bool var value : (result u64 i32) binary = : bool std.result.unwrap_err : i32 var value : (result u64 i32) int 1 : i32 bool false : bool