#![cfg_attr(
all(doc, feature = "document-features"),
doc = ::document_features::document_features!()
)]
#![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg))]
#![deny(rust_2018_idioms, missing_docs)]
#![forbid(unsafe_code)]
use bstr::BString;
pub type Error = gix_error::Exn<gix_error::Message>;
#[derive(Default, PartialEq, Eq, Copy, Clone, Debug)]
pub enum Format {
#[default]
InternalTransientNonPersistable,
Tar,
TarGz {
compression_level: Option<u8>,
},
Zip {
compression_level: Option<u8>,
},
}
#[derive(Clone, Debug)]
pub struct Options {
pub format: Format,
pub tree_prefix: Option<BString>,
pub modification_time: gix_date::SecondsSinceUnixEpoch,
}
impl Default for Options {
fn default() -> Self {
Options {
format: Default::default(),
tree_prefix: None,
modification_time: std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.map(|t| t.as_secs() as i64)
.unwrap_or_default(),
}
}
}
mod write;
pub use write::{write_stream, write_stream_seek};