Skip to main content

axiolid_curve_evaluate_contract/
lib.rs

1#![forbid(unsafe_code)]
2//! Portable curve-evaluation contract and conformance suite.
3//!
4//! Curve evaluation was the only kernel capability without a contract,
5//! so a consumer that wanted to ask for a point at a distance had to
6//! depend on a specific engine. This crate lets the capability be NAMED
7//! without binding an implementation to it.
8//!
9//! See `docs/adr/0063-curve-evaluation-contract.md`.
10
11pub mod conformance;
12mod contract;
13mod convention;
14mod measure;
15
16pub use axiolid_contracts::{
17    Backend, BackendDescriptor, BackendId, Determinism, ExecutionTarget, GeomError, GeomResult,
18    Operation,
19};
20pub use contract::CurveEvaluator;
21pub use convention::DistanceConvention;
22pub use measure::CurveMeasure;
23
24/// Capability this contract names.
25pub const CAPABILITY_ID: axiolid_contracts::CapabilityId =
26    axiolid_contracts::capability_ids::CURVE_EVALUATE;