Struct gix_ref::packed::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: impl Into<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: 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

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§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> ToHex for Twhere T: AsRef<[u8]>,

source§

fn encode_hex<U>(&self) -> Uwhere U: FromIterator<char>,

Encode the hex strict representing self into the result. Lower case letters are used (e.g. f9b4ca)
source§

fn encode_hex_upper<U>(&self) -> Uwhere U: FromIterator<char>,

Encode the hex strict representing self into the result. Upper case letters are used (e.g. F9B4CA)
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.