pub struct LineWrapperHandle { /* private fields */ }Expand description
A line wrapper borrowed from a TextSystem pool, returned on drop.
Implementations§
Source§impl LineWrapperHandle
impl LineWrapperHandle
Sourcepub fn new(
wrapper: LineWrapper,
recycle: impl FnOnce(LineWrapper) + Send + Sync + 'static,
) -> LineWrapperHandle
pub fn new( wrapper: LineWrapper, recycle: impl FnOnce(LineWrapper) + Send + Sync + 'static, ) -> LineWrapperHandle
Wraps wrapper, passing it back through recycle when dropped.
Methods from Deref<Target = LineWrapper>§
Sourcepub fn wrap_line<'a>(
&'a mut self,
fragments: &'a [LineFragment<'_>],
wrap_width: Pixels,
) -> impl Iterator<Item = Boundary> + 'a
pub fn wrap_line<'a>( &'a mut self, fragments: &'a [LineFragment<'_>], wrap_width: Pixels, ) -> impl Iterator<Item = Boundary> + 'a
Wrap a line of text to the given width with this wrapper’s font and font size.
Sourcepub fn should_truncate_line(
&mut self,
line: &str,
truncate_width: Pixels,
truncation_affix: &str,
truncate_from: TruncateFrom,
) -> Option<usize>
pub fn should_truncate_line( &mut self, line: &str, truncate_width: Pixels, truncation_affix: &str, truncate_from: TruncateFrom, ) -> Option<usize>
Determines if a line should be truncated based on its width.
Returns the truncation index in line.
Sourcepub fn truncate_line<'a>(
&mut self,
line: SharedString,
truncate_width: Pixels,
truncation_affix: &str,
runs: &'a [TextRun],
truncate_from: TruncateFrom,
) -> (SharedString, Cow<'a, [TextRun]>)
pub fn truncate_line<'a>( &mut self, line: SharedString, truncate_width: Pixels, truncation_affix: &str, runs: &'a [TextRun], truncate_from: TruncateFrom, ) -> (SharedString, Cow<'a, [TextRun]>)
Truncate a line of text to the given width with this wrapper’s font and font size.
Sourcepub fn truncate_wrapped_line<'a>(
&mut self,
text: SharedString,
wrap_width: Pixels,
max_lines: usize,
truncation_affix: &str,
runs: &'a [TextRun],
truncate_from: TruncateFrom,
) -> (SharedString, Cow<'a, [TextRun]>)
pub fn truncate_wrapped_line<'a>( &mut self, text: SharedString, wrap_width: Pixels, max_lines: usize, truncation_affix: &str, runs: &'a [TextRun], truncate_from: TruncateFrom, ) -> (SharedString, Cow<'a, [TextRun]>)
Truncate text to fit within a given number of wrapped lines.
Unlike truncate_line which treats the text as a flat width budget
(width * max_lines), this method accounts for word-boundary wrapping:
it walks through characters once, tracking wrap boundaries and the
truncation point simultaneously. When text overflows on the last
allowed line, it truncates there and appends the affix.
For max_lines == 1, this delegates to truncate_line.
Sourcepub fn width_for_char(&mut self, c: char) -> Pixels
pub fn width_for_char(&mut self, c: char) -> Pixels
The advance width of c in this wrapper’s font, cached after first use.
Trait Implementations§
Source§impl Deref for LineWrapperHandle
impl Deref for LineWrapperHandle
Source§type Target = LineWrapper
type Target = LineWrapper
Source§impl DerefMut for LineWrapperHandle
impl DerefMut for LineWrapperHandle
Source§impl Drop for LineWrapperHandle
impl Drop for LineWrapperHandle
Auto Trait Implementations§
impl !RefUnwindSafe for LineWrapperHandle
impl !UnwindSafe for LineWrapperHandle
impl Freeze for LineWrapperHandle
impl Send for LineWrapperHandle
impl Sync for LineWrapperHandle
impl Unpin for LineWrapperHandle
impl UnsafeUnpin for LineWrapperHandle
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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> ⓘ
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> ⓘ
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