pub fn stdin() -> Stdin {
    Stdin {
        source: None,
        buffer: Buffer::new(128),
        reactor: Rc::downgrade(&crate::executor().reactor()),
    }
}
/// Allows asynchronous read access to the standard input
///
/// # Examples
///
/// ```no_run
/// use futures_lite::AsyncBufReadExt;
/// use glommio::{io::stdin, LocalExecutor};
///
/// let ex = LocalExecutor::default();
/// ex.run(async {
///     let mut sin = stdin();
///     loop {
///         let mut buf = String::new();
///         sin.read_line(&mut buf).await.unwrap();
///         println!("you just typed {}", buf);
///     }
/// });
/// ```
Allows asynchronous read access to the standard input
Allows asynchronous read access to the standard input
pub fn stdin() -> Stdin {
    Stdin {
        source: None,
        buffer: Buffer::new(128),
        reactor: Rc::downgrade(&crate::executor().reactor()),
    }
}
pub fn stdin ( ) -> Stdin { Stdin { source : None , buffer : Buffer :: new ( 128 ) , reactor : Rc :: downgrade ( & crate :: executor ( ) . reactor ( ) ) , } }
Allows asynchronous read access to the standard input
Allows asynchronous read access to the standard input
examples
```no_run
use futures_lite::AsyncBufReadExt;
use glommio::{io::stdin, LocalExecutor}.

let ex = LocalExecutor::default();
ex.run(async {
let mut sin = stdin();
loop {
let mut buf = String::new();
sin.read_line(&mut buf).await.unwrap();
println!("you just typed {}", buf);
}
});
```
` ` ` no_run use futures_lite :: AsyncBufReadExt ; use glommio :: { io :: stdin LocalExecutor } . let ex = LocalExecutor :: default () ; ex . run ( async { let mut sin = stdin () ; loop { let mut buf = String :: new () ; sin . read_line ( &mut buf ) . await . unwrap () ; println! ( " you just typed {} " buf ) ; } } ) ; ` ` `