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::{DynamicListAccess, DynamicModelBackend, DynamicScalarAccess};
16pub use ids::{EntityClassId, ProblemFactClassId, VariableId};
17pub use runner::run_dynamic_solver_with_config;
18pub use score::{scoped_dynamic_score_family, DynamicScore, DynamicScoreFamily};
19pub use slots::{DynamicListVariableSlot, DynamicScalarVariableSlot};
20
21#[cfg(test)]
22mod backend_tests;
23#[cfg(test)]
24mod score_tests;