difftreelog
Merge pull request #92 from CertainLach/fix-builtin-variable-names
in: master
2 files changed
crates/jrsonnet-stdlib/src/math.rsdiffbeforeafterboth1use jrsonnet_evaluator::{error::Result, function::builtin, typed::PositiveF64};23#[builtin]4pub fn builtin_abs(x: f64) -> Result<f64> {5 Ok(x.abs())6}78#[builtin]9pub fn builtin_sign(x: f64) -> Result<f64> {10 Ok(if x == 0. { 0. } else { x.signum() })11}1213#[builtin]14pub fn builtin_max(x: f64, y: f64) -> Result<f64> {15 Ok(x.max(y))16}1718#[builtin]19pub fn builtin_min(x: f64, y: f64) -> Result<f64> {20 Ok(x.min(y))21}2223#[builtin]24pub fn builtin_modulo(a: f64, b: f64) -> Result<f64> {25 Ok(a % b)26}2728#[builtin]29pub fn builtin_floor(x: f64) -> Result<f64> {30 Ok(x.floor())31}3233#[builtin]34pub fn builtin_ceil(x: f64) -> Result<f64> {35 Ok(x.ceil())36}3738#[builtin]39pub fn builtin_log(n: f64) -> Result<f64> {40 Ok(n.ln())41}4243#[builtin]44pub fn builtin_pow(x: f64, n: f64) -> Result<f64> {45 Ok(x.powf(n))46}4748#[builtin]49pub fn builtin_sqrt(x: PositiveF64) -> Result<f64> {50 Ok(x.0.sqrt())51}5253#[builtin]54pub fn builtin_sin(x: f64) -> Result<f64> {55 Ok(x.sin())56}5758#[builtin]59pub fn builtin_cos(x: f64) -> Result<f64> {60 Ok(x.cos())61}6263#[builtin]64pub fn builtin_tan(x: f64) -> Result<f64> {65 Ok(x.tan())66}6768#[builtin]69pub fn builtin_asin(x: f64) -> Result<f64> {70 Ok(x.asin())71}7273#[builtin]74pub fn builtin_acos(x: f64) -> Result<f64> {75 Ok(x.acos())76}7778#[builtin]79pub fn builtin_atan(x: f64) -> Result<f64> {80 Ok(x.atan())81}8283#[builtin]84pub fn builtin_exp(x: f64) -> Result<f64> {85 Ok(x.exp())86}8788fn frexp(s: f64) -> (f64, i16) {89 if s == 0.0 {90 (s, 0)91 } else {92 let lg = s.abs().log2();93 let x = (lg - lg.floor() - 1.0).exp2();94 let exp = lg.floor() + 1.0;95 (s.signum() * x, exp as i16)96 }97}9899#[builtin]100pub fn builtin_mantissa(x: f64) -> Result<f64> {101 Ok(frexp(x).0)102}103104#[builtin]105pub fn builtin_exponent(x: f64) -> Result<i16> {106 Ok(frexp(x).1)107}crates/jrsonnet-stdlib/src/strings.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/strings.rs
+++ b/crates/jrsonnet-stdlib/src/strings.rs
@@ -76,38 +76,38 @@
}
#[builtin]
-pub fn builtin_parse_int(raw: IStr) -> Result<f64> {
- if let Some(raw) = raw.strip_prefix('-') {
+pub fn builtin_parse_int(str: IStr) -> Result<f64> {
+ if let Some(raw) = str.strip_prefix('-') {
if raw.is_empty() {
throw!("integer only consists of a minus")
}
parse_nat::<10>(raw).map(|value| -value)
} else {
- if raw.is_empty() {
+ if str.is_empty() {
throw!("empty integer")
}
- parse_nat::<10>(raw.as_str())
+ parse_nat::<10>(str.as_str())
}
}
#[builtin]
-pub fn builtin_parse_octal(raw: IStr) -> Result<f64> {
- if raw.is_empty() {
+pub fn builtin_parse_octal(str: IStr) -> Result<f64> {
+ if str.is_empty() {
throw!("empty octal integer");
}
- parse_nat::<8>(raw.as_str())
+ parse_nat::<8>(str.as_str())
}
#[builtin]
-pub fn builtin_parse_hex(raw: IStr) -> Result<f64> {
- if raw.is_empty() {
+pub fn builtin_parse_hex(str: IStr) -> Result<f64> {
+ if str.is_empty() {
throw!("empty hexadecimal integer");
}
- parse_nat::<16>(raw.as_str())
+ parse_nat::<16>(str.as_str())
}
fn parse_nat<const BASE: u32>(raw: &str) -> Result<f64> {