pub struct ExtraRefinement(pub Vec<Vec<RefineSpan>>);Expand description
DR.3 (2026-08-12): per-buffer intra-line diff refinement — the byte ranges whose BACKGROUND differs from their row’s diff tint.
The second axis of span-layering.md, narrowed from per-row to
per-range. Published with ExtraHighlights by the same update and
spliced by the same loop, so the two cannot drift apart when an
inline expansion shifts lines.
Empty is the universal default and renders byte-identically.
Tuple Fields§
§0: Vec<Vec<RefineSpan>>Trait Implementations§
Source§impl BufferLocal for ExtraRefinement
impl BufferLocal for ExtraRefinement
Source§const NAME: &'static str = "text-mode.extra-refinement"
const NAME: &'static str = "text-mode.extra-refinement"
Public display name (
:describe-buffer row label,
debug logs). Convention: <owner-mode-name>.<key>,
e.g. "file-tree.entries". Not a registry key — locals
aren’t registered globally; the name is metadata for
inspection.Source§const DOC: &'static str = "Per-buffer intra-line diff refinement: byte ranges whose \
background differs from their row's diff tint, indexed by source line. \
Published alongside `extra-highlights` so the two shift together."
const DOC: &'static str = "Per-buffer intra-line diff refinement: byte ranges whose \ background differs from their row's diff tint, indexed by source line. \ Published alongside `extra-highlights` so the two shift together."
Doc string. Shown in
:describe-buffer when the user
expands a local for detail.Source§const OWNER_MODE: &'static str = "text-mode"
const OWNER_MODE: &'static str = "text-mode"
Mode id that owns this local. Attribution metadata for
:describe-buffer; the write-time check the design calls for
(a ModeContext::set_local::<T> that rejects a non-owner) is not
implemented, so nothing enforces it today (see the module docs).Source§impl Clone for ExtraRefinement
impl Clone for ExtraRefinement
Source§fn clone(&self) -> ExtraRefinement
fn clone(&self) -> ExtraRefinement
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ExtraRefinement
impl Debug for ExtraRefinement
Source§impl Default for ExtraRefinement
impl Default for ExtraRefinement
Source§fn default() -> ExtraRefinement
fn default() -> ExtraRefinement
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ExtraRefinement
impl RefUnwindSafe for ExtraRefinement
impl Send for ExtraRefinement
impl Sync for ExtraRefinement
impl Unpin for ExtraRefinement
impl UnsafeUnpin for ExtraRefinement
impl UnwindSafe for ExtraRefinement
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
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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<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> ⓘ
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§impl<T> IntoMaybeUndefined<T> for T
impl<T> IntoMaybeUndefined<T> for T
§fn into_maybe_undefined(self) -> MaybeUndefined<T>
fn into_maybe_undefined(self) -> MaybeUndefined<T>
Converts this value into a three-state builder argument.
§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Converts this value into an optional builder argument.