[][src]Trait gridly::vector::Component

pub trait Component: Sized + From<isize> + Copy + Ord + Eq + Debug + Add + AddAssign + Sub + SubAssign + Neg + Default + PartialEq<isize> + PartialOrd<isize> + VectorLike {
    type Converse: Component<Converse = Self>;
    type Point: LocComponent<Distance = Self>;
    fn from_vector(vector: impl VectorLike) -> Self;
fn combine(self, converse: Self::Converse) -> Vector;
fn value(self) -> isize;
fn transpose(self) -> Self::Converse; }

A Rows or Columns component of a Vector

Associated Types

type Converse: Component<Converse = Self>

The converse component (Rows to Columns or vice versa)

type Point: LocComponent<Distance = Self>

The assoicated location component type (Row or Column)

Loading content...

Required methods

fn from_vector(vector: impl VectorLike) -> Self

Get this compnent from a Vector

Example:

use gridly::vector::*;

let vec = Vector::new(4, 5);

assert_eq!(Rows::from_vector(&vec), Rows(4));
assert_eq!(Columns::from_vector(&vec), Columns(5));

fn combine(self, converse: Self::Converse) -> Vector

Create a vector from a Row and Column

Example:

use gridly::vector::*;

let columns = Columns(10);
let rows = Rows(2);

assert_eq!(columns.combine(rows), Vector::new(2, 10));

fn value(self) -> isize

Get the integer value of this component

fn transpose(self) -> Self::Converse

Loading content...

Implementors

impl Component for Columns[src]

type Converse = Rows

type Point = Column

impl Component for Rows[src]

type Converse = Columns

type Point = Row

Loading content...