Struct rustml::sliding::SlidingWindowBuilder [] [src]

pub struct SlidingWindowBuilder {
    // some fields omitted
}

A builder to create a sliding window over an arbitrary number of dimensions.

Methods

impl SlidingWindowBuilder

fn add(&self, area_width: usize, window_width: usize, delta: usize) -> SlidingWindowBuilder

Adds an additional dimension to the sliding window and returns the new SlidingWindowBuilder.

use rustml::sliding::*;

assert_eq!(
    builder().add(10, 3, 2).to_1d().unwrap(),
    vec![0, 2, 4, 6]
);

fn to_vec(&self) -> Vec<Vec<usize>>

Returns a vector of the positions of a sliding window with arbitrary dimensions.

use rustml::sliding::*;

assert_eq!(
    builder().add(10, 3, 2).add(10, 1, 4).to_vec(),
    vec![
        vec![0, 0], vec![2, 0], vec![4, 0], vec![6, 0],
        vec![0, 4], vec![2, 4], vec![4, 4], vec![6, 4],
        vec![0, 8], vec![2, 8], vec![4, 8], vec![6, 8]
    ]
);

fn to_1d(&self) -> Option<Vec<usize>>

Returns a vector of the positions of a one dimensional sliding window.

use rustml::sliding::*;

assert_eq!(
    builder().add(10, 3, 2).to_1d().unwrap(),
    vec![0, 2, 4, 6]
);

fn to_2d(&self) -> Option<Vec<(usize, usize)>>

Returns a vector of tuples of the positions of a two dimensional sliding windoe.

use rustml::sliding::*;

assert_eq!(
    builder().add(10, 3, 2).add(10, 1, 4).to_2d().unwrap(),
    vec![
        (0, 0), (2, 0), (4, 0), (6, 0),
        (0, 4), (2, 4), (4, 4), (6, 4),
        (0, 8), (2, 8), (4, 8), (6, 8)
    ]
);