Skip to main content

EpicCommand

Enum EpicCommand 

Source
pub enum EpicCommand {
    Create {
        name: String,
        description: Option<String>,
        status: Option<String>,
        owner: Option<String>,
        start_date: Option<String>,
        due_date: Option<String>,
        weight: Option<String>,
        projects: Option<String>,
        milestone: Option<String>,
        cycle: Option<String>,
    },
    Edit {
        reference: String,
        name: Option<String>,
        description: Option<String>,
        status: Option<String>,
        owner: Option<String>,
        start_date: Option<String>,
        due_date: Option<String>,
        weight: Option<String>,
        parent: Option<String>,
        projects: Option<String>,
        milestone: Option<String>,
        cycle: Option<String>,
    },
    List,
    Show {
        reference: String,
    },
    Navigate {
        reference: String,
    },
    Delete {
        reference: String,
        yes: bool,
    },
    Add {
        reference: String,
        issues: Vec<String>,
    },
    Remove {
        reference: String,
        issues: Vec<String>,
    },
    BulkAdd {
        reference: String,
        issues: Vec<String>,
    },
}
Expand description

The tix epic subcommands (mission epics-work-items-01M3BYW4, WP05).

A required subcommand, like tix project. Selection is by the stable id (the registry key); a name resolves to the same epic as a convenience. A work item is an ordinary issue (tix create --epics, tix edit --add-epic), so there is no task verb here.

Variants§

§

Create

Create an epic and allocate a stable id

The name is a display label, not the identity: tix epic edit --name changes it and every issue reference survives, because issues reference the id.

Fields

§name: String

Display name (unique within the registry, case-insensitively)

§description: Option<String>

Long-form context

§status: Option<String>

Free-form epic status (not a board column, not a category)

§owner: Option<String>

Owner identity string

§start_date: Option<String>

Start date (YYYY-MM-DD)

§due_date: Option<String>

Due date (YYYY-MM-DD); must be >= start-date

§weight: Option<String>

Positive relative size, used by the epic rollup

allow_hyphen_values so --weight -5 reaches the service’s invalid_weight refusal rather than being swallowed by clap as an unknown flag — the same invalid input must report one thing whichever spelling is used.

§projects: Option<String>

Project ids this epic concerns, comma-separated

Shape-checked only, never resolved: a well-formed id the registry does not hold is stored and diagnosed by tix lint, so it is repairable.

§milestone: Option<String>

Milestone name; stored verbatim, never resolved

§cycle: Option<String>

Cycle name; stored verbatim, never resolved

§

Edit

Edit an epic’s fields; a rename changes the label only

Nothing is re-keyed, so every issue reference and derived figure stays intact. A blank optional value clears the field (--owner "").

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§name: Option<String>

New display name

§description: Option<String>

New long-form context (--description "" clears)

§status: Option<String>

New free-form status (--status "" clears)

§owner: Option<String>

New owner identity string (--owner "" clears)

§start_date: Option<String>

New start date (--start-date "" clears)

§due_date: Option<String>

New due date (--due-date "" clears)

§weight: Option<String>

New positive relative size (--weight "" clears)

allow_hyphen_values so --weight -5 reaches the service’s invalid_weight refusal rather than clap’s unknown-flag error.

§parent: Option<String>

Set or change the parent epic; --parent "" detaches it

Validated by the epic service before any write, so a self-parent or a cycle-closing change leaves the registry byte-identical.

§projects: Option<String>

Replace the whole project list, comma-separated (--projects "" clears)

Shape-checked only, never resolved: a dangling but well-formed id is stored and diagnosed by tix lint.

§milestone: Option<String>

New milestone name (--milestone "" clears); stored verbatim

§cycle: Option<String>

New cycle name (--cycle "" clears); stored verbatim

§

List

List epics in declaration order, with ids, member and child counts

§

Show

Show one epic’s record, hierarchy, progress and members

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§

Navigate

Navigate an epic’s hierarchy: parent, children, ancestors and depth

Direct issue navigation stays available: the member list is included and a member is an ordinary issue, reachable with tix show <number>.

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§

Delete

Delete an epic’s registry entry (its issues and child epics are never deleted)

The issues that referenced the epic keep their references and the child epics keep their parent reference; both are reported so the dangling references can be repaired deliberately.

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§yes: bool

Confirm without prompting

§

Add

Reference an epic from one or more issues

Each selector is processed independently: a rejection on one is reported and does not abort the rest.

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§issues: Vec<String>

Issue numbers, filename fragments or unique title fragments

§

Remove

Remove an epic reference from one or more issues

Drops only the reference; no issue is deleted. A reference that does not name a live epic is used verbatim, so a retained stale id can still be removed and is reported as 0 changed rather than refused.

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§issues: Vec<String>

Issue numbers, filename fragments or unique title fragments

§

BulkAdd

Bulk-reference one or more issues from an epic

Epic reference only — general bulk editing is a different feature. Every selector is independent, so one unknown selector does not discard the rest. An unknown epic reference refuses the whole command before anything is written; use tix epic remove to drop a retained stale id.

Fields

§reference: String

Epic id (a name is accepted as a convenience)

§issues: Vec<String>

Issue numbers, filename fragments or unique title fragments

Trait Implementations§

Source§

impl FromArgMatches for EpicCommand

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

impl Subcommand for EpicCommand

Source§

fn augment_subcommands<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

fn has_subcommand(__clap_name: &str) -> bool

Test whether Self can parse a specific subcommand

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> 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, 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.