260 lines
6.7 KiB
Plaintext
260 lines
6.7 KiB
Plaintext
(module main)
|
|
|
|
(fn maybe_value ((value i32)) -> (option i32)
|
|
(some i32 value))
|
|
|
|
(fn maybe_empty () -> (option i32)
|
|
(none i32))
|
|
|
|
(fn maybe_wide_value ((value i64)) -> (option i64)
|
|
(some i64 value))
|
|
|
|
(fn maybe_wide_empty () -> (option i64)
|
|
(none i64))
|
|
|
|
(fn maybe_float_value ((value f64)) -> (option f64)
|
|
(some f64 value))
|
|
|
|
(fn maybe_float_empty () -> (option f64)
|
|
(none f64))
|
|
|
|
(fn maybe_flag_value ((value bool)) -> (option bool)
|
|
(some bool value))
|
|
|
|
(fn maybe_flag_empty () -> (option bool)
|
|
(none bool))
|
|
|
|
(fn maybe_string_value ((value string)) -> (option string)
|
|
(some string value))
|
|
|
|
(fn maybe_string_empty () -> (option string)
|
|
(none string))
|
|
|
|
(fn result_ok_value ((value i32)) -> (result i32 i32)
|
|
(ok i32 i32 value))
|
|
|
|
(fn result_err_value ((code i32)) -> (result i32 i32)
|
|
(err i32 i32 code))
|
|
|
|
(fn option_direct_payload () -> i32
|
|
(unwrap_some (some i32 42)))
|
|
|
|
(fn option_param_payload ((value (option i32))) -> i32
|
|
(unwrap_some value))
|
|
|
|
(fn option_local_payload () -> i32
|
|
(let value (option i32) (maybe_value 21))
|
|
(unwrap_some value))
|
|
|
|
(fn option_call_payload () -> i32
|
|
(unwrap_some (maybe_value 22)))
|
|
|
|
(fn option_guarded_payload ((value (option i32))) -> i32
|
|
(if (is_some value)
|
|
(unwrap_some value)
|
|
0))
|
|
|
|
(fn option_wide_direct_payload () -> i64
|
|
(unwrap_some (some i64 2147483648i64)))
|
|
|
|
(fn option_wide_param_payload ((value (option i64))) -> i64
|
|
(unwrap_some value))
|
|
|
|
(fn option_wide_local_payload () -> i64
|
|
(let value (option i64) (maybe_wide_value 21i64))
|
|
(unwrap_some value))
|
|
|
|
(fn option_wide_call_payload () -> i64
|
|
(unwrap_some (maybe_wide_value 22i64)))
|
|
|
|
(fn option_wide_guarded_payload ((value (option i64))) -> i64
|
|
(if (is_some value)
|
|
(unwrap_some value)
|
|
0i64))
|
|
|
|
(fn option_float_direct_payload () -> f64
|
|
(unwrap_some (some f64 42.5)))
|
|
|
|
(fn option_float_param_payload ((value (option f64))) -> f64
|
|
(unwrap_some value))
|
|
|
|
(fn option_float_local_payload () -> f64
|
|
(let value (option f64) (maybe_float_value 21.5))
|
|
(unwrap_some value))
|
|
|
|
(fn option_float_call_payload () -> f64
|
|
(unwrap_some (maybe_float_value 22.5)))
|
|
|
|
(fn option_float_guarded_payload ((value (option f64))) -> f64
|
|
(if (is_some value)
|
|
(unwrap_some value)
|
|
0.0))
|
|
|
|
(fn option_flag_direct_payload () -> bool
|
|
(unwrap_some (some bool true)))
|
|
|
|
(fn option_flag_param_payload ((value (option bool))) -> bool
|
|
(unwrap_some value))
|
|
|
|
(fn option_flag_local_payload () -> bool
|
|
(let value (option bool) (maybe_flag_value true))
|
|
(unwrap_some value))
|
|
|
|
(fn option_flag_call_payload () -> bool
|
|
(unwrap_some (maybe_flag_value true)))
|
|
|
|
(fn option_flag_guarded_payload ((value (option bool))) -> bool
|
|
(if (is_some value)
|
|
(unwrap_some value)
|
|
false))
|
|
|
|
(fn option_string_direct_payload () -> string
|
|
(unwrap_some (some string "slovo")))
|
|
|
|
(fn option_string_param_payload ((value (option string))) -> string
|
|
(unwrap_some value))
|
|
|
|
(fn option_string_local_payload () -> string
|
|
(let value (option string) (maybe_string_value "oak"))
|
|
(unwrap_some value))
|
|
|
|
(fn option_string_call_payload () -> string
|
|
(unwrap_some (maybe_string_value "pine")))
|
|
|
|
(fn option_string_guarded_payload ((value (option string))) -> string
|
|
(if (is_some value)
|
|
(unwrap_some value)
|
|
"fallback"))
|
|
|
|
(fn result_ok_direct_payload () -> i32
|
|
(unwrap_ok (ok i32 i32 30)))
|
|
|
|
(fn result_err_direct_payload () -> i32
|
|
(unwrap_err (err i32 i32 7)))
|
|
|
|
(fn result_ok_param_payload ((value (result i32 i32))) -> i32
|
|
(unwrap_ok value))
|
|
|
|
(fn result_err_param_payload ((value (result i32 i32))) -> i32
|
|
(unwrap_err value))
|
|
|
|
(fn result_ok_local_payload () -> i32
|
|
(let value (result i32 i32) (result_ok_value 31))
|
|
(unwrap_ok value))
|
|
|
|
(fn result_err_call_payload () -> i32
|
|
(unwrap_err (result_err_value 9)))
|
|
|
|
(test "unwrap some direct constructor"
|
|
(= (option_direct_payload) 42))
|
|
|
|
(test "unwrap some local"
|
|
(= (option_local_payload) 21))
|
|
|
|
(test "unwrap some call"
|
|
(= (option_call_payload) 22))
|
|
|
|
(test "unwrap some parameter"
|
|
(= (option_param_payload (maybe_value 23)) 23))
|
|
|
|
(test "guarded unwrap some present"
|
|
(= (option_guarded_payload (maybe_value 24)) 24))
|
|
|
|
(test "guarded unwrap some absent"
|
|
(= (option_guarded_payload (maybe_empty)) 0))
|
|
|
|
(test "unwrap some i64 direct constructor"
|
|
(= (option_wide_direct_payload) 2147483648i64))
|
|
|
|
(test "unwrap some i64 local"
|
|
(= (option_wide_local_payload) 21i64))
|
|
|
|
(test "unwrap some i64 call"
|
|
(= (option_wide_call_payload) 22i64))
|
|
|
|
(test "unwrap some i64 parameter"
|
|
(= (option_wide_param_payload (maybe_wide_value 23i64)) 23i64))
|
|
|
|
(test "guarded unwrap some i64 present"
|
|
(= (option_wide_guarded_payload (maybe_wide_value 24i64)) 24i64))
|
|
|
|
(test "guarded unwrap some i64 absent"
|
|
(= (option_wide_guarded_payload (maybe_wide_empty)) 0i64))
|
|
|
|
(test "unwrap some f64 direct constructor"
|
|
(= (option_float_direct_payload) 42.5))
|
|
|
|
(test "unwrap some f64 local"
|
|
(= (option_float_local_payload) 21.5))
|
|
|
|
(test "unwrap some f64 call"
|
|
(= (option_float_call_payload) 22.5))
|
|
|
|
(test "unwrap some f64 parameter"
|
|
(= (option_float_param_payload (maybe_float_value 23.5)) 23.5))
|
|
|
|
(test "guarded unwrap some f64 present"
|
|
(= (option_float_guarded_payload (maybe_float_value 24.5)) 24.5))
|
|
|
|
(test "guarded unwrap some f64 absent"
|
|
(= (option_float_guarded_payload (maybe_float_empty)) 0.0))
|
|
|
|
(test "unwrap some bool direct constructor"
|
|
(option_flag_direct_payload))
|
|
|
|
(test "unwrap some bool local"
|
|
(option_flag_local_payload))
|
|
|
|
(test "unwrap some bool call"
|
|
(option_flag_call_payload))
|
|
|
|
(test "unwrap some bool parameter"
|
|
(option_flag_param_payload (maybe_flag_value true)))
|
|
|
|
(test "guarded unwrap some bool present"
|
|
(option_flag_guarded_payload (maybe_flag_value true)))
|
|
|
|
(test "guarded unwrap some bool absent"
|
|
(if (option_flag_guarded_payload (maybe_flag_empty))
|
|
false
|
|
true))
|
|
|
|
(test "unwrap some string direct constructor"
|
|
(= (option_string_direct_payload) "slovo"))
|
|
|
|
(test "unwrap some string local"
|
|
(= (option_string_local_payload) "oak"))
|
|
|
|
(test "unwrap some string call"
|
|
(= (option_string_call_payload) "pine"))
|
|
|
|
(test "unwrap some string parameter"
|
|
(= (option_string_param_payload (maybe_string_value "birch")) "birch"))
|
|
|
|
(test "guarded unwrap some string present"
|
|
(= (option_string_guarded_payload (maybe_string_value "cedar")) "cedar"))
|
|
|
|
(test "guarded unwrap some string absent"
|
|
(= (option_string_guarded_payload (maybe_string_empty)) "fallback"))
|
|
|
|
(test "unwrap ok direct constructor"
|
|
(= (result_ok_direct_payload) 30))
|
|
|
|
(test "unwrap err direct constructor"
|
|
(= (result_err_direct_payload) 7))
|
|
|
|
(test "unwrap ok parameter"
|
|
(= (result_ok_param_payload (result_ok_value 32)) 32))
|
|
|
|
(test "unwrap err parameter"
|
|
(= (result_err_param_payload (result_err_value 8)) 8))
|
|
|
|
(test "unwrap ok local"
|
|
(= (result_ok_local_payload) 31))
|
|
|
|
(test "unwrap err call"
|
|
(= (result_err_call_payload) 9))
|
|
|
|
(fn main () -> i32
|
|
0)
|