|
|
|
use std::io;
|
|
|
|
|
|
|
|
mod ext; use ext::*;
|
|
|
|
|
|
|
|
mod conf;
|
|
|
|
mod prov;
|
|
|
|
mod stream;
|
|
|
|
|
|
|
|
fn main() -> io::Result<()> {
|
|
|
|
let mut input = io::stdin().lock();
|
|
|
|
let mut output = stream::ThrottleAdaptor
|
|
|
|
/*::new(prov::UniformThrottleProvider::from(
|
|
|
|
prov::UniformDurationProvider::from(
|
|
|
|
prov::Duration::from_millis(5)
|
|
|
|
..prov::Duration::from_millis(50)
|
|
|
|
)
|
|
|
|
..prov::UniformDurationProvider::from(
|
|
|
|
prov::Duration::from_millis(10)
|
|
|
|
..prov::Duration::from_millis(100)
|
|
|
|
))*/ //TODO: Figure out how to fucking implement that god-damn uniform sampler for `UniformDurationProvider`. Ugh...
|
|
|
|
::new( prov::SingleThrottleProvider::from(prov::UniformDurationProvider::from(prov::Duration::from_millis(5)..prov::Duration::from_millis(10)))
|
|
|
|
, prov::UniformBufferProvider::from(0usize..=20)
|
|
|
|
, io::stdout().lock());
|
|
|
|
|
|
|
|
let copied = io::copy(&mut input, &mut output)?;
|
|
|
|
if cfg!(debug_assertions) {
|
|
|
|
eprintln!("Copied {copied} bytes from input -{output:?}> output");
|
|
|
|
}
|
|
|
|
Ok(())
|
|
|
|
}
|