diff --git a/src/bin/loop_server.rs b/src/bin/loop_server.rs index 2d38daa..81c4948 100644 --- a/src/bin/loop_server.rs +++ b/src/bin/loop_server.rs @@ -20,17 +20,17 @@ const SRC_FILE: &'static [u8] = include_bytes!("../data/test1.webm"); #[derive(Clone)] struct WebmServer; -type BodyStream<B> = Box<Stream<Item = Chunk<B>, Error = hyper::Error>>; +type BodyStream = Box<Stream<Item = Chunk, Error = hyper::Error>>; impl Service for WebmServer { type Request = Request; - type Response = Response<BodyStream<Vec<u8>>>; + type Response = Response<BodyStream>; type Error = hyper::Error; type Future = FutureResult<Self::Response, hyper::Error>; fn call(&self, req: Request) -> Self::Future { let response = match (req.method(), req.path()) { (&Get, "/loop") => { - let stream: BodyStream<Vec<u8>> = Box::new( + let stream: BodyStream = Box::new( repeat::<&[u8], ()>(SRC_FILE).take(5) .parse_ebml().chunk_webm().fix_timecodes().find_starting_point() .map_err(|err| match err { diff --git a/src/chunk.rs b/src/chunk.rs index 7bfdf35..8e37bc3 100644 --- a/src/chunk.rs +++ b/src/chunk.rs @@ -52,17 +52,17 @@ impl AsRef<[u8]> for ClusterHead { } #[derive(Clone, Debug)] -pub enum Chunk<B: AsRef<[u8]> = Vec<u8>> { +pub enum Chunk { Headers { - bytes: Arc<B> + bytes: Arc<Vec<u8>> }, ClusterHead(ClusterHead), ClusterBody { - bytes: Arc<B> + bytes: Arc<Vec<u8>> } } -impl<B: AsRef<[u8]>> AsRef<[u8]> for Chunk<B> { +impl AsRef<[u8]> for Chunk { fn as_ref(&self) -> &[u8] { match self { &Chunk::Headers {ref bytes, ..} => bytes.as_ref().as_ref(),