#iterator #leveraging #sin-in

easing

Leveraging Rust's powerful iterators for easing

4 releases

Uses old Rust 2015

0.0.5 May 7, 2017
0.0.3 Mar 12, 2017
0.0.2 Jun 3, 2016
0.0.1 Dec 16, 2014

#1274 in Algorithms

50 downloads per month

MIT license

10KB
359 lines

easing easing iterators for rust

Rust iterators are fantastic—why not use them for easing? Use like so:

use easing;

let begin: f64 = 0;
let end:   f64 = 1000;
let steps: u64 = 10;

// In a for loop!
for x in easing::sin_in(begin, end, steps) {
    println!("Woo, I'm at x={}!", x);
}

// Mapping!
fn move_to(x: f64) {
    println!("Moving on up to {}", x);
}
easing::cubic_out(begin, end, steps).map(move_to);

// And other iterator stuff!
let xs: Vec<f64> = easing::exp_inout(begin, end, steps).collect(); // why would you do this

Available iterators are currently:

function in out in and out
linear linear linear linear
quadratic quad_in quad_out quad_inout
cubic cubic_in cubic_out cubic_inout
quartic quartic_in quartic_out quartic_inout
sinusoidal sin_in sin_out sin_inout
exponential exp_in exp_out exp_inout

Easing functions taken from warrenm's AHEasing.

Find it on crates.io at https://crates.io/crates/easing.

Licesnsed under the LGPLv3.

No runtime deps