another way to read files using tokio_codec
This commit is contained in:
		| @ -19,6 +19,7 @@ serde_derive = "1.0.80" | ||||
| url = "1.7.1" | ||||
| futures = "0.1.25" | ||||
| tokio = "0.1.11" | ||||
| tokio-codec = "0.1.1" | ||||
| http = "0.1.13" | ||||
| hyper = "0.12.14" | ||||
| lazy_static = "1.1.0" | ||||
|  | ||||
							
								
								
									
										28
									
								
								src/api3.rs
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								src/api3.rs
									
									
									
									
									
								
							| @ -8,6 +8,10 @@ use serde_json::{json, Value}; | ||||
|  | ||||
| use futures::future::*; | ||||
| use tokio::prelude::*; | ||||
| use tokio::fs::File; | ||||
| use tokio::io; | ||||
| use tokio_codec; | ||||
|  | ||||
| use hyper::{Method, Body, Request, Response, Server, StatusCode}; | ||||
|  | ||||
| fn test_sync_api_handler(param: Value, info: &ApiMethod) -> Result<Value, Error> { | ||||
| @ -37,6 +41,30 @@ fn test_async_api_handler( | ||||
|     let task = lazy(|| { | ||||
|         println!("A LAZY TASK"); | ||||
|  | ||||
|  | ||||
|         let dump_file = File::open("/etc/network/interfaces") | ||||
|             .and_then(|file| { | ||||
|                 let file = std::io::BufReader::new(file); | ||||
|                 let mut linenr = 1; | ||||
|                 tokio::io::lines(file).for_each(move |line| { | ||||
|                     println!("LINE {}: {}", linenr, line); | ||||
|                     linenr += 1; | ||||
|                     ok(()) | ||||
|                 }) | ||||
|             }).map_err(|err| ()); | ||||
|  | ||||
|         //tokio::spawn(dump_file); | ||||
|  | ||||
|         let dump_file2 = File::open("/etc/network/interfaces") | ||||
|             .and_then(|file| { | ||||
|                 tokio_codec::FramedRead::new(file, tokio_codec::BytesCodec::new()).for_each(|data| { | ||||
|                     println!("DATA {:?}", data); | ||||
|                     ok(()) | ||||
|                 }) | ||||
|             }).map_err(|err| ()); // fixme: log error | ||||
|  | ||||
|         tokio::spawn(dump_file2); | ||||
|  | ||||
|         let mut resp = Response::new(Body::from("A LAZY TASKs RESPONSE")); | ||||
|         *resp.status_mut() = StatusCode::OK; | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user