slovo/examples/projects/std-layout-local-string/src/main.slo
2026-05-22 08:38:43 +02:00

197 lines
6.2 KiB
Plaintext

(module main)
(import string (len concat parse_i32_result parse_i32_option parse_u32_result parse_u32_option parse_i64_result parse_i64_option parse_u64_result parse_u64_option parse_f64_result parse_f64_option parse_bool_result parse_bool_option parse_i32_or_zero parse_u32_or_zero parse_i64_or_zero parse_u64_or_zero parse_f64_or_zero parse_bool_or_false parse_i32_or parse_u32_or parse_i64_or parse_u64_or parse_f64_or parse_bool_or))
(fn imported_string_concat () -> string
(concat "slo" "vo"))
(fn imported_string_len_concat_score () -> i32
(+ (len (imported_string_concat)) 37))
(fn imported_string_parse_result_ok () -> bool
(if (= (unwrap_ok (parse_i32_result "40")) 40)
(if (= (unwrap_ok (parse_u32_result "40")) 40u32)
(if (= (unwrap_ok (parse_i64_result "40")) 40i64)
(if (= (unwrap_ok (parse_u64_result "40")) 40u64)
(if (= (unwrap_ok (parse_f64_result "40.0")) 40.0)
(imported_string_parse_bool_ok)
false)
false)
false)
false)
false))
(fn imported_string_parse_bool_ok () -> bool
(if (unwrap_ok (parse_bool_result "true"))
(= (unwrap_err (parse_bool_result "TRUE")) 1)
false))
(fn imported_string_parse_options_ok () -> bool
(if (match (parse_i32_option "40")
((some payload)
(= payload 40))
((none)
false))
(if (match (parse_i32_option "bad")
((some payload)
false)
((none)
true))
(if (match (parse_u32_option "40")
((some payload)
(= payload 40u32))
((none)
false))
(if (match (parse_u32_option "bad")
((some payload)
false)
((none)
true))
(if (match (parse_i64_option "40")
((some payload)
(= payload 40i64))
((none)
false))
(if (match (parse_i64_option "bad")
((some payload)
false)
((none)
true))
(if (match (parse_u64_option "40")
((some payload)
(= payload 40u64))
((none)
false))
(if (match (parse_u64_option "bad")
((some payload)
false)
((none)
true))
(if (match (parse_f64_option "40.0")
((some payload)
(= payload 40.0))
((none)
false))
(if (match (parse_f64_option "bad")
((some payload)
false)
((none)
true))
(if (match (parse_bool_option "true")
((some payload)
payload)
((none)
false))
(match (parse_bool_option "bad")
((some payload)
false)
((none)
true))
false)
false)
false)
false)
false)
false)
false)
false)
false)
false)
false))
(fn imported_string_parse_integer_fallbacks_ok () -> bool
(if (= (parse_i32_or_zero "40") 40)
(if (= (parse_i32_or_zero "bad") 0)
(if (= (parse_u32_or_zero "40") 40u32)
(if (= (parse_u32_or_zero "bad") 0u32)
(if (= (parse_i64_or_zero "40") 40i64)
(if (= (parse_i64_or_zero "bad") 0i64)
(if (= (parse_u64_or_zero "40") 40u64)
(= (parse_u64_or_zero "bad") 0u64)
false)
false)
false)
false)
false)
false)
false))
(fn imported_string_parse_float_bool_fallbacks_ok () -> bool
(if (= (parse_f64_or_zero "40.0") 40.0)
(if (= (parse_f64_or_zero "bad") 0.0)
(if (parse_bool_or_false "true")
(if (parse_bool_or_false "bad")
false
(if (parse_bool_or_false "false")
false
true))
false)
false)
false))
(fn imported_string_parse_custom_fallbacks_ok () -> bool
(if (= (parse_i32_or "40" 7) 40)
(if (= (parse_i32_or "bad" 7) 7)
(if (= (parse_u32_or "40" 9u32) 40u32)
(if (= (parse_u32_or "bad" 9u32) 9u32)
(if (= (parse_i64_or "40" 9i64) 40i64)
(if (= (parse_i64_or "bad" 9i64) 9i64)
(if (= (parse_u64_or "40" 11u64) 40u64)
(if (= (parse_u64_or "bad" 11u64) 11u64)
(if (= (parse_f64_or "40.0" 1.5) 40.0)
(if (= (parse_f64_or "bad" 1.5) 1.5)
(if (parse_bool_or "true" false)
(if (parse_bool_or "bad" true)
true
false)
false)
false)
false)
false)
false)
false)
false)
false)
false)
false)
false))
(fn imported_string_helpers_ok () -> bool
(if (= (imported_string_len_concat_score) 42)
(if (imported_string_parse_result_ok)
(if (imported_string_parse_options_ok)
(if (imported_string_parse_integer_fallbacks_ok)
(if (imported_string_parse_float_bool_fallbacks_ok)
(imported_string_parse_custom_fallbacks_ok)
false)
false)
false)
false)
false))
(fn main () -> i32
(if (imported_string_helpers_ok)
42
1))
(test "explicit local string len concat"
(= (imported_string_len_concat_score) 42))
(test "explicit local string parse result wrappers"
(imported_string_parse_result_ok))
(test "explicit local string parse option wrappers"
(imported_string_parse_options_ok))
(test "explicit local string parse integer fallbacks"
(imported_string_parse_integer_fallbacks_ok))
(test "explicit local string parse float bool fallbacks"
(imported_string_parse_float_bool_fallbacks_ok))
(test "explicit local string parse custom fallbacks"
(imported_string_parse_custom_fallbacks_ok))
(test "explicit local string helpers all"
(= (main) 42))