diff options
author | 2022-02-10 23:16:21 +0700 | |
---|---|---|
committer | 2022-02-10 23:16:21 +0700 | |
commit | e03de019881f31d69b70a64c3e278ae5200d5080 (patch) | |
tree | e6c3a85eb347f61a69c3ad2e733ca3ca5245481a /virtual/src | |
parent | 5225e0e304bf5b407977e549c48ce9dea26b8c40 (diff) | |
download | iced-e03de019881f31d69b70a64c3e278ae5200d5080.tar.gz iced-e03de019881f31d69b70a64c3e278ae5200d5080.tar.bz2 iced-e03de019881f31d69b70a64c3e278ae5200d5080.zip |
Implement `Into<Element>` for `&'static str` in `iced_virtual`
Diffstat (limited to 'virtual/src')
-rw-r--r-- | virtual/src/lib.rs | 4 | ||||
-rw-r--r-- | virtual/src/widget/button.rs | 4 | ||||
-rw-r--r-- | virtual/src/widget/column.rs | 11 | ||||
-rw-r--r-- | virtual/src/widget/text.rs | 9 |
4 files changed, 24 insertions, 4 deletions
diff --git a/virtual/src/lib.rs b/virtual/src/lib.rs index bab0da15..8ba4c328 100644 --- a/virtual/src/lib.rs +++ b/virtual/src/lib.rs @@ -21,9 +21,9 @@ where { pub fn new( state: &'a mut State<Message, Renderer>, - content: Element<Message, Renderer>, + content: impl Into<Element<Message, Renderer>>, ) -> Self { - let _ = state.diff(content); + let _ = state.diff(content.into()); Self { state } } diff --git a/virtual/src/widget/button.rs b/virtual/src/widget/button.rs index 534dd13a..ece90811 100644 --- a/virtual/src/widget/button.rs +++ b/virtual/src/widget/button.rs @@ -23,9 +23,9 @@ pub struct Button<Message, Renderer> { } impl<Message, Renderer> Button<Message, Renderer> { - pub fn new(content: impl Widget<Message, Renderer> + 'static) -> Self { + pub fn new(content: impl Into<Element<Message, Renderer>>) -> Self { Button { - content: Element::new(content), + content: content.into(), on_press: None, style_sheet: Default::default(), width: Length::Shrink, diff --git a/virtual/src/widget/column.rs b/virtual/src/widget/column.rs index e7649bc1..2f70282a 100644 --- a/virtual/src/widget/column.rs +++ b/virtual/src/widget/column.rs @@ -207,3 +207,14 @@ where } } } + +impl<Message, Renderer> Into<Element<Message, Renderer>> + for Column<Message, Renderer> +where + Message: 'static, + Renderer: iced_native::Renderer + 'static, +{ + fn into(self) -> Element<Message, Renderer> { + Element::new(self) + } +} diff --git a/virtual/src/widget/text.rs b/virtual/src/widget/text.rs index 91da7e99..e3a7d299 100644 --- a/virtual/src/widget/text.rs +++ b/virtual/src/widget/text.rs @@ -174,3 +174,12 @@ where Element::new(self) } } + +impl<Message, Renderer> Into<Element<Message, Renderer>> for &'static str +where + Renderer: text::Renderer + 'static, +{ + fn into(self) -> Element<Message, Renderer> { + Text::new(self).into() + } +} |