summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-14 05:56:46 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-14 05:56:46 +0100
commitd6c3da21f7fe7a79bcfbc2a180dc111e42300a04 (patch)
treebbe8e02712824cd0fe22028bd3072fbfce104d62 /native
parent293314405f5b8d4003db5ef8f428e659ae36872d (diff)
downloadiced-d6c3da21f7fe7a79bcfbc2a180dc111e42300a04.tar.gz
iced-d6c3da21f7fe7a79bcfbc2a180dc111e42300a04.tar.bz2
iced-d6c3da21f7fe7a79bcfbc2a180dc111e42300a04.zip
Write docs for subscriptions and reorganize a bit
Diffstat (limited to 'native')
-rw-r--r--native/src/lib.rs2
-rw-r--r--native/src/subscription.rs30
2 files changed, 29 insertions, 3 deletions
diff --git a/native/src/lib.rs b/native/src/lib.rs
index af937a2f..c4d72df8 100644
--- a/native/src/lib.rs
+++ b/native/src/lib.rs
@@ -34,7 +34,7 @@
//! [`Windowed`]: renderer/trait.Windowed.html
//! [`UserInterface`]: struct.UserInterface.html
//! [renderer]: renderer/index.html
-//#![deny(missing_docs)]
+#![deny(missing_docs)]
#![deny(missing_debug_implementations)]
#![deny(unused_results)]
#![deny(unsafe_code)]
diff --git a/native/src/subscription.rs b/native/src/subscription.rs
index c49e24d2..db88867a 100644
--- a/native/src/subscription.rs
+++ b/native/src/subscription.rs
@@ -1,16 +1,42 @@
+//! Listen to external events in your application.
use crate::{Event, Hasher};
use futures::stream::BoxStream;
-pub type EventStream = BoxStream<'static, Event>;
-
+/// A request to listen to external events.
+///
+/// Besides performing async actions on demand with [`Command`], most
+/// applications also need to listen to external events passively.
+///
+/// A [`Subscription`] is normally provided to some runtime, like a [`Command`],
+/// and it will generate events as long as the user keeps requesting it.
+///
+/// For instance, you can use a [`Subscription`] to listen to a WebSocket
+/// connection, keyboard presses, mouse events, time ticks, etc.
+///
+/// [`Command`]: ../struct.Command.html
+/// [`Subscription`]: struct.Subscription.html
pub type Subscription<T> = iced_core::Subscription<Hasher, EventStream, T>;
+/// A stream of runtime events.
+///
+/// It is the input of a [`Subscription`] in the native runtime.
+///
+/// [`Subscription`]: type.Subscription.html
+pub type EventStream = BoxStream<'static, Event>;
+
pub use iced_core::subscription::Recipe;
mod events;
use events::Events;
+/// Returns a [`Subscription`] to all the runtime events.
+///
+/// This subscription will notify your application of any [`Event`] handled by
+/// the runtime.
+///
+/// [`Subscription`]: type.Subscription.html
+/// [`Event`]: ../enum.Event.html
pub fn events() -> Subscription<Event> {
Subscription::from_recipe(Events)
}