pub struct Operation { /* private fields */ }Expand description
A wrapper around op_store::Operation that defines additional methods and
stores a pointer to the OpStore the operation belongs to.
Implementations§
Source§impl Operation
impl Operation
pub fn new( op_store: Arc<dyn OpStore>, id: OperationId, data: impl Into<Arc<Operation>>, ) -> Self
pub fn op_store(&self) -> Arc<dyn OpStore>
pub fn id(&self) -> &OperationId
pub fn view_id(&self) -> &ViewId
pub fn parent_ids(&self) -> &[OperationId]
pub fn parents(&self) -> impl ExactSizeIterator<Item = OpStoreResult<Self>>
pub fn view(&self) -> OpStoreResult<View>
pub fn metadata(&self) -> &OperationMetadata
Sourcepub fn stores_commit_predecessors(&self) -> bool
pub fn stores_commit_predecessors(&self) -> bool
Returns true if predecessors are recorded in this operation.
This returns false only if the operation was written by jj < 0.30.
Sourcepub fn predecessors_for_commit(
&self,
commit_id: &CommitId,
) -> Option<&[CommitId]>
pub fn predecessors_for_commit( &self, commit_id: &CommitId, ) -> Option<&[CommitId]>
Returns predecessors of the specified commit if recorded.
Sourcepub fn all_referenced_commit_ids(&self) -> impl Iterator<Item = &CommitId>
pub fn all_referenced_commit_ids(&self) -> impl Iterator<Item = &CommitId>
Iterates all commit ids referenced by this operation ignoring the view.
Use this in addition to View::all_referenced_commit_ids() to build
commit index from scratch. The predecessor commit ids are also included,
which ensures that the old commits to be returned by
Self::predecessors_for_commit() are still reachable.
The iteration order is unspecified.
pub fn store_operation(&self) -> &Operation
Trait Implementations§
Source§impl Ord for Operation
impl Ord for Operation
Source§impl PartialOrd for Operation
impl PartialOrd for Operation
impl Eq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl !RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl !UnwindSafe for Operation
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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