essential_check/lib.rs
1//! Core logic for validating [`Predicate`][crate::types::predicate::Predicate]s,
2//! [`SolutionSet`][crate::types::solution::SolutionSet]s and
3//! [`Solution`][crate::types::solution::Solution]s against their associated predicates.
4//!
5//! Typical usage is to first validate predicates and solutions independently in
6//! full prior to validating against one another with `solution::check_set_predicates`.
7//!
8//! ## Predicate Validation
9//!
10//! - [`predicate::check_signed_contract`] validates a signed contract.
11//! - [`predicate::check_contract`] validates a contract.
12//! - [`predicate::check`] validate an individual predicate.
13//!
14//! ## Solution Validation
15//!
16//! - [`solution::check_set`] validates a solution set.
17//! - [`solution::check_solutions`] validates a solution set's `solutions` slice.
18//! - [`solution::check_set_state_mutations`] validates a solution's state mutation slice.
19//!
20//! ## Solution + Predicate Validation
21//!
22//! - [`solution::check_set_predicates`] validates a set of solutions against their associated predicates.
23//! - [`solution::check_predicate`] validates a single solution against its associated predicate.
24
25#![deny(missing_docs)]
26#![deny(unsafe_code)]
27
28#[doc(inline)]
29pub use essential_sign as sign;
30#[doc(inline)]
31pub use essential_types as types;
32#[doc(inline)]
33pub use essential_vm as vm;
34
35pub mod predicate;
36pub mod solution;