pub trait CoreRefBackend: Send + Sync {
type Error;
Show 17 methods
// Required methods
fn read_head(&self) -> Result<Head, Self::Error>;
fn write_head(&self, head: &Head) -> Result<(), Self::Error>;
fn write_head_cas(
&self,
expected: RefExpectation<Head>,
head: &Head,
) -> Result<(), Self::Error>;
fn get_thread(&self, name: &str) -> Result<Option<ChangeId>, Self::Error>;
fn set_thread(
&self,
name: &str,
state: &ChangeId,
) -> Result<(), Self::Error>;
fn set_thread_cas(
&self,
name: &str,
expected: RefExpectation<ChangeId>,
state: &ChangeId,
) -> Result<(), Self::Error>;
fn delete_thread(&self, name: &str) -> Result<Option<ChangeId>, Self::Error>;
fn delete_thread_cas(
&self,
name: &str,
expected: RefExpectation<ChangeId>,
) -> Result<(), Self::Error>;
fn list_threads(&self) -> Result<Vec<String>, Self::Error>;
fn get_marker(&self, name: &str) -> Result<Option<ChangeId>, Self::Error>;
fn create_marker(
&self,
name: &str,
state: &ChangeId,
) -> Result<(), Self::Error>;
fn set_marker_cas(
&self,
name: &str,
expected: RefExpectation<ChangeId>,
state: &ChangeId,
) -> Result<(), Self::Error>;
fn delete_marker(&self, name: &str) -> Result<Option<ChangeId>, Self::Error>;
fn delete_marker_cas(
&self,
name: &str,
expected: RefExpectation<ChangeId>,
) -> Result<(), Self::Error>;
fn list_markers(&self) -> Result<Vec<String>, Self::Error>;
fn update_refs(&self, updates: &[RefUpdate]) -> Result<(), Self::Error>;
// Provided method
fn resolve(&self, refspec: &str) -> Result<Option<ChangeId>, Self::Error> { ... }
}Expand description
Shared refs backend operations usable by both local and hosted backends.