Skip to main content

Crate bicmath_core

Crate bicmath_core 

Source
Expand description

BicMath core: the shared numerical contract.

This crate owns:

  • number: exact integers, rationals, decimals, and explicit f64.
  • 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, the contract::Function trait.
  • 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.