git.delta.rocks / jrsonnet / refs/commits / 9e6e925953ad

difftreelog

style fix clippy upper-case-acronyms

Yaroslav Bolyukin2021-03-27parent: #bc97a80.patch.diff
in: master

3 files changed

modifiedbindings/jsonnet/src/interop.rsdiffbeforeafterboth
--- a/bindings/jsonnet/src/interop.rs
+++ b/bindings/jsonnet/src/interop.rs
@@ -46,9 +46,9 @@
 
 #[no_mangle]
 pub extern "C" fn jrsonnet_set_trace_format(vm: &EvaluationState, format: u8) {
-	use jrsonnet_evaluator::trace::JSFormat;
+	use jrsonnet_evaluator::trace::JsFormat;
 	match format {
-		1 => vm.set_trace_format(Box::new(JSFormat)),
+		1 => vm.set_trace_format(Box::new(JsFormat)),
 		_ => panic!("unknown trace format"),
 	}
 }
modifiedcrates/jrsonnet-evaluator/src/builtin/sort.rsdiffbeforeafterboth
before · crates/jrsonnet-evaluator/src/builtin/sort.rs
1use crate::{2	error::{Error, LocError, Result},3	throw, Context, FuncVal, Val,4};5use std::rc::Rc;67#[derive(Debug, Clone, thiserror::Error)]8pub enum SortError {9	#[error("sort key should be string or number")]10	SortKeyShouldBeStringOrNumber,11	#[error("sort elements should have equal types")]12	SortElementsShouldHaveEqualType,13}1415impl From<SortError> for LocError {16	fn from(s: SortError) -> Self {17		Self::new(Error::Sort(s))18	}19}2021#[derive(Copy, Clone)]22enum SortKeyType {23	Number,24	String,25	Unknown,26}2728#[derive(PartialEq)]29struct NonNaNF64(f64);30impl PartialOrd for NonNaNF64 {31	fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {32		self.0.partial_cmp(&other.0)33	}34}35impl Eq for NonNaNF64 {}36impl Ord for NonNaNF64 {37	fn cmp(&self, other: &Self) -> std::cmp::Ordering {38		self.partial_cmp(other).expect("non nan")39	}40}4142fn get_sort_type<T>(43	values: &mut Vec<T>,44	key_getter: impl Fn(&mut T) -> &mut Val,45) -> Result<SortKeyType> {46	let mut sort_type = SortKeyType::Unknown;47	for i in values.iter_mut() {48		let i = key_getter(i);49		match (i, sort_type) {50			(Val::Str(_), SortKeyType::Unknown) => sort_type = SortKeyType::String,51			(Val::Num(_), SortKeyType::Unknown) => sort_type = SortKeyType::Number,52			(Val::Str(_), SortKeyType::String) => {}53			(Val::Str(_), _) => throw!(SortError::SortElementsShouldHaveEqualType),54			(Val::Num(_), SortKeyType::Number) => {}55			(Val::Num(_), _) => throw!(SortError::SortElementsShouldHaveEqualType),56			_ => throw!(SortError::SortKeyShouldBeStringOrNumber),57		}58	}59	Ok(sort_type)60}6162pub fn sort(ctx: Context, mut values: Rc<Vec<Val>>, key_getter: &FuncVal) -> Result<Rc<Vec<Val>>> {63	if values.len() <= 1 {64		return Ok(values);65	}66	if key_getter.is_ident() {67		let mvalues = Rc::make_mut(&mut values);68		let sort_type = get_sort_type(mvalues, |k| k)?;69		match sort_type {70			SortKeyType::Number => mvalues.sort_by_key(|v| match v {71				Val::Num(n) => NonNaNF64(*n),72				_ => unreachable!(),73			}),74			SortKeyType::String => mvalues.sort_by_key(|v| match v {75				Val::Str(s) => s.clone(),76				_ => unreachable!(),77			}),78			SortKeyType::Unknown => unreachable!(),79		};80		Ok(values)81	} else {82		let mut vk = Vec::with_capacity(values.len());83		for value in values.iter() {84			vk.push((85				value.clone(),86				key_getter.evaluate_values(ctx.clone(), &[value.clone()])?,87			));88		}89		let sort_type = get_sort_type(&mut vk, |v| &mut v.1)?;90		match sort_type {91			SortKeyType::Number => vk.sort_by_key(|v| match v.1 {92				Val::Num(n) => NonNaNF64(n),93				_ => unreachable!(),94			}),95			SortKeyType::String => vk.sort_by_key(|v| match &v.1 {96				Val::Str(s) => s.clone(),97				_ => unreachable!(),98			}),99			SortKeyType::Unknown => unreachable!(),100		};101		Ok(Rc::new(vk.into_iter().map(|v| v.0).collect()))102	}103}
modifiedcrates/jrsonnet-evaluator/src/trace/mod.rsdiffbeforeafterboth
--- a/crates/jrsonnet-evaluator/src/trace/mod.rs
+++ b/crates/jrsonnet-evaluator/src/trace/mod.rs
@@ -154,8 +154,8 @@
 	}
 }
 
-pub struct JSFormat;
-impl TraceFormat for JSFormat {
+pub struct JsFormat;
+impl TraceFormat for JsFormat {
 	fn write_trace(
 		&self,
 		out: &mut dyn std::fmt::Write,