difftreelog
Merge pull request #55 from messense/ascii
in: master
3 files changed
crates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth126 ("strReplace".into(), builtin_str_replace),126 ("strReplace".into(), builtin_str_replace),127 ("splitLimit".into(), builtin_splitlimit),127 ("splitLimit".into(), builtin_splitlimit),128 ("parseJson".into(), builtin_parse_json),128 ("parseJson".into(), builtin_parse_json),129 ("asciiUpper".into(), builtin_ascii_upper),130 ("asciiLower".into(), builtin_ascii_lower),129 ].iter().cloned().collect()131 ].iter().cloned().collect()130 };132 };131}133}828 })830 })829}831}832833fn builtin_ascii_upper(834 context: Context,835 _loc: Option<&ExprLocation>,836 args: &ArgsDesc,837) -> Result<Val> {838 parse_args!(context, "asciiUpper", args, 1, [839 0, str: ty!(string) => Val::Str;840 ], {841 Ok(Val::Str(str.to_ascii_uppercase().into()))842 })843}844845fn builtin_ascii_lower(846 context: Context,847 _loc: Option<&ExprLocation>,848 args: &ArgsDesc,849) -> Result<Val> {850 parse_args!(context, "asciiLower", args, 1, [851 0, str: ty!(string) => Val::Str;852 ], {853 Ok(Val::Str(str.to_ascii_lowercase().into()))854 })855}830856831pub fn call_builtin(857pub fn call_builtin(832 context: Context,858 context: Context,crates/jrsonnet-evaluator/src/lib.rsdiffbeforeafterboth1046 assert_eq!(error.error().to_string(), "assert failed: is number");1046 assert_eq!(error.error().to_string(), "assert failed: is number");1047 }1047 }10481049 #[test]1050 fn test_ascii_upper_lower() {1051 assert_eval!(r#"std.assertEqual(std.asciiUpper("aBc😀"), "ABC😀")"#);1052 assert_eval!(r#"std.assertEqual(std.asciiLower("aBc😀"), "abc😀")"#);1053 }1048}1054}10491055crates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth128128129 strReplace:: $intrinsic(strReplace),129 strReplace:: $intrinsic(strReplace),130130131 asciiUpper(str)::131 asciiUpper:: $intrinsic(asciiUpper),132 local cp = std.codepoint;133 local up_letter(c) = if cp(c) >= 97 && cp(c) < 123 then134 std.char(cp(c) - 32)135 else136 c;137 std.join('', std.map(up_letter, std.stringChars(str))),138132139 asciiLower(str)::133 asciiLower:: $intrinsic(asciiLower),140 local cp = std.codepoint;141 local down_letter(c) = if cp(c) >= 65 && cp(c) < 91 then142 std.char(cp(c) + 32)143 else144 c;145 std.join('', std.map(down_letter, std.stringChars(str))),146134147 range:: $intrinsic(range),135 range:: $intrinsic(range),148136