pub struct SnapshotBuilder<'storage, 'data> { /* private fields */ }Expand description
Incrementally collect root entries in caller-owned slots, without allocation. Push accepts any arrival order; borrowed subtrees must already be assembled. Nested validation and tree/commit buffer sizing are checked when finishing.
Implementations§
Source§impl<'storage, 'data: 'storage> SnapshotBuilder<'storage, 'data>
impl<'storage, 'data: 'storage> SnapshotBuilder<'storage, 'data>
pub fn new( entries: &'storage mut [Entry<'data>], tree_storage: &'storage mut [u8], commit_storage: &'storage mut [u8], ) -> Self
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub fn push(&mut self, entry: Entry<'data>) -> Result<()>
pub fn push(&mut self, entry: Entry<'data>) -> Result<()>
Insert in Git tree order. Invalid names, duplicates (UnsortedFiles), and exhausted slots (BufferTooSmall) leave every occupied slot unchanged.
pub fn finish(self) -> Result<Snapshot<'storage>>
Sourcepub fn finish_with_commit(
self,
options: CommitOptions<'_>,
) -> Result<Snapshot<'storage>>
pub fn finish_with_commit( self, options: CommitOptions<'_>, ) -> Result<Snapshot<'storage>>
Consume the builder and serialize metadata into commit_storage. Options need not outlive the snapshot. Discard partial tree/commit bytes on error.
pub fn finish_with_format( self, format: ObjectFormat, ) -> Result<Snapshot<'storage>>
pub fn finish_with_commit_and_format( self, options: CommitOptions<'_>, format: ObjectFormat, ) -> Result<Snapshot<'storage>>
Auto Trait Implementations§
impl<'storage, 'data> !UnwindSafe for SnapshotBuilder<'storage, 'data>
impl<'storage, 'data> Freeze for SnapshotBuilder<'storage, 'data>
impl<'storage, 'data> RefUnwindSafe for SnapshotBuilder<'storage, 'data>
impl<'storage, 'data> Send for SnapshotBuilder<'storage, 'data>
impl<'storage, 'data> Sync for SnapshotBuilder<'storage, 'data>
impl<'storage, 'data> Unpin for SnapshotBuilder<'storage, 'data>
impl<'storage, 'data> UnsafeUnpin for SnapshotBuilder<'storage, 'data>
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
Mutably borrows from an owned value. Read more