gps 7.3.3

Official CLI & library for Git Patch Stack
Documentation
use super::super::utils;
use super::branch::BranchConfigDto;
use super::fetch::FetchConfigDto;
use super::integrate::IntegrateConfigDto;
use super::list::ListConfigDto;
use super::pull::PullConfigDto;
use super::request_review::RequestReviewConfigDto;
use serde::Deserialize;

#[derive(Debug, Deserialize, Default)]
pub struct ConfigDto {
    pub request_review: Option<RequestReviewConfigDto>,
    pub pull: Option<PullConfigDto>,
    pub integrate: Option<IntegrateConfigDto>,
    pub fetch: Option<FetchConfigDto>,
    pub list: Option<ListConfigDto>,
    pub branch: Option<BranchConfigDto>,
}

impl utils::Mergable for ConfigDto {
    fn merge(&self, b: &Self) -> Self {
        ConfigDto {
            request_review: utils::merge_option(&self.request_review, &b.request_review),
            pull: utils::merge_option(&self.pull, &b.pull),
            integrate: utils::merge_option(&self.integrate, &b.integrate),
            fetch: utils::merge_option(&self.fetch, &b.fetch),
            list: utils::merge_option(&self.list, &b.list),
            branch: utils::merge_option(&self.branch, &b.branch),
        }
    }
}