webmetro/src/commands/mod.rs

17 lines
560 B
Rust
Raw Normal View History

use bytes::Bytes;
2020-05-09 01:15:18 +00:00
use futures::{Stream, TryStreamExt};
use tokio_util::codec::{BytesCodec, FramedRead};
2018-04-12 04:14:16 +00:00
pub mod dump;
2018-04-12 06:03:46 +00:00
pub mod filter;
2018-04-11 05:39:28 +00:00
pub mod relay;
2018-04-15 05:43:23 +00:00
pub mod send;
2018-04-12 04:14:16 +00:00
/// An adapter that makes chunks of bytes from stdin available as a Stream;
/// is NOT actually async, and just uses blocking read. Don't use more than
/// one at once, who knows who gets which bytes.
2020-05-09 01:15:18 +00:00
pub fn stdin_stream() -> impl Stream<Item = Result<Bytes, std::io::Error>> + Sized + Unpin {
FramedRead::new(tokio::io::stdin(), BytesCodec::new())
2020-05-09 01:15:18 +00:00
.map_ok(|bytes| bytes.freeze())
2018-04-12 04:14:16 +00:00
}