@@ -7,6 +7,23 @@ use tokio::signal::windows::{CtrlBreak, CtrlC};
77///
88/// [`CtrlC`]: struct@tokio::signal::windows::CtrlC
99/// [`Stream`]: trait@crate::Stream
10+ ///
11+ /// # Example
12+ ///
13+ /// ```no_run
14+ /// use tokio::signal::windows::ctrl_c;
15+ /// use tokio_stream::{StreamExt, wrappers::CtrlCStream};
16+ ///
17+ /// # #[tokio::main(flavor = "current_thread")]
18+ /// # async fn main() -> std::io::Result<()> {
19+ /// let signals = ctrl_c()?;
20+ /// let mut stream = CtrlCStream::new(signals);
21+ /// while stream.next().await.is_some() {
22+ /// println!("ctrl-c received");
23+ /// }
24+ /// # Ok(())
25+ /// # }
26+ /// ```
1027#[ derive( Debug ) ]
1128#[ cfg_attr( docsrs, doc( cfg( all( windows, feature = "signal" ) ) ) ) ]
1229pub struct CtrlCStream {
@@ -47,6 +64,23 @@ impl AsMut<CtrlC> for CtrlCStream {
4764
4865/// A wrapper around [`CtrlBreak`] that implements [`Stream`].
4966///
67+ /// # Example
68+ ///
69+ /// ```no_run
70+ /// use tokio::signal::windows::ctrl_break;
71+ /// use tokio_stream::{StreamExt, wrappers::CtrlBreakStream};
72+ ///
73+ /// # #[tokio::main(flavor = "current_thread")]
74+ /// # async fn main() -> std::io::Result<()> {
75+ /// let signals = ctrl_break()?;
76+ /// let mut stream = CtrlBreakStream::new(signals);
77+ /// while stream.next().await.is_some() {
78+ /// println!("ctrl-break received");
79+ /// }
80+ /// # Ok(())
81+ /// # }
82+ /// ```
83+ ///
5084/// [`CtrlBreak`]: struct@tokio::signal::windows::CtrlBreak
5185/// [`Stream`]: trait@crate::Stream
5286#[ derive( Debug ) ]
0 commit comments