pub struct Row {
pub section_index_at_start: u32,
pub glyphs: Vec<Glyph>,
pub rect: Rect,
pub visuals: RowVisuals,
pub ends_with_newline: bool,
}
Fields§
§section_index_at_start: u32
This is included in case there are no glyphs
glyphs: Vec<Glyph>
One for each char
.
rect: Rect
Logical bounding rectangle based on font heights etc. Use this when drawing a selection or similar! Includes leading and trailing whitespace.
visuals: RowVisuals
The mesh, ready to be rendered.
ends_with_newline: bool
If true, this Row
came from a paragraph ending with a \n
.
The \n
itself is omitted from Self::glyphs
.
A \n
in the input text always creates a new Row
below it,
so that text that ends with \n
has an empty Row
last.
This also implies that the last Row
in a Galley
always has ends_with_newline == false
.
Implementations§
source§impl Row
impl Row
sourcepub fn char_count_excluding_newline(&self) -> usize
pub fn char_count_excluding_newline(&self) -> usize
Excludes the implicit \n
after the Row
, if any.
sourcepub fn char_count_including_newline(&self) -> usize
pub fn char_count_including_newline(&self) -> usize
Includes the implicit \n
after the Row
, if any.
pub fn min_y(&self) -> f32
pub fn max_y(&self) -> f32
pub fn height(&self) -> f32
sourcepub fn char_at(&self, desired_x: f32) -> usize
pub fn char_at(&self, desired_x: f32) -> usize
Closest char at the desired x coordinate.
Returns something in the range [0, char_count_excluding_newline()]
.
pub fn x_offset(&self, column: usize) -> f32
Trait Implementations§
source§impl<'de> Deserialize<'de> for Row
impl<'de> Deserialize<'de> for Row
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Row
Auto Trait Implementations§
impl Freeze for Row
impl RefUnwindSafe for Row
impl Send for Row
impl Sync for Row
impl Unpin for Row
impl UnwindSafe for Row
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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