difftreelog
style fix clippy upper-case-acronyms
in: master
3 files changed
bindings/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"),
}
}
crates/jrsonnet-evaluator/src/builtin/sort.rsdiffbeforeafterboth1use 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}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}crates/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,