use serde::{Deserialize, Serialize};

use crate::cmd::oid::ObjectId;

pub mod tar;
pub mod zip;

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ArchiveOptions {
    pub tree: ObjectId,
    pub prefix: Option<String>,
    pub pathspec: Vec<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ArchiveResult {
    pub bytes: Vec<u8>,
}
