Skip to main content

InitiativeConfiguration

Struct InitiativeConfiguration 

Source
pub struct InitiativeConfiguration {
    pub name: String,
    pub outcome: Option<String>,
    pub owner: Option<String>,
    pub status: Option<String>,
    pub priority: Option<Priority>,
    pub labels: Vec<String>,
    pub target_date: Option<String>,
    pub projects: Vec<String>,
    pub epics: Vec<String>,
    pub milestones: Vec<String>,
    pub extensions: InitiativeExtensions,
}
Expand description

An initiative record ([initiatives.<initiative-id>] in tix.toml).

Mission roadmap-initiatives-01M3C8SX (WP01). The third stable-ID record, after ProjectConfiguration and EpicConfiguration: the InitiativeId is the map key and name is a mutable display label, so a rename leaves every association and derived figure intact (C-002). The section is omitted entirely when there are no initiatives, so a legacy tix.toml is byte-untouched (C-001).

§Preserved extensions — deliberately unlike its siblings

This record does not set deny_unknown_fields. The data model lists extensions as preserved unknown data, so an unknown key is carried through InitiativeExtensions and round-trips unchanged rather than making tix.toml unreadable. The trade-off: a typo’d key is preserved rather than refused here, which is the cost of the forward-compatibility guarantee — the siblings that deny unknown fields pay the opposite cost.

§Metadata is not issue state

status and priority are initiative metadata, not an issue’s board column or priority: status is free-form exactly like ProjectConfiguration::status, and priority reuses crate::model::Priority because its serde shape is a plain string that round-trips an unknown value verbatim (a known spelling is normalized to lowercase, the same rule issues already use). owner is an identity string with no lookup, never inferred from anything.

§Associations are explicit, shape-checked, and never resolved here

projects are project ids, epics are epic ids, and milestones are the names the existing milestone registry uses — the same id/name asymmetry the epic contract records. Every entry is validated for shape only: whether its target exists is resolved by the service (WP03) and diagnosed by tix lint, so a dangling reference stays loadable and repairable (C-005). A repeated entry is idempotent (see crate::roadmap::registry).

Fields§

§name: String

Display label. Required and unique within the registry (case-folded), so selection is unambiguous — but never the identity, which is the map key.

§outcome: Option<String>

Optional strategic outcome.

§owner: Option<String>

Optional owner identity string; no lookup, never inferred from anything.

§status: Option<String>

Optional initiative status (free-form; not a board column, not a category).

§priority: Option<Priority>

Optional initiative priority (see crate::model::Priority).

§labels: Vec<String>

Filterable labels; a repeat collapses to one on the write path.

§target_date: Option<String>

Optional calendar target (YYYY-MM-DD).

§projects: Vec<String>

Project ids this initiative concerns; shape checked here, existence not.

§epics: Vec<String>

Epic ids this initiative concerns; shape checked here, existence not.

§milestones: Vec<String>

Milestone names this initiative concerns (the name-keyed reference).

§extensions: InitiativeExtensions

Unknown metadata, preserved verbatim (see the type-level note).

Trait Implementations§

Source§

impl Clone for InitiativeConfiguration

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for InitiativeConfiguration

Source§

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

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

impl Default for InitiativeConfiguration

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for InitiativeConfiguration

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for InitiativeConfiguration

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for InitiativeConfiguration

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for InitiativeConfiguration

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.