utf8proj-solver 0.9.1

Scheduling solver for utf8proj (CPM, resource leveling)
Documentation

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"));