pub use solverforge_macros::{planning_entity, planning_solution, problem_fact};
pub use solverforge_macros::{PlanningEntityImpl, PlanningSolutionImpl, ProblemFactImpl};
pub use solverforge_core::score::{
BendableScore, HardMediumSoftScore, HardSoftDecimalScore, HardSoftScore, Score, SoftScore,
};
pub use solverforge_scoring::{
ConstraintSet, IncrementalBiConstraint, IncrementalConstraint, IncrementalUniConstraint,
};
pub mod stream {
pub use solverforge_scoring::stream::collection_extract::vec;
pub use solverforge_scoring::stream::collection_extract::{CollectionExtract, VecExtract};
pub use solverforge_scoring::stream::{joiner, ConstraintFactory};
}
pub use solverforge_scoring::{Director, ScoreDirector};
pub use solverforge_solver::heuristic::selector::DefaultDistanceMeter;
pub use solverforge_solver::CrossEntityDistanceMeter;
pub use solverforge_solver::{
analyze, run_solver, Analyzable, ConstraintAnalysis, ScoreAnalysis, Solvable, SolverEvent,
SolverEventMetadata, SolverLifecycleState, SolverManager, SolverManagerError, SolverRuntime,
SolverSnapshot, SolverSnapshotAnalysis, SolverStatus, SolverTelemetry, SolverTerminalReason,
};
pub mod cvrp {
pub use solverforge_cvrp::{
capacity, depot_for_cw, depot_for_entity, distance, element_load, get_route,
is_kopt_feasible, is_time_feasible, replace_route, MatrixDistanceMeter,
MatrixIntraDistanceMeter, ProblemData, VrpSolution,
};
}
#[cfg(feature = "console")]
pub use solverforge_console as console;
pub mod prelude {
pub use crate::stream::{joiner, ConstraintFactory};
pub use crate::{
planning_entity, planning_solution, problem_fact, BendableScore, ConstraintSet, Director,
HardMediumSoftScore, HardSoftDecimalScore, HardSoftScore, Score, ScoreDirector, SoftScore,
};
}
#[doc(hidden)]
pub mod __internal {
#[inline]
pub fn init_console() {
#[cfg(feature = "console")]
solverforge_console::init();
}
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, 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};
}