use std::time::SystemTime;
use crate::types::Signature;
pub type ExtraArgs = Vec<String>;
#[derive(Debug, Clone, Default)]
pub struct LogOptions {
pub max_count: Option<usize>,
pub path_filter: Option<String>,
pub author_filter: Option<String>,
pub since: Option<SystemTime>,
pub until: Option<SystemTime>,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct BlameOptions {
pub start_line: Option<usize>,
pub end_line: Option<usize>,
pub ignore_whitespace: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct DescribeOptions {
pub annotated_tags_only: bool,
pub long: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct GrepOptions {
pub pathspecs: Vec<String>,
pub ignore_case: bool,
pub line_numbers: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct CommitOptions {
pub author: Option<Signature>,
pub committer: Option<Signature>,
pub sign: bool,
pub amend: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct MergeOptions {
pub no_fast_forward: bool,
pub squash: bool,
pub message: Option<String>,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct RebaseOptions {
pub interactive: bool,
pub autosquash: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct CherryPickOptions {
pub mainline: Option<usize>,
pub no_commit: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct CheckoutOptions {
pub force: bool,
pub create_branch: Option<String>,
pub detach: bool,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct FetchOptions {
pub prune: bool,
pub depth: Option<usize>,
pub refspecs: Vec<String>,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct PushOptions {
pub force: bool,
pub refspecs: Vec<String>,
pub extra_args: ExtraArgs,
}
#[derive(Debug, Clone, Default)]
pub struct CleanOptions {
pub directories: bool,
pub ignored: bool,
pub force: bool,
pub extra_args: ExtraArgs,
}