git.delta.rocks / jrsonnet / refs/commits / 912ece7838b1

difftreelog

fix preserve_order arg defaults

Yaroslav Bolyukin2024-05-01parent: #11dc48e.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-stdlib/src/arrays.rsdiffbeforeafterboth
--- a/crates/jrsonnet-stdlib/src/arrays.rs
+++ b/crates/jrsonnet-stdlib/src/arrays.rs
@@ -322,6 +322,7 @@
 #[builtin]
 pub fn builtin_prune(
 	a: Val,
+
 	#[default(false)]
 	#[cfg(feature = "exp-preserve-order")]
 	preserve_order: bool,
modifiedcrates/jrsonnet-stdlib/src/objects.rsdiffbeforeafterboth
before · crates/jrsonnet-stdlib/src/objects.rs
1use jrsonnet_evaluator::{2	function::builtin,3	val::{ArrValue, Val},4	IStr, ObjValue, ObjValueBuilder,5};67#[builtin]8pub fn builtin_object_fields_ex(9	obj: ObjValue,10	hidden: bool,1112	#[default(false)]13	#[cfg(feature = "exp-preserve-order")]14	preserve_order: bool,15) -> Vec<Val> {16	let out = obj.fields_ex(17		hidden,18		#[cfg(feature = "exp-preserve-order")]19		preserve_order,20	);21	out.into_iter().map(Val::string).collect::<Vec<_>>()22}2324#[builtin]25pub fn builtin_object_fields(26	o: ObjValue,2728	#[default(false)]29	#[cfg(feature = "exp-preserve-order")]30	preserve_order: bool,31) -> Vec<Val> {32	builtin_object_fields_ex(33		o,34		false,35		#[cfg(feature = "exp-preserve-order")]36		preserve_order,37	)38}3940#[builtin]41pub fn builtin_object_fields_all(42	o: ObjValue,4344	#[default(false)]45	#[cfg(feature = "exp-preserve-order")]46	preserve_order: bool,47) -> Vec<Val> {48	builtin_object_fields_ex(49		o,50		true,51		#[cfg(feature = "exp-preserve-order")]52		preserve_order,53	)54}5556pub fn builtin_object_values_ex(57	o: ObjValue,58	include_hidden: bool,5960	#[cfg(feature = "exp-preserve-order")] preserve_order: bool,61) -> ArrValue {62	o.values_ex(63		include_hidden,64		#[cfg(feature = "exp-preserve-order")]65		preserve_order,66	)67}68#[builtin]69pub fn builtin_object_values(70	o: ObjValue,7172	#[default(false)]73	#[cfg(feature = "exp-preserve-order")]74	preserve_order: bool,75) -> ArrValue {76	builtin_object_values_ex(77		o,78		false,79		#[cfg(feature = "exp-preserve-order")]80		preserve_order,81	)82}83#[builtin]84pub fn builtin_object_values_all(85	o: ObjValue,8687	#[default(false)]88	#[cfg(feature = "exp-preserve-order")]89	preserve_order: bool,90) -> ArrValue {91	builtin_object_values_ex(92		o,93		true,94		#[cfg(feature = "exp-preserve-order")]95		preserve_order,96	)97}9899pub fn builtin_object_keys_values_ex(100	o: ObjValue,101	include_hidden: bool,102	#[cfg(feature = "exp-preserve-order")] preserve_order: bool,103) -> ArrValue {104	o.key_values_ex(105		include_hidden,106		#[cfg(feature = "exp-preserve-order")]107		preserve_order,108	)109}110#[builtin]111pub fn builtin_object_keys_values(112	o: ObjValue,113114	#[default(false)]115	#[cfg(feature = "exp-preserve-order")]116	preserve_order: bool,117) -> ArrValue {118	builtin_object_keys_values_ex(119		o,120		false,121		#[cfg(feature = "exp-preserve-order")]122		preserve_order,123	)124}125#[builtin]126pub fn builtin_object_keys_values_all(127	o: ObjValue,128129	#[default(false)]130	#[cfg(feature = "exp-preserve-order")]131	preserve_order: bool,132) -> ArrValue {133	builtin_object_keys_values_ex(134		o,135		true,136		#[cfg(feature = "exp-preserve-order")]137		preserve_order,138	)139}140141#[builtin]142pub fn builtin_object_has_ex(obj: ObjValue, fname: IStr, hidden: bool) -> bool {143	obj.has_field_ex(fname, hidden)144}145146#[builtin]147pub fn builtin_object_has(o: ObjValue, f: IStr) -> bool {148	o.has_field(f)149}150151#[builtin]152pub fn builtin_object_has_all(o: ObjValue, f: IStr) -> bool {153	o.has_field_include_hidden(f)154}155156#[builtin]157pub fn builtin_object_remove_key(158	obj: ObjValue,159	key: IStr,160161	// Standard implementation uses std.objectFields without such argument, we can't162	// assume order preservation should always be enabled/disabled163	#[default(false)]164	#[cfg(feature = "exp-preserve-order")]165	preserve_order: bool,166) -> ObjValue {167	let mut new_obj = ObjValueBuilder::with_capacity(obj.len() - 1);168	for (k, v) in obj.iter(169		#[cfg(feature = "exp-preserve-order")]170		preserve_order,171	) {172		if k == key {173			continue;174		}175		new_obj.field(k).value(v.unwrap());176	}177178	new_obj.build()179}
after · crates/jrsonnet-stdlib/src/objects.rs
1use jrsonnet_evaluator::{2	function::builtin,3	val::{ArrValue, Val},4	IStr, ObjValue, ObjValueBuilder,5};67#[builtin]8pub fn builtin_object_fields_ex(9	obj: ObjValue,10	hidden: bool,1112	#[default(false)]13	#[cfg(feature = "exp-preserve-order")]14	preserve_order: bool,15) -> Vec<Val> {16	let out = obj.fields_ex(17		hidden,18		#[cfg(feature = "exp-preserve-order")]19		preserve_order,20	);21	out.into_iter().map(Val::string).collect::<Vec<_>>()22}2324#[builtin]25pub fn builtin_object_fields(26	o: ObjValue,2728	#[default(false)]29	#[cfg(feature = "exp-preserve-order")]30	preserve_order: bool,31) -> Vec<Val> {32	builtin_object_fields_ex(33		o,34		false,35		#[cfg(feature = "exp-preserve-order")]36		preserve_order,37	)38}3940#[builtin]41pub fn builtin_object_fields_all(42	o: ObjValue,4344	#[default(false)]45	#[cfg(feature = "exp-preserve-order")]46	preserve_order: bool,47) -> Vec<Val> {48	builtin_object_fields_ex(49		o,50		true,51		#[cfg(feature = "exp-preserve-order")]52		preserve_order,53	)54}5556pub fn builtin_object_values_ex(57	o: ObjValue,58	include_hidden: bool,5960	#[default(false)]61	#[cfg(feature = "exp-preserve-order")]62	preserve_order: bool,63) -> ArrValue {64	o.values_ex(65		include_hidden,66		#[cfg(feature = "exp-preserve-order")]67		preserve_order,68	)69}70#[builtin]71pub fn builtin_object_values(72	o: ObjValue,7374	#[default(false)]75	#[cfg(feature = "exp-preserve-order")]76	preserve_order: bool,77) -> ArrValue {78	builtin_object_values_ex(79		o,80		false,81		#[cfg(feature = "exp-preserve-order")]82		preserve_order,83	)84}85#[builtin]86pub fn builtin_object_values_all(87	o: ObjValue,8889	#[default(false)]90	#[cfg(feature = "exp-preserve-order")]91	preserve_order: bool,92) -> ArrValue {93	builtin_object_values_ex(94		o,95		true,96		#[cfg(feature = "exp-preserve-order")]97		preserve_order,98	)99}100101pub fn builtin_object_keys_values_ex(102	o: ObjValue,103	include_hidden: bool,104105	#[default(false)]106	#[cfg(feature = "exp-preserve-order")]107	preserve_order: bool,108) -> ArrValue {109	o.key_values_ex(110		include_hidden,111		#[cfg(feature = "exp-preserve-order")]112		preserve_order,113	)114}115#[builtin]116pub fn builtin_object_keys_values(117	o: ObjValue,118119	#[default(false)]120	#[cfg(feature = "exp-preserve-order")]121	preserve_order: bool,122) -> ArrValue {123	builtin_object_keys_values_ex(124		o,125		false,126		#[cfg(feature = "exp-preserve-order")]127		preserve_order,128	)129}130#[builtin]131pub fn builtin_object_keys_values_all(132	o: ObjValue,133134	#[default(false)]135	#[cfg(feature = "exp-preserve-order")]136	preserve_order: bool,137) -> ArrValue {138	builtin_object_keys_values_ex(139		o,140		true,141		#[cfg(feature = "exp-preserve-order")]142		preserve_order,143	)144}145146#[builtin]147pub fn builtin_object_has_ex(obj: ObjValue, fname: IStr, hidden: bool) -> bool {148	obj.has_field_ex(fname, hidden)149}150151#[builtin]152pub fn builtin_object_has(o: ObjValue, f: IStr) -> bool {153	o.has_field(f)154}155156#[builtin]157pub fn builtin_object_has_all(o: ObjValue, f: IStr) -> bool {158	o.has_field_include_hidden(f)159}160161#[builtin]162pub fn builtin_object_remove_key(163	obj: ObjValue,164	key: IStr,165166	// Standard implementation uses std.objectFields without such argument, we can't167	// assume order preservation should always be enabled/disabled168	#[default(false)]169	#[cfg(feature = "exp-preserve-order")]170	preserve_order: bool,171) -> ObjValue {172	let mut new_obj = ObjValueBuilder::with_capacity(obj.len() - 1);173	for (k, v) in obj.iter(174		#[cfg(feature = "exp-preserve-order")]175		preserve_order,176	) {177		if k == key {178			continue;179		}180		new_obj.field(k).value(v.unwrap());181	}182183	new_obj.build()184}