pub struct HunkRowMapper { /* private fields */ }Expand description
D.4.b / D.6.b: maps rows between two or three sides of a diff session.
Constructed via Self::new (two-way) or
Self::three_pane (three-way). Internally stores the
member-index → pane-index assignment as
[MapperShape]; RowMapper::map_row looks up each side
of the (from, to) pair and dispatches into the
pane-index-parametric map_between.
Implementations§
Source§impl HunkRowMapper
impl HunkRowMapper
Sourcepub fn new(
session: Arc<DiffSession>,
baseline_member_idx: usize,
current_member_idx: usize,
) -> Self
pub fn new( session: Arc<DiffSession>, baseline_member_idx: usize, current_member_idx: usize, ) -> Self
Construct a mapper for a two-way side-by-side diff session.
baseline_member_idx and current_member_idx are
the indices in PaneGroup::members that hold the
baseline pane and the current pane respectively.
They must be distinct.
Sourcepub fn three_pane(
session: Arc<DiffSession>,
base_member_idx: usize,
local_member_idx: usize,
remote_member_idx: usize,
) -> Self
pub fn three_pane( session: Arc<DiffSession>, base_member_idx: usize, local_member_idx: usize, remote_member_idx: usize, ) -> Self
D.6.b: construct a mapper for a three-way merge
session. Member indices correspond to the three
Hunk::ranges slots — base = ranges[0] (common
ancestor), local = ranges[1] (the side the
session is keyed under), remote = ranges[2] (the
third party). All three indices must be distinct.
Trait Implementations§
Source§impl Debug for HunkRowMapper
impl Debug for HunkRowMapper
Source§impl RowMapper for HunkRowMapper
impl RowMapper for HunkRowMapper
Source§fn map_row(&self, from: usize, to: usize, row: u32) -> u32
fn map_row(&self, from: usize, to: usize, row: u32) -> u32
row (a 0-based line) in the group member at
from_member_idx to the corresponding line in the member at
to_member_idx — e.g. the matching line on the other side of a
diff. Must be total: return a best-effort row rather than panic.Auto Trait Implementations§
impl Freeze for HunkRowMapper
impl RefUnwindSafe for HunkRowMapper
impl Send for HunkRowMapper
impl Sync for HunkRowMapper
impl Unpin for HunkRowMapper
impl UnsafeUnpin for HunkRowMapper
impl UnwindSafe for HunkRowMapper
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