summaryrefslogtreecommitdiffstats
path: root/core/src/element.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-09 17:52:06 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-09 17:52:06 +0100
commit4b33a450e0b358f5e95993d65f3de1afebeb3aca (patch)
tree7215c0110230ae5fc0389d76c93c7d12327ec487 /core/src/element.rs
parent628df6953884508569a4b99d28cf618577e162fa (diff)
downloadiced-4b33a450e0b358f5e95993d65f3de1afebeb3aca.tar.gz
iced-4b33a450e0b358f5e95993d65f3de1afebeb3aca.tar.bz2
iced-4b33a450e0b358f5e95993d65f3de1afebeb3aca.zip
Simplify documentation of `Element::map`
Diffstat (limited to 'core/src/element.rs')
-rw-r--r--core/src/element.rs71
1 files changed, 25 insertions, 46 deletions
diff --git a/core/src/element.rs b/core/src/element.rs
index 8eea90ca..989eaa3b 100644
--- a/core/src/element.rs
+++ b/core/src/element.rs
@@ -94,52 +94,34 @@ impl<'a, Message, Theme, Renderer> Element<'a, Message, Theme, Renderer> {
/// producing them. Let's implement our __view logic__ now:
///
/// ```no_run
- /// # mod counter {
- /// # #[derive(Debug, Clone, Copy)]
- /// # pub enum Message {}
- /// # pub struct Counter;
+ /// # mod iced {
+ /// # pub type Element<'a, Message> = iced_core::Element<'a, Message, iced_core::Theme, iced_core::renderer::Null>;
/// #
- /// # impl Counter {
- /// # pub fn view(
- /// # &self,
- /// # ) -> iced_core::Element<Message, (), iced_core::renderer::Null> {
+ /// # pub mod widget {
+ /// # pub fn row<'a, Message>(iter: impl IntoIterator<Item = super::Element<'a, Message>>) -> super::Element<'a, Message> {
/// # unimplemented!()
/// # }
/// # }
/// # }
/// #
- /// # mod iced {
- /// # pub use iced_core::renderer::Null as Renderer;
- /// # pub use iced_core::Element;
- /// #
- /// # pub mod widget {
- /// # pub struct Row<Message> {
- /// # _t: std::marker::PhantomData<Message>,
- /// # }
- /// #
- /// # impl<Message> Row<Message> {
- /// # pub fn new() -> Self {
- /// # unimplemented!()
- /// # }
+ /// # mod counter {
+ /// # #[derive(Debug, Clone, Copy)]
+ /// # pub enum Message {}
+ /// # pub struct Counter;
/// #
- /// # pub fn spacing(mut self, _: u32) -> Self {
- /// # unimplemented!()
- /// # }
+ /// # pub type Element<'a, Message> = iced_core::Element<'a, Message, iced_core::Theme, iced_core::renderer::Null>;
/// #
- /// # pub fn push(
- /// # mut self,
- /// # _: iced_core::Element<Message, (), iced_core::renderer::Null>,
- /// # ) -> Self {
- /// # unimplemented!()
- /// # }
+ /// # impl Counter {
+ /// # pub fn view(&self) -> Element<Message> {
+ /// # unimplemented!()
/// # }
/// # }
/// # }
/// #
/// use counter::Counter;
///
- /// use iced::widget::Row;
- /// use iced::{Element, Renderer};
+ /// use iced::widget::row;
+ /// use iced::Element;
///
/// struct ManyCounters {
/// counters: Vec<Counter>,
@@ -151,24 +133,21 @@ impl<'a, Message, Theme, Renderer> Element<'a, Message, Theme, Renderer> {
/// }
///
/// impl ManyCounters {
- /// pub fn view(&mut self) -> Row<Message> {
- /// // We can quickly populate a `Row` by folding over our counters
- /// self.counters.iter_mut().enumerate().fold(
- /// Row::new().spacing(20),
- /// |row, (index, counter)| {
- /// // We display the counter
- /// let element: Element<counter::Message, _, _> =
- /// counter.view().into();
- ///
- /// row.push(
+ /// pub fn view(&self) -> Element<Message> {
+ /// // We can quickly populate a `row` by mapping our counters
+ /// row(
+ /// self.counters
+ /// .iter()
+ /// .map(Counter::view)
+ /// .enumerate()
+ /// .map(|(index, counter)| {
/// // Here we turn our `Element<counter::Message>` into
/// // an `Element<Message>` by combining the `index` and the
/// // message of the `element`.
- /// element
- /// .map(move |message| Message::Counter(index, message)),
- /// )
- /// },
+ /// counter.map(move |message| Message::Counter(index, message))
+ /// }),
/// )
+ /// .into()
/// }
/// }
/// ```