aboutsummaryrefslogtreecommitdiff
path: root/linestream.rs
diff options
context:
space:
mode:
Diffstat (limited to 'linestream.rs')
-rw-r--r--linestream.rs42
1 files changed, 0 insertions, 42 deletions
diff --git a/linestream.rs b/linestream.rs
deleted file mode 100644
index 5106af3..0000000
--- a/linestream.rs
+++ /dev/null
@@ -1,42 +0,0 @@
-use std;
-use futures::stream::Stream;
-use futures::{Poll, Async};
-
-pub struct LineStream<S, E> where S: Stream<Item=u8, Error=E> {
- stream: S,
- progress: Vec<u8>
-}
-
-impl<S,E> LineStream<S, E> where S: Stream<Item=u8, Error=E> + Sized {
- pub fn new(stream: S) -> LineStream<S, E> {
- LineStream {
- stream: stream,
- progress: vec![]
- }
- }
-}
-
-impl<S, E> Stream for LineStream<S, E> where S: Stream<Item=u8, Error=E> {
- type Item = Vec<u8>;
- type Error = E;
-
- fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
- loop {
- match self.stream.poll() {
- Ok(Async::Ready(Some(byte))) => {
- if byte == 0x0a {
- let mut new_vec = vec![];
- std::mem::swap(&mut self.progress, &mut new_vec);
- return Ok(Async::Ready(Some(new_vec)))
- } else {
- self.progress.push(byte)
- }
- },
- Ok(Async::Ready(None)) => return Ok(Async::Ready(None)),
- Ok(Async::NotReady) => return Ok(Async::NotReady),
- Err(e) => return Err(e)
- }
- }
- }
-}
-