Struct LineMetrics
pub struct LineMetrics<'a> {Show 13 fields
pub start_index: usize,
pub end_index: usize,
pub end_excluding_whitespaces: usize,
pub end_including_newline: usize,
pub hard_break: bool,
pub ascent: f64,
pub descent: f64,
pub unscaled_ascent: f64,
pub height: f64,
pub width: f64,
pub left: f64,
pub baseline: f64,
pub line_number: usize,
/* private fields */
}
Fields§
§start_index: usize
The index in the text buffer the line begins.
end_index: usize
The index in the text buffer the line ends.
end_excluding_whitespaces: usize
§end_including_newline: usize
§hard_break: bool
§ascent: f64
The final computed ascent and descent for the line. This can be impacted by the strut, height, scaling, as well as outlying runs that are very tall.
The top edge is baseline - ascent
and the bottom edge is baseline + descent
. Ascent and descent are provided as positive numbers. Raw numbers
for specific runs of text can be obtained in run_metrics_map. These values
are the cumulative metrics for the entire line.
descent: f64
§unscaled_ascent: f64
§height: f64
Total height of the paragraph including the current line.
The height of the current line is round(ascent + descent)
.
width: f64
Width of the line.
left: f64
The left edge of the line. The right edge can be obtained with left + width
baseline: f64
The y position of the baseline for this line from the top of the paragraph.
line_number: usize
Zero indexed line number
Implementations§
§impl<'a> LineMetrics<'a>
impl<'a> LineMetrics<'a>
pub fn get_style_metrics_count(&self, range: Range<usize>) -> usize
pub fn get_style_metrics_count(&self, range: Range<usize>) -> usize
Returns the number of style metrics in the given index range.
pub fn get_style_metrics(
&'a self,
range: Range<usize>,
) -> Vec<(usize, &'a StyleMetrics<'a>)>
pub fn get_style_metrics( &'a self, range: Range<usize>, ) -> Vec<(usize, &'a StyleMetrics<'a>)>
Returns indices and references to style metrics in the given range.
Trait Implementations§
§impl<'a> Clone for LineMetrics<'a>
impl<'a> Clone for LineMetrics<'a>
§fn clone(&self) -> LineMetrics<'a>
fn clone(&self) -> LineMetrics<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl<'a> Freeze for LineMetrics<'a>
impl<'a> !RefUnwindSafe for LineMetrics<'a>
impl<'a> !Send for LineMetrics<'a>
impl<'a> !Sync for LineMetrics<'a>
impl<'a> Unpin for LineMetrics<'a>
impl<'a> !UnwindSafe for LineMetrics<'a>
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§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>
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>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.