Use `SharedString` for `Label`s

Marshall Bowers created

Change summary

crates/ui2/src/elements/label.rs | 7 ++-----
crates/ui2/src/prelude.rs        | 4 ++--
2 files changed, 4 insertions(+), 7 deletions(-)

Detailed changes

crates/ui2/src/elements/label.rs 🔗

@@ -48,7 +48,7 @@ pub enum LabelSize {
 #[derive(Element, Clone)]
 pub struct Label<S: 'static + Send + Sync + Clone> {
     state_type: PhantomData<S>,
-    label: String,
+    label: SharedString,
     color: LabelColor,
     size: LabelSize,
     highlight_indices: Vec<usize>,
@@ -56,10 +56,7 @@ pub struct Label<S: 'static + Send + Sync + Clone> {
 }
 
 impl<S: 'static + Send + Sync + Clone> Label<S> {
-    pub fn new<L>(label: L) -> Self
-    where
-        L: Into<String>,
-    {
+    pub fn new(label: impl Into<SharedString>) -> Self {
         Self {
             state_type: PhantomData,
             label: label.into(),

crates/ui2/src/prelude.rs 🔗

@@ -1,6 +1,6 @@
 pub use gpui3::{
-    div, Click, Element, Hover, IntoAnyElement, ParentElement, ScrollState, Styled, ViewContext,
-    WindowContext,
+    div, Click, Element, Hover, IntoAnyElement, ParentElement, ScrollState, SharedString, Styled,
+    ViewContext, WindowContext,
 };
 
 pub use crate::{theme, ButtonVariant, ElementExt, Theme};