#![allow(incomplete_features)]
#![feature(allocator_api)]
#![feature(const_fn_trait_bound)]
#![feature(custom_inner_attributes)]
#![feature(generic_const_exprs)]
#![feature(ptr_metadata)]
#![feature(slice_ptr_len)]
#![feature(slice_range)]
#![warn(missing_docs)]
mod dimension;
mod grid;
mod index;
mod iterator;
mod layout;
mod order;
mod raw_vec;
mod sub_grid;
mod view;
pub use dimension::{Dim1, Dim2};
pub use grid::{DenseGrid, GridBase, StaticGrid};
pub use order::{ColumnMajor, Order, RowMajor};
pub use view::{DenseView, StridedView, ViewBase};
use std::alloc::Global;
pub type View<T, const N: usize> = DenseView<T, N, ColumnMajor>;
pub type CView<T, const N: usize> = DenseView<T, N, RowMajor>;
pub type Grid<T, const N: usize, A = Global> = DenseGrid<T, N, ColumnMajor, A>;
pub type CGrid<T, const N: usize, A = Global> = DenseGrid<T, N, RowMajor, A>;
pub type SGrid1<T, const X: usize> = StaticGrid<T, Dim1<X>, 1, ColumnMajor>;
pub type SCGrid1<T, const X: usize> = StaticGrid<T, Dim1<X>, 1, RowMajor>;
pub type SGrid2<T, const X: usize, const Y: usize> = StaticGrid<T, Dim2<X, Y>, 2, ColumnMajor>;
pub type SCGrid2<T, const X: usize, const Y: usize> = StaticGrid<T, Dim2<X, Y>, 2, RowMajor>;