pub trait Backend: Send + Sync + Debug {
Show 17 methods
// Required methods
fn as_any(&self) -> &dyn Any;
fn name(&self) -> &str;
fn commit_id_length(&self) -> usize;
fn change_id_length(&self) -> usize;
fn root_commit_id(&self) -> &CommitId;
fn root_change_id(&self) -> &ChangeId;
fn empty_tree_id(&self) -> &TreeId;
fn read_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RepoPath,
id: &'life2 FileId
) -> Pin<Box<dyn Future<Output = BackendResult<Box<dyn Read>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn write_file(
&self,
path: &RepoPath,
contents: &mut dyn Read
) -> BackendResult<FileId>;
fn read_symlink<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RepoPath,
id: &'life2 SymlinkId
) -> Pin<Box<dyn Future<Output = BackendResult<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn write_symlink(
&self,
path: &RepoPath,
target: &str
) -> BackendResult<SymlinkId>;
fn read_tree<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RepoPath,
id: &'life2 TreeId
) -> Pin<Box<dyn Future<Output = BackendResult<Tree>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
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<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CommitId
) -> Pin<Box<dyn Future<Output = BackendResult<Commit>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn write_commit(
&self,
contents: Commit
) -> BackendResult<(CommitId, Commit)>;
}
Required Methods§
fn as_any(&self) -> &dyn Any
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.
fn root_commit_id(&self) -> &CommitId
fn root_change_id(&self) -> &ChangeId
fn empty_tree_id(&self) -> &TreeId
fn read_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RepoPath,
id: &'life2 FileId
) -> Pin<Box<dyn Future<Output = BackendResult<Box<dyn Read>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_file( &self, path: &RepoPath, contents: &mut dyn Read ) -> BackendResult<FileId>
fn read_symlink<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RepoPath,
id: &'life2 SymlinkId
) -> Pin<Box<dyn Future<Output = BackendResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_symlink( &self, path: &RepoPath, target: &str ) -> BackendResult<SymlinkId>
fn read_tree<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 RepoPath,
id: &'life2 TreeId
) -> Pin<Box<dyn Future<Output = BackendResult<Tree>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
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<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 CommitId
) -> Pin<Box<dyn Future<Output = BackendResult<Commit>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
sourcefn write_commit(&self, contents: Commit) -> BackendResult<(CommitId, Commit)>
fn write_commit(&self, contents: Commit) -> BackendResult<(CommitId, Commit)>
Writes a commit and returns its ID and the commit itself. The commit
should contain the data that was actually written, which may differ
from the data passed in. For example, the backend may change the
committer name to an authenticated user’s name, or the backend’s
timestamps may have less precision than the millisecond precision in
Commit
.