Skip to main content

Repo

Struct Repo 

Source
pub struct Repo { /* private fields */ }
Expand description

A void repository — the primary SDK entry point.

Thread-safe and cheap to clone (internal state is Arc-wrapped).

Implementations§

Source§

impl Repo

Source

pub fn builder(path: impl AsRef<Path>) -> RepoBuilder

Start building a Repo.

Source

pub fn head(&self) -> Result<CommitInfo>

Get information about the current HEAD commit.

Source

pub fn stream_file(&self, path: &str) -> Result<impl Read + '_>

Stream a file from HEAD. Returns a reader that fetches shards on demand.

Source

pub fn stream_file_at( &self, commit: &CommitId, path: &str, ) -> Result<impl Read + '_>

Stream a file from a specific commit.

Source

pub fn read_file(&self, path: &str) -> Result<Vec<u8>>

Read a file fully into memory from HEAD.

Source

pub fn list_dir_at(&self, refstr: &str, path: &str) -> Result<Vec<DirEntry>>

List directory contents from a specific ref (branch, “HEAD”, or CID).

Source

pub fn list_dir(&self, path: &str) -> Result<Vec<DirEntry>>

List directory contents from HEAD.

Source

pub fn status(&self) -> Result<StatusResult>

Compute repository status.

Source

pub fn status_with_options( &self, patterns: Vec<String>, observer: Option<Arc<dyn VoidObserver>>, ) -> Result<StatusResult>

Compute repository status with path patterns and optional observer.

Source

pub fn add(&self, paths: &[&str]) -> Result<StageResult>

Stage files for commit.

Source

pub fn add_with_options( &self, paths: &[&str], observer: Option<Arc<dyn VoidObserver>>, ) -> Result<StageResult>

Stage files with optional progress observer.

Source

pub fn commit(&self, message: &str) -> Result<CommitInfo>

Create a commit from staged changes (or full workspace if no index).

Source

pub fn restore(&self, paths: &[&str]) -> Result<CheckoutStats>

Restore files from HEAD to working tree.

Source

pub fn restore_from( &self, source: &str, paths: &[&str], ) -> Result<CheckoutStats>

Restore files from a specific ref (branch name, “HEAD”, or commit CID).

Source

pub fn restore_from_ref( &self, source: &str, paths: &[&str], force: bool, observer: Option<Arc<dyn VoidObserver>>, ) -> Result<CheckoutStats>

Restore with full options: source ref, force flag, observer.

Source

pub fn reset(&self, paths: &[&str]) -> Result<ResetResult>

Unstage files (reset index entries to match HEAD).

Source

pub fn reset_with_options( &self, paths: &[&str], observer: Option<Arc<dyn VoidObserver>>, ) -> Result<ResetResult>

Unstage files with optional progress observer.

Source

pub fn remove( &self, paths: &[&str], cached_only: bool, force: bool, recursive: bool, ) -> Result<RemoveResult>

Remove files from the index (and optionally working tree).

Source

pub fn mv(&self, source: &str, dest: &str) -> Result<MoveResult>

Move/rename a file in the index and working tree.

Source

pub fn log(&self, limit: usize) -> Result<Vec<CommitInfo>>

Walk commit history from HEAD, most recent first.

Stops gracefully at foreign-repo boundaries (parent commits encrypted with a different key, e.g., fork sources).

Source

pub fn diff(&self) -> Result<TreeDiff>

Diff working tree against HEAD.

Source

pub fn diff_staged(&self) -> Result<TreeDiff>

Diff staged changes against HEAD.

Source

pub fn diff_commits(&self, from: &CommitId, to: &CommitId) -> Result<TreeDiff>

Diff between two commits.

Source

pub fn branches(&self) -> Result<Vec<String>>

List all branches.

Source

pub fn branch(&self, name: &str) -> Result<()>

Create a branch pointing at HEAD.

Source

pub fn branch_at(&self, name: &str, commit: &CommitId) -> Result<()>

Create a branch pointing at a specific commit.

Source

pub fn delete_branch(&self, name: &str) -> Result<()>

Delete a branch.

Source

pub fn switch(&self, name: &str) -> Result<CheckoutStats>

Switch to a branch (checkout its commit).

Source

pub fn push(&self) -> Result<PushResult>

Push commits to a remote store.

Uses the injected remote (daemon) if set via RepoBuilder::remote(), otherwise falls back to IpfsStore from config.

Source

pub fn push_with_options( &self, full: bool, force: bool, observer: Option<Arc<dyn VoidObserver>>, ) -> Result<PushResult>

Push with options: force, full, observer, etc.

Source

pub fn pull(&self, commit_cid: &str) -> Result<PullResult>

Pull a specific commit from a remote store.

Uses the injected remote (daemon) if set, otherwise IpfsStore.

Source

pub fn pull_with_options( &self, commit_cid: &str, mode: CloneMode, observer: Option<Arc<dyn VoidObserver>>, ) -> Result<PullResult>

Pull with options: mode, observer.

Source

pub fn has_remote(&self) -> bool

Check if a remote store is configured.

Source

pub fn add_unixfs(&self, path: &Path) -> Result<AddResult>

Add a directory as a UnixFS DAG to the local object store.

Returns the root CID that IPFS gateways can serve as a website. Equivalent to ipfs add -r <path>.

Source

pub fn add_unixfs_bytes(&self, data: &[u8]) -> Result<FileAddResult>

Add raw bytes as a UnixFS file to the local object store.

Returns detailed info about the added file.

Source

pub fn cat_unixfs(&self, cid: &Cid) -> Result<Vec<u8>>

Read a UnixFS file from the local object store.

Equivalent to ipfs cat <cid>.

Source

pub fn vault(&self) -> &Arc<KeyVault>

Get the vault (for commands that need direct crypto access).

Source

pub fn void_dir(&self) -> &Utf8Path

Get the void directory path.

Source

pub fn root(&self) -> &Utf8Path

Get the workspace root path.

Source

pub fn store(&self) -> Result<FsStore>

Open the object store.

Source

pub fn context(&self) -> &VoidContext

Get the underlying VoidContext.

This is a migration accessor for CLI commands that need direct access to the context while the SDK surface grows. Will be removed as all operations are covered by dedicated SDK methods.

Trait Implementations§

Source§

impl Clone for Repo

Source§

fn clone(&self) -> Repo

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl Freeze for Repo

§

impl !RefUnwindSafe for Repo

§

impl Send for Repo

§

impl Sync for Repo

§

impl Unpin for Repo

§

impl UnsafeUnpin for Repo

§

impl !UnwindSafe for Repo

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more