difftreelog
feat multichar std.splitLimit
in: master
2 files changed
crates/jrsonnet-evaluator/src/builtin/mod.rsdiffbeforeafterboth623}623}624624625#[jrsonnet_macros::builtin]625#[jrsonnet_macros::builtin]626fn builtin_splitlimit(str: IStr, c: char, maxsplits: Either![usize, M1]) -> Result<VecVal> {626fn builtin_splitlimit(str: IStr, c: IStr, maxsplits: Either![usize, M1]) -> Result<VecVal> {627 use Either2::*;627 use Either2::*;628 Ok(VecVal(match maxsplits {628 Ok(VecVal(Cc::new(match maxsplits {629 A(n) => str.splitn(n + 1, c).map(|s| Val::Str(s.into())).collect(),629 A(n) => str630 .splitn(n + 1, &c as &str)631 .map(|s| Val::Str(s.into()))632 .collect(),630 B(_) => str.split(c).map(|s| Val::Str(s.into())).collect(),633 B(_) => str.split(&c as &str).map(|s| Val::Str(s.into())).collect(),631 }))634 })))632}635}633636634#[jrsonnet_macros::builtin]637#[jrsonnet_macros::builtin]crates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth122 assert std.length(str) > 0 : 'Not hexadecimal: ""';122 assert std.length(str) > 0 : 'Not hexadecimal: ""';123 parse_nat(str, 16),123 parse_nat(str, 16),124124125 split(str, c)::125 split(str, c):: std.splitLimit(str, c, -1),126 assert std.isString(str) : 'std.split first parameter should be a string, got ' + std.type(str);127 assert std.isString(c) : 'std.split second parameter should be a string, got ' + std.type(c);128 assert std.length(c) == 1 : 'std.split second parameter should have length 1, got ' + std.length(c);129 std.splitLimit(str, c, -1),130126131 splitLimit:: $intrinsic(splitLimit),127 splitLimit:: $intrinsic(splitLimit),132128