futuresdr 0.0.27

An Experimental Async SDR Runtime for Heterogeneous Architectures.
Documentation
use rand::Rng;

use futuresdr::blocks::Apply;
use futuresdr::runtime::Mocker;

fn main() {
    let input: Vec<u32> = rand::thread_rng()
        .sample_iter(rand::distributions::Uniform::<u32>::new(0, 1024))
        .take(64)
        .collect();

    let block = Apply::new(|x: &u32| x + 1);

    let mut mocker = Mocker::new(block);
    mocker.input(0, input.clone());
    mocker.init_output::<u32>(0, 64);
    mocker.run();
    let output = mocker.output::<u32>(0);

    assert_eq!(input.len(), output.len());
    for (a, b) in input.iter().zip(output.iter()) {
        assert_eq!(a + 1, *b);
    }
}