///|
/// 将整数的字符串表示形式转换为 `Int` 值。
///
/// 参数:
///
/// * `str` : 要解析为整数的字符串。前导和尾随的空白字符(空格、制表符、换行符、回车符)会被自动去除。
///
/// 返回值:如果字符串可以成功解析为有效的整数,则返回 `Some(value)`;如果字符串无法识别为整数表示形式,则返回 `None`。
///
/// 示例:
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_int("42"), content="Some(42)")
/// inspect(@amor2025/convert.str_to_int("-123"), content="Some(-123)")
/// inspect(@amor2025/convert.str_to_int(" 456 "), content="Some(456)")
/// inspect(@amor2025/convert.str_to_int("0"), content="Some(0)")
/// inspect(@amor2025/convert.str_to_int("abc"), content="None")
/// inspect(@amor2025/convert.str_to_int(""), content="None")
/// inspect(@amor2025/convert.str_to_int("12.34"), content="None")
/// ```
///
pub fn str_to_int(str : String) -> Int? {
@lib.Convert::string_to_int(str)
}
///|
/// |
/// 将整数的字符串表示形式转换为 `Int` 值,自动截断小数部分。
///
/// 参数:
///
/// * `str` :
/// 要解析为整数的字符串。前导和尾随的空白字符(空格、制表符、换行符、回车符)会被自动去除。如果字符串包含小数点,则只考虑小数点前的整数部分。
///
/// 返回值:如果字符串可以成功解析为有效的数值(存在小数部分时会截断),则返回 `Some(value)`;如果字符串无法识别为数值表示形式,则返回
/// `None`。
///
/// 示例:
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_int_truncate("42"), content="Some(42)")
/// inspect(@amor2025/convert.str_to_int_truncate("-123"), content="Some(-123)")
/// inspect(@amor2025/convert.str_to_int_truncate(" 456 "), content="Some(456)")
/// inspect(@amor2025/convert.str_to_int_truncate("12.34"), content="Some(12)")
/// inspect(@amor2025/convert.str_to_int_truncate("-5.89"), content="Some(-5)")
/// inspect(@amor2025/convert.str_to_int_truncate("0.999"), content="Some(0)")
/// inspect(@amor2025/convert.str_to_int_truncate("abc"), content="None")
/// inspect(@amor2025/convert.str_to_int_truncate(""), content="None")
/// ```
///
pub fn str_to_int_truncate(str : String) -> Int? {
@lib.Convert::string_to_int_truncate(str)
}
///|
/// 将浮点数的字符串表示形式转换为 `Double` 值。
///
/// 参数:
///
/// * `str` : 要解析为浮点数的字符串。前导和尾随的空白字符(空格、制表符、换行符、回车符)会被自动去除。
///
/// 返回值:如果字符串可以成功解析为有效的浮点数,则返回 `Some(value)`;如果字符串无法识别为浮点数表示形式,则返回 `None`。
///
/// 示例:
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_double("3.14"), content="Some(3.14)")
/// inspect(@amor2025/convert.str_to_double("42"), content="Some(42)")
/// inspect(@amor2025/convert.str_to_double(" -2.5 "), content="Some(-2.5)")
/// inspect(@amor2025/convert.str_to_double("1.23e-4"), content="Some(0.00012299999999999998)")
/// inspect(@amor2025/convert.str_to_double("abc"), content="None")
/// inspect(@amor2025/convert.str_to_double(""), content="None")
/// ```
///
pub fn str_to_double(str : String) -> Double? {
@lib.Convert::string_to_double(str)
}
///|
/// 将布尔值的字符串表示形式转换为 `Bool` 值。
///
/// 参数:
///
/// * `str` : 要解析为布尔值的字符串。前导和尾随的空白字符(空格、制表符、换行符、回车符)会被自动去除。
///
/// 返回值:如果字符串可以成功解析为有效的布尔值,则返回 `Some(value)`;如果字符串无法识别为布尔值表示形式,则返回 `None`。
///
/// 示例:
///
/// ```moonbit
/// inspect(@amor2025/convert.str_to_bool("true"), content="Some(true)")
/// inspect(@amor2025/convert.str_to_bool("false"), content="Some(false)")
/// inspect(@amor2025/convert.str_to_bool(" TRUE "), content="Some(true)")
/// inspect(@amor2025/convert.str_to_bool("False"), content="Some(false)")
/// inspect(@amor2025/convert.str_to_bool("yes"), content="None")
/// inspect(@amor2025/convert.str_to_bool("1"), content="None")
/// ```
///
pub fn str_to_bool(str : String) -> Bool? {
@lib.Convert::string_to_bool(str)
}