Skip to main content

converge_optimization/suggestors/
mod.rs

1// Copyright 2024-2026 Reflective Labs
2// SPDX-License-Identifier: MIT
3
4use converge_pack::ProvenanceSource;
5
6/// Canonical provenance marker for `converge-optimization` fact-emitting
7/// suggestors. All in-tree suggestors in this crate share this provenance
8/// string; downstream extensions that build on `converge-optimization`
9/// declare their own `ProvenanceSource`.
10#[derive(Copy, Clone, Debug)]
11pub struct ConvergeOptimization;
12
13impl ProvenanceSource for ConvergeOptimization {
14    fn as_str(&self) -> &'static str {
15        "converge-optimization"
16    }
17}
18
19/// Canonical provenance const for [`ConvergeOptimization`].
20pub const CONVERGE_OPTIMIZATION_PROVENANCE: ConvergeOptimization = ConvergeOptimization;
21
22pub mod assignment;
23pub mod flow_optimization;
24pub mod formation;
25pub mod portfolio;
26pub mod task_scheduling;
27pub mod time_window_routing;
28pub mod work_schedule;
29
30pub use assignment::{AssignmentPlan, AssignmentRequest, AssignmentSuggestor};
31pub use flow_optimization::{FlowEdgeSpec, FlowOptimizationSuggestor, FlowPlan, FlowRequest};
32pub use formation::FormationAssemblySuggestor;
33pub use portfolio::{PortfolioItem, PortfolioRequest, PortfolioSelection, PortfolioSuggestor};
34pub use task_scheduling::{
35    GreedySchedulerSuggestor, SchedulingAgent, SchedulingPlan, SchedulingRequest, SchedulingTask,
36    TaskAssignment,
37};
38pub use time_window_routing::{
39    NearestNeighborTimeWindowRoutingSuggestor, RouteStop, VrptwCustomer, VrptwDepot, VrptwPlan,
40    VrptwRequest,
41};
42pub use work_schedule::{
43    SchedulePlan, ScheduleRequest, ScheduleTask, ScheduledTask, WorkScheduleSuggestor,
44};