LevelingOptions#
Options for a leveling run. Pass them to Project::level, or set them as level in EvaluateOptions and SuggestOptions to score candidates at the leveled stage. LevelingOptions::default() levels the whole project with the standard order. Override single fields with struct update syntax.
Declaration#
Fields#
scope#
pub scope:
Resources whose contention is resolved, tasks that may move, and the date range that triggers leveling. None covers the whole project.
Default: None.
basis#
pub basis:
Bucket size for detecting overallocation. None derives it from SchedulingConfig::duration_unit: Day for a day unit, Hour for hour and minute.
Default: None.
order#
pub order: LevelingOrder
Order in which contenders are picked to move.
Default: LevelingOrder::Standard.
within_slack_only#
pub within_slack_only: bool
true never moves a task past its total slack, so the project end of the base plan doesn't move. A window that can't be cleared this way stays with reason slack-exhausted.
Default: false.
clear_first#
pub clear_first: bool
true resets leveling_delay and pauses on in-scope tasks before leveling. false keeps them, and leveling adds to them.
Default: true.
allow_splits#
pub allow_splits: bool
true lets leveling split a task by adding or extending pauses. false makes every correction a whole-task leveling_delay; existing pauses are kept unless clear_first clears them.
Default: true.
step#
pub step: LevelingStep
How far one correction moves a task.
Default: LevelingStep::Minimal.
See Project::level for the errors.
Example#
use ;
Related#
LevelingResult- what a leveling run with these options returnsLevelingScope- the type ofscopeEvaluateOptions- takes these options to score candidates at the leveled stage- Leveling Resources - walks through each option on a sample plan
- Evaluating Alternatives - compares candidates after leveling