feat(lib): redesign API to use Futures and Tokio
There are many changes involved with this, but let's just talk about
user-facing changes.
- Creating a `Client` and `Server` now needs a Tokio `Core` event loop
to attach to.
- `Request` and `Response` both no longer implement the
`std::io::{Read,Write}` traits, but instead represent their bodies as a
`futures::Stream` of items, where each item is a `Chunk`.
- The `Client.request` method now takes a `Request`, instead of being
used as a builder, and returns a `Future` that resolves to `Response`.
- The `Handler` trait for servers is no more, and instead the Tokio
`Service` trait is used. This allows interoperability with generic
middleware.
BREAKING CHANGE: A big sweeping set of breaking changes.
			
			
This commit is contained in:
		@@ -277,7 +277,7 @@ mod tests {
 | 
			
		||||
    use std::io::Write;
 | 
			
		||||
    use super::Decoder;
 | 
			
		||||
    use super::ChunkedState;
 | 
			
		||||
    use mock::Async;
 | 
			
		||||
    use mock::AsyncIo;
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn test_read_chunk_size() {
 | 
			
		||||
@@ -422,7 +422,7 @@ mod tests {
 | 
			
		||||
                  -> String {
 | 
			
		||||
        let content_len = content.len();
 | 
			
		||||
        let mock_buf = io::Cursor::new(content.clone());
 | 
			
		||||
        let mut ins = Async::new(mock_buf, block_at);
 | 
			
		||||
        let mut ins = AsyncIo::new(mock_buf, block_at);
 | 
			
		||||
        let mut outs = vec![];
 | 
			
		||||
        loop {
 | 
			
		||||
            let mut buf = vec![0; read_buffer_size];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user