16 lines
499 B
Rust
16 lines
499 B
Rust
|
use futures::{Stream, AsyncRead};
|
||
|
use std::task::{Context, Poll};
|
||
|
use std::pin::Pin;
|
||
|
use actix_web::web::Bytes;
|
||
|
use std::io::Error;
|
||
|
|
||
|
struct ToStream<T>(T);
|
||
|
|
||
|
impl <T : AsyncRead> Stream for ToStream<T>{
|
||
|
type Item = Result<Bytes, Error>;
|
||
|
|
||
|
fn poll_next(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
|
||
|
let mut buff: [u8; 1024] = [0; 1024];
|
||
|
self.0.poll_read(cx, &mut buff[..]).map_ok(|l| {Bytes::copy_from_slice(&buff[0..l])}) // il manque Option
|
||
|
}
|
||
|
}
|