forked from mirror/async-std
		
	
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			686 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			686 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //! Echoes lines read on stdin to stdout.
 | |
| 
 | |
| use async_std::io;
 | |
| use async_std::prelude::*;
 | |
| use async_std::task;
 | |
| 
 | |
| fn main() -> io::Result<()> {
 | |
|     task::block_on(async {
 | |
|         let stdin = io::stdin();
 | |
|         let mut stdout = io::stdout();
 | |
|         let mut line = String::new();
 | |
| 
 | |
|         loop {
 | |
|             // Read a line from stdin.
 | |
|             let n = stdin.read_line(&mut line).await?;
 | |
| 
 | |
|             // If this is the end of stdin, return.
 | |
|             if n == 0 {
 | |
|                 return Ok(());
 | |
|             }
 | |
| 
 | |
|             // Write the line to stdout.
 | |
|             stdout.write_all(line.as_bytes()).await?;
 | |
|             stdout.flush().await?;
 | |
|             line.clear();
 | |
|         }
 | |
|     })
 | |
| }
 |