pub struct CommitArgs {
pub repo: RepoArgs,
pub command: Option<CommitCommand>,
pub format: OutputFormat,
}Expand description
majordomus commit: the commit as a value.
Three questions, all read-only: what the working tree would commit, which scopes the
history uses, and whether one message passes. Making the commit is git commit, which
the commit-msg hook puts the third of these in front of — the executable proposes and
judges, and a person commits.
use clap::Parser;
use majordomus_cli::cli::{Cli, Command, CommitArgs, CommitCommand, OutputFormat};
let cli = Cli::try_parse_from([
"majordomus", "commit", "history", "origin/master..HEAD", "--format", "json",
])
.unwrap();
let args: CommitArgs = match cli.command {
Command::Commit(args) => args,
other => panic!("expected `commit`, parsed {other:?}"),
};
// `--format` is global, so it parses after the subcommand, where a person writes it
assert!(matches!(args.format, OutputFormat::Json));
assert!(matches!(
args.command,
Some(CommitCommand::History { range: Some(ref r) }) if r == "origin/master..HEAD"
));
// unlike the other groups this one does answer bare, because planning is what somebody
// asking about committing wants; `None` is `plan` rather than a usage error
let bare = Cli::try_parse_from(["majordomus", "commit"]).unwrap();
assert!(matches!(bare.command, Command::Commit(CommitArgs { command: None, .. })));Fields§
§repo: RepoArgsWhere and how the repository is read.
command: Option<CommitCommand>The subcommand; none is plan.
format: OutputFormatOutput shape
Trait Implementations§
Source§impl Args for CommitArgs
impl Args for CommitArgs
Source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
Report the [
ArgGroup::id][crate::ArgGroup::id] for this set of argumentsSource§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 Debug for CommitArgs
impl Debug for CommitArgs
Source§impl FromArgMatches for CommitArgs
impl FromArgMatches for CommitArgs
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.Auto Trait Implementations§
impl Freeze for CommitArgs
impl RefUnwindSafe for CommitArgs
impl Send for CommitArgs
impl Sync for CommitArgs
impl Unpin for CommitArgs
impl UnsafeUnpin for CommitArgs
impl UnwindSafe for CommitArgs
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