pub struct OutputArgs {
pub format: Option<OutputFormat>,
pub json: bool,
pub jsonl: bool,
pub text: bool,
}Expand description
Shared output format arguments for commands that produce formatted output.
This group provides consistent format selection across commands with automatic TTY detection for sensible defaults.
§Default Behavior
When no format is explicitly specified:
- Interactive terminal:
Text(human-readable) - Piped/redirected output:
Json(machine-readable)
§Usage
Flatten into command structs:
ⓘ
#[derive(Args)]
struct SearchArgs {
#[command(flatten)]
output: OutputArgs,
// ... other args
}Then resolve to an OutputFormat:
ⓘ
let format = args.output.resolve();Fields§
§format: Option<OutputFormat>Output format (text, json, jsonl, raw).
Defaults to text for terminals, json for pipes.
json: boolOutput as JSON (shorthand for –format json).
jsonl: boolOutput as JSON Lines (shorthand for –format jsonl).
text: boolOutput as plain text (shorthand for –format text).
Implementations§
Source§impl OutputArgs
impl OutputArgs
Sourcepub const fn with_format(format: OutputFormat) -> Self
pub const fn with_format(format: OutputFormat) -> Self
Create output args with a specific format.
Sourcepub fn resolve(&self) -> OutputFormat
pub fn resolve(&self) -> OutputFormat
Resolve the output arguments to a concrete format.
Priority order:
- Shorthand flags (–json, –jsonl, –text)
- Explicit –format flag
- Automatic TTY detection
Sourcepub const fn is_explicit(&self) -> bool
pub const fn is_explicit(&self) -> bool
Check if any format was explicitly specified.
Trait Implementations§
Source§impl Args for OutputArgs
impl Args for OutputArgs
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Append to
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl Clone for OutputArgs
impl Clone for OutputArgs
Source§fn clone(&self) -> OutputArgs
fn clone(&self) -> OutputArgs
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for OutputArgs
impl Debug for OutputArgs
Source§impl Default for OutputArgs
impl Default for OutputArgs
Source§fn default() -> OutputArgs
fn default() -> OutputArgs
Returns the “default value” for a type. Read more
Source§impl FromArgMatches for OutputArgs
impl FromArgMatches for OutputArgs
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
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(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches to self.Source§impl PartialEq for OutputArgs
impl PartialEq for OutputArgs
impl Eq for OutputArgs
impl StructuralPartialEq for OutputArgs
Auto Trait Implementations§
impl Freeze for OutputArgs
impl RefUnwindSafe for OutputArgs
impl Send for OutputArgs
impl Sync for OutputArgs
impl Unpin for OutputArgs
impl UnwindSafe for OutputArgs
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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