Module git_repository::easy [−][src]
Expand description
Which Easy*
is for me?
- Use
Easy*Exclusive
when the underlyingRepository
eventually needs mutation, for instance to update data structures- This is useful for long-running applications that eventually need to adapt to changes in the repository and pick up new packs after a GC operation or a received pack.
- Use the non-exclusive variants if the
Repository
doesn’t ever have to change, for example as in one-off commands.
Implementation Notes
- Why no
Easy
with simply an ownedRepository
, insteadRc<Repository>
is enforced- When this is desired, rather use
EasyShared
and drop theEasyShared
once mutable access to theRepository
is needed.Access
is not usable for functions that require official&mut
mutability, it’s made for interior mutability to support trees of objects.
- When this is desired, rather use
Modules
Structs
A detached, self-contained object, without access to its source repository.
A decoded object with a reference to its owning repository.
An ObjectId with access to a repository.
A reference that points to an object or reference, with access to its source repository.
State for use in Easy*
to provide mutable parts of a repository such as caches and buffers.
A decoded tree object with access to its owning repository.
Traits
A utility trait to represent access to a repository.