mod handle;
pub mod index;
pub mod object;
mod pack;
pub mod repo;
pub mod resources;
pub use index::{IndexEntry, LogicalIndex, parse_index_file};
pub use object::{Commit, Object, ObjectKind, TreeEntry, parse_commit, parse_tree};
pub use repo::Repository;
pub use resources::{GitLimits, GitResources, ValueCap};
use amiss_wire::controls::ResourceName;
#[cfg(not(any(unix, windows)))]
compile_error!(
"amiss-git holds every object behind a directory handle that is never followed; no other platform provides one"
);
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Error {
RepositoryUnavailable,
ObjectMissing,
ObjectWrongKind,
ObjectUnreadable,
IndexInvalid,
IndexUnmerged,
IntentToAdd,
SnapshotChanged,
ResourceLimit {
resource: ResourceName,
configured_limit: u64,
observed_lower_bound: u64,
},
}