Skip to main content

sim_lib_numbers_core/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(missing_docs)]
3
4//! Shared substrate for scalar number domains: the number-value shape and
5//! browse table ([`value_shape`]), the shared number-literal shape and class
6//! ([`literal`]), and the scalar-domain spec, literal matcher, and op-loop
7//! installer ([`scalar`]). The canonical number-domain symbol registry and
8//! promotion-lattice documentation live in [`domains`].
9
10pub mod domains;
11pub mod literal;
12pub mod scalar;
13pub mod value_shape;
14
15pub use literal::{
16    NumberLiteralClass, NumberLiteralShape, class_surface_or_symbol, shape_surface_or_symbol,
17};
18pub use scalar::{
19    DomainLiteralMatcher, ScalarBinaryOp, ScalarDomainSpec, ScalarLiteralMatcher, ScalarOps,
20    ScalarReductionOp, ScalarUnaryOp, install_scalar_ops, number_domain_class_stub,
21};
22pub use value_shape::{
23    DomainNumberValueShape, NumberDomainTableSpec, assert_value_shape_symbol, number_domain_table,
24    value_shape_symbol,
25};
26
27#[cfg(test)]
28mod tests;