conreg 0.1.0

Control and Regulation
Documentation
use conreg::regulation::ramp::{Ramp, RampConstraints};
use core::default::Default;

fn main() {
    let rc: RampConstraints = Default::default();
    let rc = rc.max_speed(1.0);
    println!("{:?}", rc);

    let mut rp = Ramp::new(0.1, rc);
    rp.set_target_relative_position(10.0);

    let rs = rp.clone();
    let ra = rp.clone();

    let takes = 10_usize;
    println!("Current generalized position{:?}", rp.get());

    let position: Vec<f32> = rp.take(takes).map(|x| x.position).collect::<Vec<f32>>();
    println!("Positions    {:?}", position);

    let speed: Vec<f32> = rs.take(takes).map(|x| x.speed).collect::<Vec<f32>>();
    println!("Speed        {:?}", speed);

    let acceleration: Vec<f32> = ra.take(takes).map(|x| x.acceleration).collect::<Vec<f32>>();
    println!("Acceleration {:?}", acceleration);
}