pub struct ProgrammaticDiffRequest {
pub old_file_path: PathBuf,
pub new_file_path: PathBuf,
pub new_contents: String,
pub tab_name: String,
pub origin_session: u64,
pub response: Sender<DiffOutcome>,
}Expand description
A request to open an interactive side-by-side diff and block (on the producer side) until the user Keeps or Rejects it.
old_file_path is the baseline — its on-disk content fills the read-only
left side. new_contents is the proposed text (the editable right side),
carrying new_file_path so an Accept can save it. response resolves with
the user’s DiffOutcome when the diff is torn down.
Fields§
§old_file_path: PathBufBaseline file path; its on-disk content is the left (read-only) side.
new_file_path: PathBufThe path the proposed content carries (the right side’s buffer path); an
Accept writes the right side here. Usually equals old_file_path.
new_contents: StringThe proposed text — the editable right side.
tab_name: StringDisplay label for the diff (the agent’s tab name). Presentation only —
the teardown is keyed on origin_session, NOT
this label (a diff may show as a tab today, a window/split tomorrow).
origin_session: u64D-fix.6: the originating session — the IDE-peer connection id that
produced this diff. The host stores it with the opened diff so a
session-scoped close (a close_tab / closeAllDiffTabs from THAT
connection) tears down only the diffs that connection opened, never
another session’s. 0 means “no originating session” (a non-IDE
producer — an LSP WorkspaceEdit preview, a plugin); such diffs are
matched by no connection’s close.
response: Sender<DiffOutcome>Resolved with the user’s verdict when the diff is torn down. A dropped
receiver (the producer gave up) makes the teardown’s send a no-op; a
dropped sender (the session was cancelled without an explicit outcome)
surfaces to the producer’s await as a recv error it maps to a reject.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ProgrammaticDiffRequest
impl !UnwindSafe for ProgrammaticDiffRequest
impl Freeze for ProgrammaticDiffRequest
impl Send for ProgrammaticDiffRequest
impl Sync for ProgrammaticDiffRequest
impl Unpin for ProgrammaticDiffRequest
impl UnsafeUnpin for ProgrammaticDiffRequest
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<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