use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PullRequestAutoMerge {
#[serde(rename = "commit_message", deserialize_with = "Option::deserialize")]
pub commit_message: Option<String>,
#[serde(rename = "commit_title", deserialize_with = "Option::deserialize")]
pub commit_title: Option<String>,
#[serde(rename = "enabled_by", deserialize_with = "Option::deserialize")]
pub enabled_by: Option<Box<models::User>>,
#[serde(rename = "merge_method")]
pub merge_method: MergeMethod,
}
impl PullRequestAutoMerge {
pub fn new(commit_message: Option<String>, commit_title: Option<String>, enabled_by: Option<models::User>, merge_method: MergeMethod) -> PullRequestAutoMerge {
PullRequestAutoMerge {
commit_message,
commit_title,
enabled_by: enabled_by.map(Box::new),
merge_method,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MergeMethod {
#[serde(rename = "merge")]
Merge,
#[serde(rename = "squash")]
Squash,
#[serde(rename = "rebase")]
Rebase,
}
impl Default for MergeMethod {
fn default() -> MergeMethod {
Self::Merge
}
}