diff options
Diffstat (limited to 'extra/git2/src/cherrypick.rs')
-rw-r--r-- | extra/git2/src/cherrypick.rs | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/extra/git2/src/cherrypick.rs b/extra/git2/src/cherrypick.rs deleted file mode 100644 index 659b73089..000000000 --- a/extra/git2/src/cherrypick.rs +++ /dev/null @@ -1,72 +0,0 @@ -use std::mem; - -use crate::build::CheckoutBuilder; -use crate::merge::MergeOptions; -use crate::raw; -use std::ptr; - -/// Options to specify when cherry picking -pub struct CherrypickOptions<'cb> { - mainline: u32, - checkout_builder: Option<CheckoutBuilder<'cb>>, - merge_opts: Option<MergeOptions>, -} - -impl<'cb> CherrypickOptions<'cb> { - /// Creates a default set of cherrypick options - pub fn new() -> CherrypickOptions<'cb> { - CherrypickOptions { - mainline: 0, - checkout_builder: None, - merge_opts: None, - } - } - - /// Set the mainline value - /// - /// For merge commits, the "mainline" is treated as the parent. - pub fn mainline(&mut self, mainline: u32) -> &mut Self { - self.mainline = mainline; - self - } - - /// Set the checkout builder - pub fn checkout_builder(&mut self, cb: CheckoutBuilder<'cb>) -> &mut Self { - self.checkout_builder = Some(cb); - self - } - - /// Set the merge options - pub fn merge_opts(&mut self, merge_opts: MergeOptions) -> &mut Self { - self.merge_opts = Some(merge_opts); - self - } - - /// Obtain the raw struct - pub fn raw(&mut self) -> raw::git_cherrypick_options { - unsafe { - let mut checkout_opts: raw::git_checkout_options = mem::zeroed(); - raw::git_checkout_init_options(&mut checkout_opts, raw::GIT_CHECKOUT_OPTIONS_VERSION); - if let Some(ref mut cb) = self.checkout_builder { - cb.configure(&mut checkout_opts); - } - - let mut merge_opts: raw::git_merge_options = mem::zeroed(); - raw::git_merge_init_options(&mut merge_opts, raw::GIT_MERGE_OPTIONS_VERSION); - if let Some(ref opts) = self.merge_opts { - ptr::copy(opts.raw(), &mut merge_opts, 1); - } - - let mut cherrypick_opts: raw::git_cherrypick_options = mem::zeroed(); - raw::git_cherrypick_init_options( - &mut cherrypick_opts, - raw::GIT_CHERRYPICK_OPTIONS_VERSION, - ); - cherrypick_opts.mainline = self.mainline; - cherrypick_opts.checkout_opts = checkout_opts; - cherrypick_opts.merge_opts = merge_opts; - - cherrypick_opts - } - } -} |