Expand description
BicMath core: the shared numerical contract.
This crate owns:
number: exact integers, rationals, decimals, and explicitf64.value: the recursive wire value model (quantities, money, matrices).error: stable error codes and structured errors.limits: resource limits and cooperative cancellation.context: execution and numeric contexts.schema: typed parameter/output schemas and validation.contract: module and function descriptors, thecontract::Functiontrait.envelope: the versioned result envelope.fingerprint: canonical encoding, fingerprints, and replay receipts.expr: the restricted expression grammar and parser (no function resolution).
No transport, async runtime, filesystem, clock, or network code lives here.
Re-exports§
pub use context::Budget;pub use context::EffectiveContext;pub use context::ExecContext;pub use context::TraceLevel;pub use contract::Args;pub use contract::Assumption;pub use contract::CostClass;pub use contract::Determinism;pub use contract::ErrorEstimate;pub use contract::Example;pub use contract::ExampleExpectation;pub use contract::Function;pub use contract::FunctionDescriptor;pub use contract::FunctionRef;pub use contract::Module;pub use contract::ModuleDescriptor;pub use contract::Outcome;pub use contract::ParamDescriptor;pub use contract::Purity;pub use contract::Trace;pub use contract::TraceStep;pub use contract::Warning;pub use envelope::EngineInfo;pub use envelope::ErrorResponse;pub use envelope::Exactness;pub use envelope::ResultEnvelope;pub use error::EngineError;pub use error::ErrorCode;pub use eval::FloatCalls;pub use eval::NumberCalls;pub use eval::SimpleCalls;pub use eval::evaluate_f64;pub use eval::evaluate_number;pub use expr::Expr;pub use expr::parse_expression;pub use fingerprint::Receipt;pub use fingerprint::canonical_json_bytes;pub use fingerprint::fingerprint_json;pub use limits::CancellationToken;pub use limits::Limits;pub use limits::LimitsOverride;pub use number::NumericContext;pub use number::Decimal;pub use number::Float64;pub use number::Number;pub use number::NumberResult;pub use number::NumericMode;pub use number::RoundingMode;pub use schema::FieldSchema;pub use schema::ValueSchema;pub use value::Bound;pub use value::Dimension;pub use value::Value;
Modules§
- context
- Execution and effective numeric contexts.
- contract
- Module and function contracts, invocation arguments, and outcomes.
- envelope
- The versioned result envelope shared by every adapter.
- error
- Stable error codes and structured errors.
- eval
- Shared restricted-expression evaluators.
- expr
- The restricted expression grammar and parser.
- fingerprint
- Canonical encoding, deterministic fingerprints, and replay receipts.
- limits
- Resource limits and cooperative cancellation.
- number
- Numeric representations and the promotion/conversion contract.
- schema
- Typed parameter and output schemas with shared validation semantics.
- value
- The recursive wire value model.
Constants§
- NUMERICAL_
POLICY_ VERSION - Version of the numerical policy semantics (rounding defaults, promotion rules, quantile conventions). Bump this whenever a semantic change could alter a downstream financial or statistical result, even if Rust types are unchanged.
- VERSION
- Crate version, as compiled.
- WIRE_
SCHEMA_ VERSION - Version of the public wire schema produced by this engine.