#[non_exhaustive]pub enum DiffOutcome {
Accept,
Reject,
}Expand description
D.6.e (2026-05-31): resolution signal fired through a
DiffSession’s completion channel when the user
invokes :diff-accept / :diff-reject. Consumed by
the future openDiff plugin flow (Claude Code, AI
multi-file edits) and by any in-tree consumer (magit
plugin, AI proposals) that wants to know how the user
resolved a session.
#[non_exhaustive] so future variants — notably the
Partial(Vec<HunkId>) case from the design doc, which
would require per-hunk acceptance tracking — can be
added without breaking exhaustiveness in pattern-match
consumers.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Accept
User confirmed they’re done reviewing; the
buffer’s current content (whatever they applied
via do/dp or left alone) is the accepted
resolution. Plugins typically commit the active
buffer’s rope on receiving this.
Reject
User dismissed the session without committing. Plugins should revert to pre-session state if they modified the buffer for the diff display.
Trait Implementations§
Source§impl Clone for DiffOutcome
impl Clone for DiffOutcome
Source§fn clone(&self) -> DiffOutcome
fn clone(&self) -> DiffOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DiffOutcome
impl Debug for DiffOutcome
impl Eq for DiffOutcome
Source§impl PartialEq for DiffOutcome
impl PartialEq for DiffOutcome
impl StructuralPartialEq for DiffOutcome
Auto Trait Implementations§
impl Freeze for DiffOutcome
impl RefUnwindSafe for DiffOutcome
impl Send for DiffOutcome
impl Sync for DiffOutcome
impl Unpin for DiffOutcome
impl UnsafeUnpin for DiffOutcome
impl UnwindSafe for DiffOutcome
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
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> ⓘ
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