use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub enum IpcRequest {
Ping,
Status,
Fetch { repo: String },
Push {
repo: String,
branch: String,
commit: String,
},
}
#[derive(Debug, Serialize, Deserialize)]
pub enum IpcResponse {
Pong,
Success(String),
Error(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GitSyncRequest {
pub repo: String,
pub command: GitSyncCommand,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum GitSyncCommand {
ListRefs,
FetchObjects {
have: Vec<String>,
want: Vec<String>,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum GitSyncResponse {
Refs(Vec<(String, String)>), Objects(Vec<u8>),
}