diff options
author | 2024-04-01 11:30:01 +0200 | |
---|---|---|
committer | 2024-04-01 11:30:01 +0200 | |
commit | 6216c513d5e5853bf1d43342094e91a74981f4f2 (patch) | |
tree | a11d3e6533485c5811f0f42d4cf5518c30626bdf /widget | |
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 'widget')
-rw-r--r-- | widget/src/checkbox.rs | 2 | ||||
-rw-r--r-- | widget/src/overlay/menu.rs | 2 | ||||
-rw-r--r-- | widget/src/pick_list.rs | 4 | ||||
-rw-r--r-- | widget/src/text_input.rs | 6 |
4 files changed, 8 insertions, 6 deletions
diff --git a/widget/src/checkbox.rs b/widget/src/checkbox.rs index 48f6abf6..225c316d 100644 --- a/widget/src/checkbox.rs +++ b/widget/src/checkbox.rs @@ -340,7 +340,7 @@ where if self.is_checked { renderer.fill_text( text::Text { - content: &code_point.to_string(), + content: code_point.to_string(), font: *font, size, line_height: *line_height, diff --git a/widget/src/overlay/menu.rs b/widget/src/overlay/menu.rs index d76caa8a..98efe305 100644 --- a/widget/src/overlay/menu.rs +++ b/widget/src/overlay/menu.rs @@ -526,7 +526,7 @@ where renderer.fill_text( Text { - content: &option.to_string(), + content: option.to_string(), bounds: Size::new(f32::INFINITY, bounds.height), size: text_size, line_height: self.text_line_height, diff --git a/widget/src/pick_list.rs b/widget/src/pick_list.rs index 801e792b..edccfdaa 100644 --- a/widget/src/pick_list.rs +++ b/widget/src/pick_list.rs @@ -479,7 +479,7 @@ where renderer.fill_text( Text { - content: &code_point.to_string(), + content: code_point.to_string(), size, line_height, font, @@ -502,7 +502,7 @@ where let label = selected.map(ToString::to_string); - if let Some(label) = label.as_deref().or(self.placeholder.as_deref()) { + if let Some(label) = label.or_else(|| self.placeholder.clone()) { let text_size = self.text_size.unwrap_or_else(|| renderer.default_size()); diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index dafe2fca..8cfb0408 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -232,7 +232,7 @@ where let placeholder_text = Text { font, line_height: self.line_height, - content: &self.placeholder, + content: self.placeholder.as_str(), bounds: Size::new(f32::INFINITY, text_bounds.height), size: text_size, horizontal_alignment: alignment::Horizontal::Left, @@ -251,9 +251,11 @@ where }); if let Some(icon) = &self.icon { + let mut content = [0; 4]; + let icon_text = Text { line_height: self.line_height, - content: &icon.code_point.to_string(), + content: icon.code_point.encode_utf8(&mut content) as &_, font: icon.font, size: icon.size.unwrap_or_else(|| renderer.default_size()), bounds: Size::new(f32::INFINITY, text_bounds.height), |