Upgrade to the Rust 2024 edition (#2367)

* Update to rust 2024 edition

* Fixes

* Clean up imports

* Cargo fmt again

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Dennis Kobert
2025-03-13 01:29:12 +01:00
committed by GitHub
parent 927d7dd9b2
commit beb1c6ae64
253 changed files with 980 additions and 1371 deletions

View File

@@ -1,9 +1,9 @@
use std::{collections::HashMap, f64::consts::PI};
use crate::value::{Number, Value};
use lazy_static::lazy_static;
use num_complex::{Complex, ComplexFloat};
use std::collections::HashMap;
use std::f64::consts::PI;
use crate::value::{Number, Value};
type FunctionImplementation = Box<dyn Fn(&[Value]) -> Option<Value> + Send + Sync>;
lazy_static! {
pub static ref DEFAULT_FUNCTIONS: HashMap<&'static str, FunctionImplementation> = {

View File

@@ -1,9 +1,6 @@
use std::{
collections::HashMap,
ops::{Deref, DerefMut},
};
use crate::value::Value;
use std::collections::HashMap;
use std::ops::{Deref, DerefMut};
//TODO: editor integration, implement these traits for whatever is needed, maybe merge them if needed
pub trait ValueProvider {

View File

@@ -1,12 +1,9 @@
use crate::ast::{Literal, Node};
use crate::constants::DEFAULT_FUNCTIONS;
use crate::context::{EvalContext, FunctionProvider, ValueProvider};
use crate::value::{Number, Value};
use thiserror::Error;
use crate::{
ast::{Literal, Node},
constants::DEFAULT_FUNCTIONS,
context::{EvalContext, FunctionProvider, ValueProvider},
value::{Number, Value},
};
#[derive(Debug, Error)]
pub enum EvalError {
#[error("Missing value: {0}")]
@@ -49,14 +46,12 @@ impl Node {
#[cfg(test)]
mod tests {
use crate::{
ast::{BinaryOp, Literal, Node, UnaryOp},
context::{EvalContext, ValueMap},
value::Value,
};
use crate::ast::{BinaryOp, Literal, Node, UnaryOp};
use crate::context::{EvalContext, ValueMap};
use crate::value::Value;
macro_rules! eval_tests {
($($name:ident: $expected:expr => $expr:expr),* $(,)?) => {
($($name:ident: $expected:expr_2021 => $expr:expr_2021),* $(,)?) => {
$(
#[test]
fn $name() {

View File

@@ -21,16 +21,14 @@ pub fn evaluate(expression: &str) -> Result<(Result<Value, EvalError>, Unit), Pa
#[cfg(test)]
mod tests {
use value::Number;
use ast::Unit;
use super::*;
use ast::Unit;
use value::Number;
const EPSILON: f64 = 1e-10_f64;
macro_rules! test_end_to_end{
($($name:ident: $input:expr => ($expected_value:expr, $expected_unit:expr)),* $(,)?) => {
($($name:ident: $input:expr_2021 => ($expected_value:expr_2021, $expected_unit:expr_2021)),* $(,)?) => {
$(
#[test]
fn $name() {

View File

@@ -1,21 +1,15 @@
use std::num::{ParseFloatError, ParseIntError};
use crate::ast::{BinaryOp, Literal, Node, UnaryOp, Unit};
use crate::context::EvalContext;
use crate::value::{Complex, Number, Value};
use lazy_static::lazy_static;
use num_complex::ComplexFloat;
use pest::{
iterators::{Pair, Pairs},
pratt_parser::{Assoc, Op, PrattParser},
Parser,
};
use pest::Parser;
use pest::iterators::{Pair, Pairs};
use pest::pratt_parser::{Assoc, Op, PrattParser};
use pest_derive::Parser;
use std::num::{ParseFloatError, ParseIntError};
use thiserror::Error;
use crate::{
ast::{BinaryOp, Literal, Node, UnaryOp, Unit},
context::EvalContext,
value::{Complex, Number, Value},
};
#[derive(Parser)]
#[grammar = "./grammer.pest"] // Point to the grammar file
struct ExprParser;
@@ -321,7 +315,7 @@ fn parse_expr(pairs: Pairs<Rule>) -> Result<(Node, NodeMetadata), ParseError> {
mod tests {
use super::*;
macro_rules! test_parser {
($($name:ident: $input:expr => $expected:expr),* $(,)?) => {
($($name:ident: $input:expr_2021 => $expected:expr_2021),* $(,)?) => {
$(
#[test]
fn $name() {

View File

@@ -1,8 +1,6 @@
use std::f64::consts::PI;
use num_complex::ComplexFloat;
use crate::ast::{BinaryOp, UnaryOp};
use num_complex::ComplexFloat;
use std::f64::consts::PI;
pub type Complex = num_complex::Complex<f64>;