use solverforge_config::SolverConfig as FacadeSolverConfig;
#[inline]
pub fn init_console() {
#[cfg(feature = "console")]
solverforge_console::init();
}
#[inline]
pub fn load_solver_config() -> FacadeSolverConfig {
FacadeSolverConfig::load("solver.toml").unwrap_or_default()
}
pub use solverforge_macros::{PlanningEntityImpl, PlanningSolutionImpl, ProblemFactImpl};
pub use solverforge_core::domain::{
EntityCollectionExtractor, EntityDescriptor, PlanningEntity, PlanningId, PlanningSolution,
ProblemFact, ProblemFactDescriptor, ShadowVariableKind, SolutionDescriptor, ValueRangeType,
VariableDescriptor,
};
pub use solverforge_scoring::{Director, ScoreDirector, ShadowVariableSupport, SolvableSolution};
pub use tokio::sync::mpsc::UnboundedSender;
pub use solverforge_solver::builder::ListContext;
pub use solverforge_solver::heuristic::selector::{
DefaultCrossEntityDistanceMeter, DefaultDistanceMeter, FromSolutionEntitySelector,
};
pub use solverforge_solver::manager::{
KOptPhaseBuilder, ListConstructionPhaseBuilder, PhaseFactory, SolverFactory,
};
pub use solverforge_solver::scope::{ProgressCallback, SolverScope};
pub use solverforge_solver::{
build_phases, descriptor_has_bindings, log_solve_start, run_solver, run_solver_with_config,
ListConstructionArgs, ListVariableEntity, ListVariableMetadata, PhaseSequence, SolverEvent,
SolverRuntime, SolverTelemetry, UnifiedRuntimePhase,
};
pub use solverforge_config::{PhaseConfig, SolverConfig};
pub use solverforge_scoring::stream::filter::{AndUniFilter, FnUniFilter, TrueFilter, UniFilter};
pub use solverforge_scoring::stream::{UniConstraintBuilder, UniConstraintStream};