gix_ref::packed

Struct Buffer

Source
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

packed-refs specific functionality

Source

pub fn iter(&self) -> Result<Iter<'_>, Error>

Return an iterator of references stored in this packed refs buffer, ordered by reference name.

§Note

There is no namespace support in packed iterators. It can be emulated using iter_prefixed(…).

Source

pub fn iter_prefixed(&self, prefix: BString) -> Result<Iter<'_>, Error>

Return an iterator yielding only references matching the given prefix, ordered by reference name.

Source§

impl Buffer

Initialization

Source

pub fn open( path: 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

pub fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

Open a buffer from bytes, which is the content of a typical packed-refs file.

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.

Source§

impl Buffer

packed-refs specific functionality

Source

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.

Source

pub fn find<'a, Name, E>(&self, name: Name) -> Result<Reference<'_>, Error>
where Name: TryInto<&'a PartialNameRef, Error = E>, Error: From<E>,

Find a reference with the given name and return it.

Trait Implementations§

Source§

impl AsRef<[u8]> for Buffer

Source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Debug for Buffer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Buffer

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.