pub struct Buffer { /* private fields */ }
Expand description
A buffer containing a packed-ref file that is either memory mapped or fully in-memory depending on a cutoff.
The buffer is guaranteed to be sorted as per the packed-ref rules which allows some operations to be more efficient.
Implementations§
source§impl Buffer
impl Buffer
packed-refs specific functionality
source§impl Buffer
impl Buffer
Initialization
sourcepub fn open(
path: impl Into<PathBuf>,
use_memory_map_if_larger_than_bytes: u64
) -> Result<Self, Error>
pub fn open( path: impl Into<PathBuf>, use_memory_map_if_larger_than_bytes: u64 ) -> Result<Self, Error>
Open the file at path
and map it into memory if the file size is larger than use_memory_map_if_larger_than_bytes
.
In order to allow fast lookups and optimizations, the contents of the packed refs must be sorted. If that’s not the case, they will be sorted on the fly with the data being written into a memory buffer.
source§impl Buffer
impl Buffer
packed-refs specific functionality
sourcepub fn try_find<'a, Name, E>(
&self,
name: Name
) -> Result<Option<Reference<'_>>, Error>where
Name: TryInto<&'a PartialNameRef, Error = E>,
Error: From<E>,
pub fn try_find<'a, Name, E>( &self, name: Name ) -> Result<Option<Reference<'_>>, Error>where Name: TryInto<&'a PartialNameRef, Error = E>, Error: From<E>,
Find a reference with the given name
and return it.
Note that it will look it up verbatim and does not deal with namespaces or special prefixes like
main-worktree/
or worktrees/<name>/
, as this is left to the caller.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for Buffer
impl Send for Buffer
impl Sync for Buffer
impl Unpin for Buffer
impl UnwindSafe for Buffer
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> ToHex for Twhere
T: AsRef<[u8]>,
impl<T> ToHex for Twhere T: AsRef<[u8]>,
source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere U: FromIterator<char>,
self
into the result. Lower case
letters are used (e.g. f9b4ca
)source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere U: FromIterator<char>,
self
into the result. Upper case
letters are used (e.g. F9B4CA
)