use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FetchOutcome {
pub remote: String,
pub refspecs: Vec<String>,
pub updated_refs: Vec<UpdatedRef>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct UpdatedRef {
pub ref_name: String,
pub previous_sha: String,
pub new_sha: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct PullOutcome {
pub mem: String,
pub source_ref: String,
pub branch_ref: String,
pub previous_sha: String,
pub new_sha: String,
pub updated_refs: Vec<UpdatedRef>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct PushOutcome {
pub mem: String,
pub remote: String,
pub branch_ref: String,
pub new_sha: String,
pub forced: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
pub struct PushAllOutcome {
pub remote: String,
pub pushed: Vec<PushedRef>,
pub in_sync: Vec<String>,
pub refused: Vec<RefusedRef>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct PushedRef {
pub ref_name: String,
pub mem: Option<String>,
pub previous_sha: String,
pub new_sha: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct RefusedRef {
pub ref_name: String,
pub mem: Option<String>,
pub code: String,
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct RemoteAddOutcome {
pub remote: String,
pub url: String,
pub updated: bool,
}