Skip to main content

CommandSpec

Struct CommandSpec 

Source
pub struct CommandSpec {
Show 14 fields pub name: String, pub short: String, pub long: Option<String>, pub aliases: Vec<String>, pub hidden: bool, pub system: Option<String>, pub default_fields: Option<String>, pub no_auth: bool, pub auth_provider: Option<String>, pub tier: Option<Tier>, pub mutates: bool, pub auth_metadata: BTreeMap<String, String>, pub args: Vec<Arg>, pub output_schema: Option<SchemaInfo>,
}
Expand description

Declarative leaf command metadata and parser arguments.

CommandSpec intentionally keeps command metadata next to the command’s handler. This is the primary copy/paste surface for teams adding commands.

Fields§

§name: String

Leaf command name.

§short: String

One-line command description.

§long: Option<String>

Optional long help text.

§aliases: Vec<String>

Alternate command names accepted by the parser.

§hidden: bool

Whether the command runs but is hidden from help, tree, and search.

§system: Option<String>

Backend/system id used in output metadata and generic error envelopes.

§default_fields: Option<String>

Default comma-separated field projection.

§no_auth: bool

Whether the command bypasses credential resolution.

§auth_provider: Option<String>

Auth provider name for this command.

§tier: Option<Tier>

Risk tier used by authentication, authorization, and dry-run.

§mutates: bool

Explicit dry-run prompt marker for commands without a tier.

§auth_metadata: BTreeMap<String, String>

Provider-specific auth metadata.

§args: Vec<Arg>

Command-specific clap arguments.

§output_schema: Option<SchemaInfo>

Optional output schema published through --schema and help.

Implementations§

Source§

impl CommandSpec

Source

pub fn new(name: impl Into<String>, short: impl Into<String>) -> Self

Creates a command spec with the required name and one-line help.

Source

pub fn from_args<T: Args>( name: impl Into<String>, short: impl Into<String>, ) -> Self

Creates a command spec from a #[derive(clap::Args)] struct.

Extracts the argument definitions from the derive type and populates the spec’s args list. The command name and help text are still required since Args types do not carry those.

Source

pub fn with_long(self, long: impl Into<String>) -> Self

Sets expanded command help.

Source

pub fn with_alias(self, alias: impl Into<String>) -> Self

Adds one command alias.

Source

pub fn hidden(self, hidden: bool) -> Self

Hides or shows this command in discovery output.

Source

pub fn with_system(self, system: impl Into<String>) -> Self

Sets the backend/system id for output metadata and error attribution.

Source

pub fn with_default_fields(self, default_fields: impl Into<String>) -> Self

Sets the default field projection used when --fields is absent.

Source

pub fn with_auth_provider(self, provider: impl Into<String>) -> Self

Selects the auth provider for this command.

Source

pub fn no_auth(self, no_auth: bool) -> Self

Marks the command as no-auth.

Source

pub fn with_tier(self, tier: Tier) -> Self

Sets the command risk tier.

Source

pub fn with_auth_metadata( self, key: impl Into<String>, value: impl Into<String>, ) -> Self

Adds provider-specific auth metadata.

Source

pub fn with_arg(self, arg: Arg) -> Self

Adds a clap argument or option to this command.

Source

pub fn with_flag(self, flag: Arg) -> Self

Adds a clap flag or option to this command.

Source

pub fn with_output_schema<T: OutputSchema>(self) -> Self

Registers a compact framework schema from an OutputSchema type.

Source

pub fn with_json_schema<T: JsonSchema>(self) -> Self

Registers JSON Schema generated from a Rust type with schemars.

Source

pub fn mutates(self, mutates: bool) -> Self

Marks whether the command should short-circuit under --dry-run.

Source

pub fn metadata(&self) -> CommandMeta

Builds middleware metadata from the spec.

Source

pub fn clap_command(&self) -> Command

Builds the clap command for parser registration.

Trait Implementations§

Source§

impl Clone for CommandSpec

Source§

fn clone(&self) -> CommandSpec

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 CommandSpec

Source§

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

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

impl Default for CommandSpec

Source§

fn default() -> CommandSpec

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

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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 = 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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more