Skip to main content

RenderOutputRef

Struct RenderOutputRef 

Source
pub struct RenderOutputRef<'a> {
    pub buffer_id: BufferId,
    pub spans: &'a [Vec<(usize, usize, StyleSpec)>],
    pub signs: Vec<DiagSign>,
    pub key: (u64, usize, usize),
    pub perf: PerfBreakdown,
}
Expand description

Borrowed view of a viewport render result.

Identical to RenderOutput except that spans borrows the layer’s internal row cache instead of deep-copying it. Renderer adapters convert the span table into their own style type anyway, so borrowing lets them build exactly one table per recompute instead of two (the cache copy plus the converted copy).

The borrow keeps the SyntaxLayer locked for the lifetime of the value — convert or copy out of it, then drop it. Use RenderOutputRef::into_owned (or SyntaxLayer::render_viewport) when an owned table is required.

§Examples

use hjkl_syntax::{PerfBreakdown, RenderOutputRef};
let rows = Vec::new();
let out = RenderOutputRef {
    buffer_id: 0,
    spans: &rows,
    signs: Vec::new(),
    key: (0, 0, 0),
    perf: PerfBreakdown::default(),
};
assert_eq!(out.into_owned().buffer_id, 0);

Fields§

§buffer_id: BufferId

Routes spans/signs back to the matching buffer slot.

§spans: &'a [Vec<(usize, usize, StyleSpec)>]

Per-row span table, borrowed from the layer’s viewport cache.

§signs: Vec<DiagSign>

Diagnostic signs for the gutter.

§key: (u64, usize, usize)

(dirty_gen, viewport_top, viewport_height) cache key.

§perf: PerfBreakdown

Sub-step timing breakdown (zeroed in fully-sync path).

Implementations§

Source§

impl RenderOutputRef<'_>

Source

pub fn into_owned(self) -> RenderOutput

Deep-copy the borrowed span table into an owned RenderOutput.

§Examples
use hjkl_syntax::{PerfBreakdown, RenderOutputRef};
let rows = vec![Vec::new()];
let out = RenderOutputRef {
    buffer_id: 3,
    spans: &rows,
    signs: Vec::new(),
    key: (1, 0, 30),
    perf: PerfBreakdown::default(),
}
.into_owned();
assert_eq!(out.spans.len(), 1);

Trait Implementations§

Source§

impl<'a> Debug for RenderOutputRef<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for RenderOutputRef<'a>

§

impl<'a> RefUnwindSafe for RenderOutputRef<'a>

§

impl<'a> Send for RenderOutputRef<'a>

§

impl<'a> Sync for RenderOutputRef<'a>

§

impl<'a> Unpin for RenderOutputRef<'a>

§

impl<'a> UnsafeUnpin for RenderOutputRef<'a>

§

impl<'a> UnwindSafe for RenderOutputRef<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more