Crate utf8proj_solver

Crate utf8proj_solver 

Source
Expand description

§utf8proj-solver

Scheduling solver implementing Critical Path Method (CPM) and resource leveling.

This crate provides:

  • Forward/backward pass scheduling
  • Critical path identification
  • Resource-constrained scheduling
  • Slack/float calculations

§Example

use utf8proj_core::{Project, Task, Duration};
use utf8proj_solver::CpmSolver;
use utf8proj_core::Scheduler;

let mut project = Project::new("Test");
project.tasks.push(Task::new("task1").effort(Duration::days(5)));
project.tasks.push(Task::new("task2").effort(Duration::days(3)).depends_on("task1"));

let solver = CpmSolver::new();
let schedule = solver.schedule(&project).unwrap();
assert!(schedule.tasks.contains_key("task1"));

Re-exports§

pub use bdd::BddConflictAnalyzer;
pub use bdd::BddStats;
pub use bdd::ConflictAnalysis;
pub use bdd::ConflictResolution;
pub use bdd::ResourceConflict;
pub use bdd::ShiftDirection;
pub use leveling::calculate_utilization;
pub use leveling::detect_overallocations;
pub use leveling::level_resources;
pub use leveling::level_resources_with_options;
pub use leveling::LevelingMetrics;
pub use leveling::LevelingOptions;
pub use leveling::LevelingReason;
pub use leveling::LevelingResult;
pub use leveling::LevelingStrategy;
pub use leveling::OverallocationPeriod;
pub use leveling::ResourceTimeline;
pub use leveling::ResourceUtilization;
pub use leveling::ShiftedTask;
pub use leveling::UnresolvedConflict;
pub use leveling::UtilizationSummary;

Modules§

bdd
BDD-based resource conflict detection and resolution
cpm
Critical Path Method Implementation
dag
Dependency graph construction and validation
leveling
Resource Leveling Algorithm

Structs§

AnalysisConfig
Configuration for diagnostic analysis
CpmSolver
CPM-based scheduler

Functions§

analyze_project
Analyze a project and emit diagnostics
classify_scheduling_mode
Classify the scheduling mode of a project based on its characteristics
filter_task_diagnostics
Filter diagnostics relevant to a specific task
fix_container_dependencies
Fix container dependency issues (W014) by propagating container dependencies to children.