pub trait Backend:
Send
+ Sync
+ Debug {
Show 17 methods
// Required methods
fn name(&self) -> &str;
fn commit_id_length(&self) -> usize;
fn change_id_length(&self) -> usize;
fn git_repo(&self) -> Option<Repository>;
fn read_file(
&self,
path: &RepoPath,
id: &FileId,
) -> BackendResult<Box<dyn Read>>;
fn write_file(
&self,
path: &RepoPath,
contents: &mut dyn Read,
) -> BackendResult<FileId>;
fn read_symlink(
&self,
path: &RepoPath,
id: &SymlinkId,
) -> BackendResult<String>;
fn write_symlink(
&self,
path: &RepoPath,
target: &str,
) -> BackendResult<SymlinkId>;
fn root_commit_id(&self) -> &CommitId;
fn root_change_id(&self) -> &ChangeId;
fn empty_tree_id(&self) -> &TreeId;
fn read_tree(&self, path: &RepoPath, id: &TreeId) -> BackendResult<Tree>;
fn write_tree(
&self,
path: &RepoPath,
contents: &Tree,
) -> BackendResult<TreeId>;
fn read_conflict(
&self,
path: &RepoPath,
id: &ConflictId,
) -> BackendResult<Conflict>;
fn write_conflict(
&self,
path: &RepoPath,
contents: &Conflict,
) -> BackendResult<ConflictId>;
fn read_commit(&self, id: &CommitId) -> BackendResult<Commit>;
fn write_commit(&self, contents: &Commit) -> BackendResult<CommitId>;
}Required Methods§
Sourcefn name(&self) -> &str
fn name(&self) -> &str
A unique name that identifies this backend. Written to
.jj/repo/store/backend when the repo is created.
Sourcefn commit_id_length(&self) -> usize
fn commit_id_length(&self) -> usize
The length of commit IDs in bytes.
Sourcefn change_id_length(&self) -> usize
fn change_id_length(&self) -> usize
The length of change IDs in bytes.