An implementation of the largest triangle three buckets (lttb) algorithm for time series downsampling as described in Downsampling Time Series for Visual Representation. This is a Rust port of the original Javascript implementation.
extern crate lttb;
use lttb::{DataPoint,lttb};
fn main() {
let mut raw = vec!();
raw.push(DataPoint::new(0.0, 10.0));
raw.push(DataPoint::new(1.0, 12.0));
raw.push(DataPoint::new(2.0, 8.0));
raw.push(DataPoint::new(3.0, 10.0));
raw.push(DataPoint::new(4.0, 12.0));
// Downsample the raw data to use just three datapoints.
let downsampled = lttb(raw, 3);
}