Struct git2::Indexer

source ·
pub struct Indexer<'odb> { /* private fields */ }
Expand description

A stream to write and index a packfile

This is equivalent to crate::OdbPackwriter, but allows to store the pack and index at an arbitrary path. It also does not require access to an object database if, and only if, the pack file is self-contained (i.e. not “thin”).

Implementations§

source§

impl<'a> Indexer<'a>

source

pub fn new( odb: Option<&Odb<'a>>, path: &Path, mode: u32, verify: bool, ) -> Result<Self, Error>

Create a new indexer

The Odb is used to resolve base objects when fixing thin packs. It can be None if no thin pack is expected, in which case missing bases will result in an error.

mode is the permissions to use for the output files, use 0 for defaults.

If verify is false, the indexer will bypass object connectivity checks.

source

pub fn commit(self) -> Result<String, Error>

Finalize the pack and index

Resolves any pending deltas and writes out the index file. The returned string is the hexadecimal checksum of the packfile, which is also used to name the pack and index files (pack-<checksum>.pack and pack-<checksum>.idx respectively).

source

pub fn progress<F>(&mut self, cb: F) -> &mut Self
where F: FnMut(Progress<'_>) -> bool + 'a,

The callback through which progress is monitored. Be aware that this is called inline, so performance may be affected.

Trait Implementations§

source§

impl Drop for Indexer<'_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Write for Indexer<'_>

source§

fn write(&mut self, buf: &[u8]) -> Result<usize>

Write a buffer into this writer, returning how many bytes were written. Read more
source§

fn flush(&mut self) -> Result<()>

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.36.0 · source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · source§

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

§

impl<'odb> Freeze for Indexer<'odb>

§

impl<'odb> !RefUnwindSafe for Indexer<'odb>

§

impl<'odb> !Send for Indexer<'odb>

§

impl<'odb> !Sync for Indexer<'odb>

§

impl<'odb> Unpin for Indexer<'odb>

§

impl<'odb> !UnwindSafe for Indexer<'odb>

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>,

§

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>,

§

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.