Skip to main content

solverforge_bridge/
lib.rs

1//! Public dynamic bridge contracts for host-language SolverForge bindings.
2//!
3//! The bridge crate is intentionally separate from the macro path. Rust models
4//! keep using monomorphized descriptors, slots, and constraint sets. Binding
5//! crates use this crate to describe logical model identity and Rust-owned
6//! dynamic state without pretending that one host-language entity class maps to
7//! one concrete Rust entity type.
8
9mod backend;
10mod ids;
11mod runner;
12mod score;
13mod slots;
14
15pub use backend::{
16    DynamicListAccess, DynamicListAccessCapabilities, DynamicListMetadata,
17    DynamicListMetadataCapabilities, DynamicModelBackend, DynamicScalarAccess,
18    DynamicScalarAssignmentMetadata, DynamicScalarAssignmentMetadataCapabilities,
19};
20pub use ids::{EntityClassId, ProblemFactClassId, VariableId};
21pub use runner::try_run_dynamic_solver_with_config_parts;
22pub use score::{scoped_dynamic_score_family, DynamicScore, DynamicScoreFamily};
23pub use slots::{DynamicListVariableSlot, DynamicScalarVariableSlot};
24
25#[cfg(test)]
26mod backend_tests;
27#[cfg(test)]
28mod score_tests;