Updaate docstrings

This commit is contained in:
Armin Becher 2020-04-06 21:56:29 +02:00
parent 92cdf58b13
commit 4fd4b42124

View file

@ -1,4 +1,4 @@
/*! /*!
# Two Dimensional Grid # Two Dimensional Grid
Continuos growable 2D data structure. Continuos growable 2D data structure.
The purpose of this crate is to provide an universal data structure that is faster, The purpose of this crate is to provide an universal data structure that is faster,
@ -38,13 +38,6 @@ use std::ops::IndexMut;
use std::slice::Iter; use std::slice::Iter;
use std::slice::IterMut; use std::slice::IterMut;
/// Stores elements of a certain type in a 2D grid structure.
pub struct Grid<T> {
data: Vec<T>,
cols: usize,
rows: usize,
}
#[doc(hidden)] #[doc(hidden)]
#[macro_export] #[macro_export]
macro_rules! count { macro_rules! count {
@ -53,6 +46,14 @@ macro_rules! count {
} }
/// Init a grid with values. /// Init a grid with values.
///
/// Each array within `[]` represents a row starting from top to button.
///
/// # Examples
///
/// In this example a grid of numbers from 1 to 9 is created:
///
///
/// ``` /// ```
/// use grid::grid; /// use grid::grid;
/// let grid = grid![[1, 2, 3] /// let grid = grid![[1, 2, 3]
@ -60,6 +61,17 @@ macro_rules! count {
/// [7, 8, 9]]; /// [7, 8, 9]];
/// assert_eq!(grid.size(), (3, 3)) /// assert_eq!(grid.size(), (3, 3))
/// ``` /// ```
///
/// # Examples
///
/// Not that each row must be of the same length. The following example will not compile:
///
/// ``` ignore
/// use grid::grid;
/// let grid = grid![[1, 2, 3]
/// [4, 5] // This does not work!
/// [7, 8, 9]];
/// ```
#[macro_export] #[macro_export]
macro_rules! grid { macro_rules! grid {
() => { () => {
@ -92,6 +104,18 @@ macro_rules! grid {
}; };
} }
/// Stores elements of a certain type in a 2D grid structure.
///
/// Uses a rust `Vec<T>` type to reference the grid data on the heap.
/// Also the number of rows and columns are stored in the grid data structure.
///
/// The grid data is stored in a row-major memory layout.
pub struct Grid<T> {
data: Vec<T>,
cols: usize,
rows: usize,
}
impl<T: Clone> Grid<T> { impl<T: Clone> Grid<T> {
/// Init a grid of size rows x columns with default values of the given type. /// Init a grid of size rows x columns with default values of the given type.
/// For example this will generate a 2x3 grid of zeros: /// For example this will generate a 2x3 grid of zeros: