Use `SharedString` for `Button`s

Marshall Bowers created

Change summary

crates/ui2/src/elements/button.rs | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)

Detailed changes

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

@@ -35,7 +35,7 @@ impl<S: 'static + Send + Sync> Default for ButtonHandlers<S> {
 #[derive(Element)]
 pub struct Button<S: 'static + Send + Sync + Clone> {
     state_type: PhantomData<S>,
-    label: String,
+    label: SharedString,
     variant: ButtonVariant,
     state: InteractionState,
     icon: Option<Icon>,
@@ -45,10 +45,7 @@ pub struct Button<S: 'static + Send + Sync + Clone> {
 }
 
 impl<S: 'static + Send + Sync + Clone> Button<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(),
@@ -61,10 +58,7 @@ impl<S: 'static + Send + Sync + Clone> Button<S> {
         }
     }
 
-    pub fn ghost<L>(label: L) -> Self
-    where
-        L: Into<String>,
-    {
+    pub fn ghost(label: impl Into<SharedString>) -> Self {
         Self::new(label).variant(ButtonVariant::Ghost)
     }