DiagnosticCode

Enum DiagnosticCode 

Source
pub enum DiagnosticCode {
Show 37 variants E001CircularSpecialization, E002ProfileWithoutRate, E003InfeasibleConstraint, R102InvertedRateRange, R104UnknownProfile, C001ZeroWorkingHours, C002NoWorkingDays, W001AbstractAssignment, W002WideCostRange, W003UnknownTrait, R012TraitMultiplierStack, W004ApproximateLeveling, W005ConstraintZeroSlack, W006ScheduleVariance, W007UnresolvedDependency, W014ContainerDependency, C010NonWorkingDay, C011CalendarMismatch, H001MixedAbstraction, H002UnusedProfile, H003UnusedTrait, H004TaskUnconstrained, C020LowAvailability, C021MissingCommonHoliday, C022SuspiciousHours, C023RedundantHoliday, I001ProjectCostSummary, I002RefinementProgress, I003ResourceUtilization, I004ProjectStatus, I005EarnedValueSummary, L001OverallocationResolved, L002UnresolvableConflict, L003DurationIncreased, L004MilestoneDelayed, P005RemainingCompleteConflict, P006ContainerProgressMismatch,
}
Expand description

Diagnostic code identifying the specific diagnostic type

Codes are stable identifiers used for:

  • Machine-readable output (JSON)
  • Documentation references
  • Suppression/filtering

Naming convention: {Severity prefix}{Number}{Description}

Variants§

§

E001CircularSpecialization

Circular specialization in profile inheritance chain

§

E002ProfileWithoutRate

Profile has no rate and is used in cost-bearing assignments

§

E003InfeasibleConstraint

Task constraint cannot be satisfied (ES > LS)

§

R102InvertedRateRange

Rate range is inverted (min > max) - RFC-0004 R102

§

R104UnknownProfile

Unknown profile referenced in specialization - RFC-0004 R104

§

C001ZeroWorkingHours

Calendar has no working hours defined

§

C002NoWorkingDays

Calendar has no working days defined

§

W001AbstractAssignment

Task assigned to abstract profile instead of concrete resource

§

W002WideCostRange

Task cost range spread exceeds threshold

§

W003UnknownTrait

Profile references undefined trait

§

R012TraitMultiplierStack

Trait multiplier stack exceeds 2.0 - RFC-0004 R012

§

W004ApproximateLeveling

Resource leveling could not fully resolve all conflicts

§

W005ConstraintZeroSlack

Task constraint reduces slack to zero (now on critical path)

§

W006ScheduleVariance

Task is slipping beyond threshold (forecast > baseline)

§

W007UnresolvedDependency

Dependency references a task that does not exist

§

W014ContainerDependency

Container has dependencies but child task has none (MS Project compatibility)

§

C010NonWorkingDay

Task scheduled on non-working day

§

C011CalendarMismatch

Task and assigned resource use different calendars

§

H001MixedAbstraction

Task has both concrete and abstract assignments

§

H002UnusedProfile

Profile is defined but never assigned

§

H003UnusedTrait

Trait is defined but never referenced

§

H004TaskUnconstrained

Task has no predecessors or date constraints (dangling/orphan task)

§

C020LowAvailability

Calendar has low availability (< 40% working days)

§

C021MissingCommonHoliday

Calendar is missing common holiday

§

C022SuspiciousHours

Calendar has suspicious working hours (e.g., 24/7)

§

C023RedundantHoliday

Holiday falls on non-working day (redundant)

§

I001ProjectCostSummary

Project scheduling summary

§

I002RefinementProgress

Refinement progress status

§

I003ResourceUtilization

Resource utilization summary

§

I004ProjectStatus

Project status summary (overall progress and variance)

§

I005EarnedValueSummary

Earned value summary (EV, PV, SPI)

§

L001OverallocationResolved

Resource overallocation resolved by delaying task

§

L002UnresolvableConflict

Unresolvable resource conflict (demand > capacity after leveling)

§

L003DurationIncreased

Project duration increased due to leveling

§

L004MilestoneDelayed

Milestone delayed due to leveling

§

P005RemainingCompleteConflict

Explicit remaining conflicts with linear derivation from complete%

§

P006ContainerProgressMismatch

Container’s explicit progress conflicts with weighted children average

Implementations§

Source§

impl DiagnosticCode

Source

pub fn as_str(&self) -> &'static str

Returns the short code string (e.g., “E001”, “W002”)

Source

pub fn default_severity(&self) -> Severity

Returns the default severity for this diagnostic code

Source

pub fn ordering_priority(&self) -> u8

Returns the diagnostic ordering priority (lower = emitted first)

Ordering: Errors → Cost warnings → Assignment warnings → Hints → Info

Trait Implementations§

Source§

impl Clone for DiagnosticCode

Source§

fn clone(&self) -> DiagnosticCode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DiagnosticCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for DiagnosticCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for DiagnosticCode

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DiagnosticCode

Source§

fn eq(&self, other: &DiagnosticCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for DiagnosticCode

Source§

impl Eq for DiagnosticCode

Source§

impl StructuralPartialEq for DiagnosticCode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.