Skip to main content

ExclusiveOption

Trait ExclusiveOption 

Source
pub trait ExclusiveOption {
    // Provided method
    fn inject_args(&self, command: &mut Command) { ... }
}
Expand description

Marker trait for a mutually exclusive option group.

Some Perforce commands accept a set of options where only one may be selected at a time (for example p4 admin checkpoint [-z | -Z] or p4 admin updatespecdepot [-a | -s type]). Each variant of such a group implements this trait to inject its own CLI arguments; the selected variant is encoded in a type parameter so that the alternatives are unavailable at compile time.

Variants may carry their own data (for example the type argument of -s type) and inject any number of arguments, keeping the trait open to option groups more complex than a single flag.

Provided Methods§

Source

fn inject_args(&self, command: &mut Command)

Inject the CLI arguments corresponding to this selection into command.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl ExclusiveOption for perforce_cli::cmd::admin::spec::All

Source§

impl ExclusiveOption for perforce_cli::cmd::admin::set_password::All

Source§

impl ExclusiveOption for AttributeTraitMode

Available on non-crate feature lt2024_2 only.
Source§

impl ExclusiveOption for Both

Source§

impl ExclusiveOption for BranchMode

Source§

impl ExclusiveOption for Branches

Source§

impl ExclusiveOption for CheckPointOnly

Source§

impl ExclusiveOption for DatabaseTraits

Available on non-crate feature lt2023_2 only.
Source§

impl ExclusiveOption for DetailDiffMode

Source§

impl ExclusiveOption for DisplayContentHistory

Source§

impl ExclusiveOption for ExpandOnly

Available on non-crate feature lt2025_2 only.
Source§

impl ExclusiveOption for FileEditMode

Source§

impl ExclusiveOption for ForceRegularMode

Source§

impl ExclusiveOption for FromFile

Available on non-crate feature lt2024_2 only.
Source§

impl ExclusiveOption for FromStdin

Source§

impl ExclusiveOption for perforce_cli::cmd::changes::FullDescription

Source§

impl ExclusiveOption for perforce_cli::cmd::filelog::FullDescription

Source§

impl ExclusiveOption for Integrations

Source§

impl ExclusiveOption for PhysicalPurge

Source§

impl ExclusiveOption for PopulateMode

Source§

impl ExclusiveOption for PreviewNetworkTraffic

Source§

impl ExclusiveOption for PreviewResult

Source§

impl ExclusiveOption for RestrictOnly

Available on non-crate feature lt2025_2 only.
Source§

impl ExclusiveOption for SafeArchive

Source§

impl ExclusiveOption for SafeCheckMode

Source§

impl ExclusiveOption for Selected

Source§

impl ExclusiveOption for ShortSummaryMode

Source§

impl ExclusiveOption for Standard

Source§

impl ExclusiveOption for StandardPrintMode

Source§

impl ExclusiveOption for StreamMode

Source§

impl ExclusiveOption for StreamSpecEditMode

Available on non-crate feature lt2019_1 only.
Source§

impl ExclusiveOption for perforce_cli::cmd::diff::StreamSpecMode

Available on non-crate feature lt2019_1 only.
Source§

impl ExclusiveOption for perforce_cli::cmd::diff2::StreamSpecMode

Available on non-crate feature lt2019_1 only.
Source§

impl ExclusiveOption for SyncTimeMode

Available on non-crate feature lt2025_1 only.
Source§

impl ExclusiveOption for TraitDepot

Available on non-crate feature lt2023_2 only.
Source§

impl ExclusiveOption for perforce_cli::cmd::changes::TruncatedDescription

Source§

impl ExclusiveOption for perforce_cli::cmd::filelog::TruncatedDescription

Source§

impl ExclusiveOption for UnloadDepotMode

Source§

impl ExclusiveOption for Unselected

Source§

impl ExclusiveOption for User

Source§

impl ExclusiveOption for WorkspaceDisplayMode

Source§

impl ExclusiveOption for WorkspaceRegularMode

Source§

impl<M: ExclusiveOption> ExclusiveOption for DepotContent<M>

Source§

impl<M: ExclusiveOption> ExclusiveOption for WorkspaceMode<M>

Source§

impl<Mode: ExclusiveOption, P: ExclusiveOption> ExclusiveOption for RegularMode<Mode, P>