[][src]Trait toodee::TranslateOps

pub trait TranslateOps<T>: TooDeeOpsMut<T> {
    fn translate_with_wrap(&mut self, mid: Coordinate) { ... }
fn flip_rows(&mut self) { ... }
fn flip_cols(&mut self) { ... } }

Provides implementations for translate (also known as scroll) operations, and other internal data movement operations such as flipping.

Provided methods

fn translate_with_wrap(&mut self, mid: Coordinate)

Translate (or scroll) the area by moving col_mid to the first column and row_mid to the first row.

All data is preserved by wrapping at the array edges, so fill() could be used to clear old data if required.

Examples

use toodee::{TooDee,TooDeeOps,TranslateOps};
let v = vec![42u32; 15];
let mut toodee : TooDee<u32> = TooDee::from_vec(5, 3, v);
toodee[1][1] = 1;
// move (1, 1) to (0, 0)
toodee.translate_with_wrap((1, 1));
assert_eq!(toodee[0][0], 1);
assert_eq!(toodee[1][1], 42);
use toodee::{TooDee,TooDeeOps,TranslateOps};
let v = vec![42u32; 15];
let mut toodee : TooDee<u32> = TooDee::from_vec(5, 3, v);
// set (4, 2) to 1
toodee[2][4] = 1;
// move (4, 2) to (0, 0)
toodee.translate_with_wrap((4, 2));
assert_eq!(toodee[0][0], 1);
assert_eq!(toodee[2][4], 42);

fn flip_rows(&mut self)

Flips (or mirrors) the rows.

Examples

use toodee::{TooDee,TooDeeOps,TranslateOps};
let v = vec![42u32; 15];
let mut toodee : TooDee<u32> = TooDee::from_vec(5, 3, v);
toodee[0][1] = 1;
toodee.flip_rows();
assert_eq!(toodee[2][1], 1);

fn flip_cols(&mut self)

Flips (or mirrors) the columns.

use toodee::{TooDee,TooDeeOps,TranslateOps};
let v = vec![42u32; 15];
let mut toodee : TooDee<u32> = TooDee::from_vec(5, 3, v);
toodee[1][1] = 1;
toodee.flip_cols();
assert_eq!(toodee[1][3], 1);
Loading content...

Implementors

impl<'_, T> TranslateOps<T> for TooDeeViewMut<'_, T>[src]

impl<T> TranslateOps<T> for TooDee<T>[src]

Loading content...