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§
- Analysis
Config - 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.