use std::{cell::RefCell, ops::Deref};
use gix_features::zlib;
use crate::Store;
pub struct Handle<S>
where
S: Deref<Target = Store> + Clone,
{
pub(crate) store: S,
pub refresh: RefreshMode,
pub max_recursion_depth: usize,
pub ignore_replacements: bool,
pub(crate) token: Option<handle::Mode>,
snapshot: RefCell<load_index::Snapshot>,
inflate: RefCell<zlib::Inflate>,
packed_object_count: RefCell<Option<u64>>,
}
#[derive(Default, Clone, Copy)]
pub enum RefreshMode {
#[default]
AfterAllIndicesLoaded,
Never,
}
impl RefreshMode {
pub fn never(&mut self) {
*self = RefreshMode::Never;
}
}
pub mod find;
pub mod prefix;
mod header;
pub mod iter;
pub mod write;
pub mod init;
pub(crate) mod types;
pub use types::Metrics;
pub(crate) mod handle;
pub mod load_index;
pub mod verify;
mod load_one;
mod metrics;
mod access;
pub mod structure;