#![warn(clippy::mod_module_files)]
#![warn(missing_docs)]
mod dim;
mod diag;
mod eval;
mod fmt;
mod lexer;
mod packs;
mod parser;
mod quantity;
mod registry;
mod resolver;
pub use diag::{Diag, Diagnostic, ErrorCode, Hint, LintCode, Severity, Span};
pub use dim::{BaseDim, CustomDimId, Dimension};
pub use eval::{eval, eval_checked, EvalOutcome, LintSink, Mag, Value};
pub use eval::units::convert_quantity;
pub use eval::value::{ConstraintSet, EquationProvenance, Quantity, SymBinaryOp, SymExpr, SymNode, SymUnaryOp, Symbol};
pub use fmt::{format_quantity, FmtOptions};
pub use lexer::{lex, lex_checked, LexOutcome, LexSpan, SpannedToken, Token};
pub use parser::{parse, parse_checked, BinaryOp, Callee, CallArg, CmpOp, Expr, ExprKind, ExprNode, NodeId, ParseOutcome, UnaryOp};
pub use quantity::{UnitExpr, UnitExponent};
pub use registry::{Registry, RegistryBuilder};
pub use resolver::{EmptyResolver, MapResolver, Resolver};
pub use packs::equation::{EquationRecord, EquationRegistry};
#[cfg(feature = "packs")]
pub use packs::{load_packs, load_packs_into, DEMO_PACK_TOML};
#[cfg(feature = "parallel")]
pub use eval::{eval_batch, eval_scenarios, PARALLEL_THRESHOLD};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
#[cfg(test)]
mod send_sync {
use super::*;
use std::sync::Arc;
const fn assert_send_sync<T: Send + Sync + ?Sized>() {}
#[test]
fn public_types_are_send_sync() {
assert_send_sync::<Dimension>();
assert_send_sync::<Quantity>();
assert_send_sync::<Value>();
assert_send_sync::<Diag>();
assert_send_sync::<Diagnostic>();
assert_send_sync::<Registry>();
assert_send_sync::<Expr>();
assert_send_sync::<Arc<Registry>>();
assert_send_sync::<Arc<Expr>>();
assert_send_sync::<SpannedToken>();
assert_send_sync::<Token>();
assert_send_sync::<dyn Resolver>();
}
}