pub struct TextWrapping {
pub max_width: f32,
pub max_rows: usize,
pub break_anywhere: bool,
pub overflow_character: Option<char>,
}
Expand description
Controls the text wrapping and elision of a LayoutJob
.
Fields§
§max_width: f32
Wrap text so that no row is wider than this.
If you would rather truncate text that doesn’t fit, set Self::max_rows
to 1
.
Set max_width
to f32::INFINITY
to turn off wrapping and elision.
Note that \n
always produces a new row
if LayoutJob::break_on_newline
is true
.
max_rows: usize
Maximum amount of rows the text galley should have.
If this limit is reached, text will be truncated
and Self::overflow_character
appended to the final row.
You can detect this by checking Galley::elided
.
If set to 0
, no text will be outputted.
If set to 1
, a single row will be outputted,
eliding the text after Self::max_width
is reached.
When you set max_rows = 1
, it is recommended you also set Self::break_anywhere
to true
.
Default value: usize::MAX
.
break_anywhere: bool
If true
: Allow breaking between any characters.
If false
(default): prefer breaking between words, etc.
NOTE: Due to limitations in the current implementation,
when truncating text using Self::max_rows
the text may be truncated
in the middle of a word even if Self::break_anywhere
is false
.
Therefore it is recommended to set Self::break_anywhere
to true
whenever Self::max_rows
is set to 1
.
overflow_character: Option<char>
Character to use to represent elided text.
The default is …
.
If not set, no character will be used (but the text will still be elided).
Implementations§
§impl TextWrapping
impl TextWrapping
pub fn from_wrap_mode_and_width(
mode: TextWrapMode,
max_width: f32
) -> TextWrapping
pub fn from_wrap_mode_and_width( mode: TextWrapMode, max_width: f32 ) -> TextWrapping
Create a TextWrapping
from a TextWrapMode
and an available width.
pub fn no_max_width() -> TextWrapping
pub fn no_max_width() -> TextWrapping
A row can be as long as it need to be.
pub fn wrap_at_width(max_width: f32) -> TextWrapping
pub fn wrap_at_width(max_width: f32) -> TextWrapping
A row can be at most max_width
wide but can wrap in any number of lines.
pub fn truncate_at_width(max_width: f32) -> TextWrapping
pub fn truncate_at_width(max_width: f32) -> TextWrapping
Elide text that doesn’t fit within the given width, replaced with …
.
Trait Implementations§
§impl Clone for TextWrapping
impl Clone for TextWrapping
§fn clone(&self) -> TextWrapping
fn clone(&self) -> TextWrapping
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for TextWrapping
impl Debug for TextWrapping
§impl Default for TextWrapping
impl Default for TextWrapping
§fn default() -> TextWrapping
fn default() -> TextWrapping
§impl<'de> Deserialize<'de> for TextWrapping
impl<'de> Deserialize<'de> for TextWrapping
§fn deserialize<__D>(
__deserializer: __D
) -> Result<TextWrapping, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<TextWrapping, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Hash for TextWrapping
impl Hash for TextWrapping
§impl PartialEq for TextWrapping
impl PartialEq for TextWrapping
§fn eq(&self, other: &TextWrapping) -> bool
fn eq(&self, other: &TextWrapping) -> bool
self
and other
values to be equal, and is used
by ==
.§impl Serialize for TextWrapping
impl Serialize for TextWrapping
§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for TextWrapping
Auto Trait Implementations§
impl Freeze for TextWrapping
impl RefUnwindSafe for TextWrapping
impl Send for TextWrapping
impl Sync for TextWrapping
impl Unpin for TextWrapping
impl UnwindSafe for TextWrapping
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> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§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.§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>
§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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request