Expand description
§utf8proj-core
Core domain model and traits for the utf8proj scheduling engine.
This crate provides:
- Domain types:
Project,Task,Resource,Calendar,Schedule - Core traits:
Scheduler,WhatIfAnalysis,Renderer - Error types and result aliases
§Example
use utf8proj_core::{Project, Task, Resource, Duration};
let mut project = Project::new("My Project");
project.tasks.push(
Task::new("design")
.effort(Duration::days(5))
.assign("dev")
);
project.tasks.push(
Task::new("implement")
.effort(Duration::days(10))
.depends_on("design")
.assign("dev")
);
project.resources.push(Resource::new("dev").capacity(1.0));Structs§
- Assignment
- Resource assignment for a specific period
- Calendar
- Working time definitions
- Calendar
Exception - Calendar exception (override for specific dates)
- Calendar
Impact - Impact of calendar on task scheduling
- Collecting
Emitter - A simple diagnostic emitter that collects diagnostics into a Vec
- Conflict
- Scheduling conflict
- Constraint
Effect - Effect of a temporal constraint on task scheduling
- Cost
Range - Cost range for scheduled tasks (RFC-0001)
- Dependency
- Task dependency with type and lag
- Diagnostic
- A diagnostic message emitted during analysis or scheduling
- Duration
- Duration in working time
- Explanation
- Explanation of a scheduling decision
- Feasibility
Result - Result of feasibility check
- Holiday
- Holiday definition
- Money
- Monetary amount with currency
- Project
- A complete project definition
- Rate
Range - Rate range for abstract resource profiles (RFC-0001)
- Resource
- A person or equipment that can be assigned to tasks
- Resource
Profile - Abstract resource profile for planning (RFC-0001)
- Resource
Ref - Reference to a resource with allocation units
- Scenario
- Alternative scenario for what-if analysis
- Schedule
- The result of scheduling a project
- Scheduled
Task - A task with computed schedule information
- Scheduling
Capabilities - Capabilities available for a given scheduling mode
- Source
Span - Source location span for diagnostic highlighting
- Status
Classifier - Classifies tasks by progress percentage into workflow stages.
- Suggestion
- Suggestion for resolving issues
- Task
- A schedulable unit of work
- Time
Range - Time range within a day (in minutes from midnight)
- Trait
- A trait that modifies resource rates (RFC-0001)
- What
IfReport - Result of what-if analysis
Enums§
- Conflict
Type - Constraint
- Constraint for what-if analysis
- Constraint
Effect Type - Type of effect a constraint has on scheduling
- Cost
Policy - Policy for calculating expected cost from ranges (RFC-0001)
- Dependency
Type - Types of task dependencies
- Diagnostic
Code - Diagnostic code identifying the specific diagnostic type
- Render
Error - Rendering error
- Resource
Rate - Resource rate that can be either fixed or a range (RFC-0001)
- Scenario
Override - Override for a scenario
- Schedule
Error - Scheduling error
- Scheduling
Mode - Scheduling mode classification for capability awareness
- Severity
- Diagnostic severity level
- Task
Constraint - Constraint on task scheduling
- Task
Status - Task status for progress tracking
Traits§
- Classifier
- Classifiers discretize continuous task attributes into categorical labels.
- Diagnostic
Emitter - Trait for receiving diagnostic messages
- Renderer
- Output rendering
- Scheduler
- Core scheduling abstraction
- What
IfAnalysis - What-if analysis capabilities (typically BDD-powered)
Functions§
- group_
by - Groups tasks by classifier categories.
Type Aliases§
- Calendar
Id - Unique identifier for a calendar
- Profile
Id - Unique identifier for a resource profile
- Resource
Id - Unique identifier for a resource
- TaskId
- Unique identifier for a task
- TraitId
- Unique identifier for a trait