use std::path::PathBuf;
use crate::bstr::BString;
#[derive(Copy, Clone, Ord, PartialOrd, PartialEq, Eq, Debug, Hash)]
pub struct Permissions {
pub env: permissions::Environment,
pub config: permissions::Config,
pub attributes: permissions::Attributes,
}
#[derive(Clone)]
pub struct Options {
pub(crate) object_store_slots: gix_odb::store::init::Slots,
pub permissions: Permissions,
pub(crate) git_dir_trust: Option<gix_sec::Trust>,
pub(crate) filter_config_section: Option<fn(&gix_config::file::Metadata) -> bool>,
pub(crate) lossy_config: bool,
pub(crate) lenient_config: bool,
pub(crate) bail_if_untrusted: bool,
pub(crate) api_config_overrides: Vec<BString>,
pub(crate) cli_config_overrides: Vec<BString>,
pub(crate) git_installation_config_path: Option<Box<std::path::Path>>,
pub(crate) system_config_path: Option<Box<std::path::Path>>,
pub(crate) use_repository_local_environment: bool,
pub(crate) open_path_as_is: bool,
pub(crate) current_dir: Option<PathBuf>,
}
mod options;
pub mod permissions;
mod repository;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn size_of_options() {
let actual = std::mem::size_of::<Options>();
let limit = 160;
assert!(
actual <= limit,
"{actual} <= {limit}: size shouldn't change without us knowing (on windows, it's bigger)"
);
}
}