Skip to main content

RowMapper

Trait RowMapper 

Source
pub trait RowMapper: Send + Sync {
    // Required method
    fn map_row(
        &self,
        from_member_idx: usize,
        to_member_idx: usize,
        row: u32,
    ) -> u32;
}
Expand description

D.4.a: pluggable row-mapping function for a pane group.

DX.3 (BC.6 diff extraction): the trait moved DOWN to lattice_core::ui::pane::RowMapper so lattice-diff’s HunkRowMapper can impl it without the host. Re-exported here so every crate::pane_group::RowMapper call site (the PaneGroup registry below, HunkRowMapper, the dispatch propagation path) is unchanged; the host keeps the PaneGroup registry + the Identity/Offset impls. Pluggable row-mapping function for a pane group (slice D.4.a).

Indices are positions in the host PaneGroup::members vector (stable across pane re-ordering). Mappers consult their own state to translate; the identity mapper returns its input.

DX.3 (BC.6 diff extraction): moved DOWN from lattice-host::pane_group so lattice-diff’s HunkRowMapper can impl it without the host. The trait references only primitive types (usize / u32), so it sits cleanly at the bottom of the graph beside its PaneGroupId / PaneId identity siblings. The host keeps the PaneGroup registry + the Identity/Offset impls; it re-exports this trait so existing crate::pane_group::RowMapper call sites are unchanged.

Required Methods§

Source

fn map_row(&self, from_member_idx: usize, to_member_idx: usize, row: u32) -> u32

Translate 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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§