diff options
| author | 2024-04-01 11:30:01 +0200 | |
|---|---|---|
| committer | 2024-04-01 11:30:01 +0200 | |
| commit | 6216c513d5e5853bf1d43342094e91a74981f4f2 (patch) | |
| tree | a11d3e6533485c5811f0f42d4cf5518c30626bdf /core | |
| parent | c7a4fad4a24dec8536f450d447a9852846f2d711 (diff) | |
| download | iced-6216c513d5e5853bf1d43342094e91a74981f4f2.tar.gz iced-6216c513d5e5853bf1d43342094e91a74981f4f2.tar.bz2 iced-6216c513d5e5853bf1d43342094e91a74981f4f2.zip | |
Use generic `Content` in `Text` to avoid reallocation in `fill_text`
Diffstat (limited to 'core')
| -rw-r--r-- | core/src/renderer/null.rs | 6 | ||||
| -rw-r--r-- | core/src/text.rs | 6 | ||||
| -rw-r--r-- | core/src/text/paragraph.rs | 6 | 
3 files changed, 9 insertions, 9 deletions
| diff --git a/core/src/renderer/null.rs b/core/src/renderer/null.rs index c26ce1a5..1caf71b3 100644 --- a/core/src/renderer/null.rs +++ b/core/src/renderer/null.rs @@ -67,7 +67,7 @@ impl text::Renderer for () {      fn fill_text(          &mut self, -        _paragraph: Text<'_, Self::Font>, +        _paragraph: Text,          _position: Point,          _color: Color,          _clip_bounds: Rectangle, @@ -78,11 +78,11 @@ impl text::Renderer for () {  impl text::Paragraph for () {      type Font = Font; -    fn with_text(_text: Text<'_, Self::Font>) -> Self {} +    fn with_text(_text: Text<&str>) -> Self {}      fn resize(&mut self, _new_bounds: Size) {} -    fn compare(&self, _text: Text<'_, Self::Font>) -> text::Difference { +    fn compare(&self, _text: Text<&str>) -> text::Difference {          text::Difference::None      } diff --git a/core/src/text.rs b/core/src/text.rs index edef79c2..3f1d2c77 100644 --- a/core/src/text.rs +++ b/core/src/text.rs @@ -16,9 +16,9 @@ use std::hash::{Hash, Hasher};  /// A paragraph.  #[derive(Debug, Clone, Copy)] -pub struct Text<'a, Font> { +pub struct Text<Content = String, Font = crate::Font> {      /// The content of the paragraph. -    pub content: &'a str, +    pub content: Content,      /// The bounds of the paragraph.      pub bounds: Size, @@ -219,7 +219,7 @@ pub trait Renderer: crate::Renderer {      /// [`Color`].      fn fill_text(          &mut self, -        text: Text<'_, Self::Font>, +        text: Text<String, Self::Font>,          position: Point,          color: Color,          clip_bounds: Rectangle, diff --git a/core/src/text/paragraph.rs b/core/src/text/paragraph.rs index de1fb74d..8ff04015 100644 --- a/core/src/text/paragraph.rs +++ b/core/src/text/paragraph.rs @@ -8,14 +8,14 @@ pub trait Paragraph: Sized + Default {      type Font: Copy + PartialEq;      /// Creates a new [`Paragraph`] laid out with the given [`Text`]. -    fn with_text(text: Text<'_, Self::Font>) -> Self; +    fn with_text(text: Text<&str, Self::Font>) -> Self;      /// Lays out the [`Paragraph`] with some new boundaries.      fn resize(&mut self, new_bounds: Size);      /// Compares the [`Paragraph`] with some desired [`Text`] and returns the      /// [`Difference`]. -    fn compare(&self, text: Text<'_, Self::Font>) -> Difference; +    fn compare(&self, text: Text<&str, Self::Font>) -> Difference;      /// Returns the horizontal alignment of the [`Paragraph`].      fn horizontal_alignment(&self) -> alignment::Horizontal; @@ -35,7 +35,7 @@ pub trait Paragraph: Sized + Default {      fn grapheme_position(&self, line: usize, index: usize) -> Option<Point>;      /// Updates the [`Paragraph`] to match the given [`Text`], if needed. -    fn update(&mut self, text: Text<'_, Self::Font>) { +    fn update(&mut self, text: Text<&str, Self::Font>) {          match self.compare(text) {              Difference::None => {}              Difference::Bounds => { | 
