gix 0.89.0

Interact with git repositories just like git would
Documentation
use crate::error::{ResultExt, message};
use crate::{
    Repository, Result,
    config::{cache::util::ApplyLeniency, tree::Pack},
};

pub fn index_threads(repo: &Repository) -> Result<Option<usize>> {
    Pack::THREADS
        .try_into_usize(
            repo.config
                .resolved
                .integer_filter(Pack::THREADS, &mut repo.filter_config_section()),
        )
        .with_leniency(repo.options.lenient_config)
        .or_raise(|| message("The configured pack thread count is invalid"))
}

pub fn pack_index_version(repo: &Repository) -> Result<gix_pack::index::Version> {
    Ok(Pack::INDEX_VERSION
        .try_into_index_version(repo.config.resolved.integer(Pack::INDEX_VERSION))
        .with_leniency(repo.options.lenient_config)
        .or_raise(|| message("The configured pack index version is invalid"))?
        .unwrap_or(gix_pack::index::Version::V2))
}