use serde::{Deserialize, Serialize};
use strum::EnumIter;
use git2::Repository;
pub struct Git {
pub repo: Option<Repository>,
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, PartialOrd, Eq, Ord)]
#[serde(untagged)]
pub enum Flag {
Hook(Hook),
Special(Special),
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, PartialOrd, Eq, Ord, EnumIter)]
#[serde(rename_all = "kebab-case")]
pub enum Hook {
ApplypatchMsg,
PreApplypatch,
PostApplypatch,
SendemailValidate,
PreCommit,
PreMergeCommit,
PrepareCommitMsg,
CommitMsg,
PostCommit,
PreRebase,
PostCheckout,
PostMerge,
PrePush,
PostRewrite,
PreAutoGc,
FsmonitorWatchman,
PostIndexChange,
P4Changelist,
P4PrepareChangelist,
P4PostChangelist,
P4PreSubmit,
PreReceive,
Update,
ProcReceive,
PostReceive,
PostUpdate,
RefrenceTransaction,
PushToCheckout,
}
#[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, PartialOrd, Eq, Ord, EnumIter)]
#[serde(rename_all = "kebab-case")]
pub enum Special {
#[default]
Manual,
Watch,
Blank,
}