[−][src]Struct raystack::Grid
A wrapper around a serde_json::Value
which represents a Haystack Grid.
Columns will always be sorted in alphabetical order.
Implementations
impl Grid
[src]
pub fn new(rows: Vec<Value>) -> Result<Self, ParseJsonGridError>
[src]
Create a new Grid
from rows. Each row must be a JSON Object.
Example
use raystack::Grid; use serde_json::json; let row = json!({"firstName": "Otis", "lastName": "Jackson Jr."}); let rows = vec![row]; let grid = Grid::new(rows).unwrap(); assert_eq!(grid.rows()[0]["firstName"], "Otis");
pub fn empty() -> Self
[src]
Create an empty grid.
pub fn meta(&self) -> &Map<String, Value>
[src]
Return a map which represents the metadata for the grid.
pub fn to_meta(&self) -> Map<String, Value>
[src]
Return an owned map, which represents the metadata for the grid.
pub fn cols(&self) -> &Vec<Value>
[src]
Return a vector of JSON values which represent the columns of the grid.
pub fn add_col<F>(&mut self, col_name: TagName, f: F) where
F: Fn(&mut Map<String, Value>) -> Value,
[src]
F: Fn(&mut Map<String, Value>) -> Value,
Add a new column, or overwrite an existing column by mapping each row to a new cell value.
pub fn to_cols(&self) -> Vec<Value>
[src]
Return a vector of owned JSON values which represent the columns of the grid.
pub fn col_names(&self) -> Vec<TagName>
[src]
Return a vector containing the column names in this grid.
pub fn col_name_strs(&self) -> Vec<&str>
[src]
Return a vector containing the column names in this grid, as strings.
pub fn col_to_vec(&self, col_name: &str) -> Vec<Option<&Value>>
[src]
Return a vector containing the values in the given column.
pub fn has_col_name(&self, name: &str) -> bool
[src]
Returns true if the grid contains the given column name.
pub fn remove_col(&mut self, col_name: &str) -> bool
[src]
Remove the column name from the grid if it is present, and return true if the column was removed.
pub fn remove_cols(&mut self, col_names: &[&str]) -> u32
[src]
Remove the column names from the grid and return the number of columns that were removed. If a column name is not in the grid, nothing happens for that column name, and it does not increase the count of removed columns.
pub fn keep_cols(&mut self, cols_to_keep: &[&str])
[src]
Keep the given column names and remove all other columns. If the column name is not present, nothing happens for that column name.
pub fn rename_col(&mut self, col_name: &TagName, new_col_name: &TagName) -> bool
[src]
Rename a column in the grid. If the original column was contained in the grid, return true. If the original column did not exist in the grid, this function does not modify the grid, and returns false.
pub fn map_col<F>(&mut self, col_name: &TagName, f: F) where
F: Fn(&Value) -> Value,
[src]
F: Fn(&Value) -> Value,
Modify the grid by applying the mapping function to each value in the specified column.
pub fn rows(&self) -> &Vec<Value>
[src]
Return a vector of JSON values which represent the rows of the grid.
pub fn row_maps(&self) -> Vec<&Map<String, Value>>
[src]
Return a vector of Map
s which represent the rows of the grid.
pub fn to_rows(&self) -> Vec<Value>
[src]
Return a vector of owned JSON values which represent the rows of the grid.
pub fn to_row_maps(&self) -> Vec<Map<String, Value>>
[src]
Return a vector of owned JSON values which represent the rows of the grid.
pub fn sort_rows<F>(&mut self, compare: F) where
F: FnMut(&Value, &Value) -> Ordering,
[src]
F: FnMut(&Value, &Value) -> Ordering,
Sort the rows with a comparator function. This sort is stable.
pub fn add_row(&mut self, row: Value) -> Result<(), ParseJsonGridError>
[src]
Add a row to the grid. The row must be a JSON object.
pub fn add_rows(
&mut self,
mut rows: Vec<Value>
) -> Result<(), ParseJsonGridError>
[src]
&mut self,
mut rows: Vec<Value>
) -> Result<(), ParseJsonGridError>
Add rows to the grid. The rows to add must be a Vec
containing
only JSON objects.
pub fn size(&self) -> usize
[src]
Return the number of rows in the grid.
pub fn is_empty(&self) -> bool
[src]
Return true if the grid has no rows.
pub fn concat_grid(&mut self, grid: Grid)
[src]
Concatenate the rows in the given grid to the current grid.
pub fn concat_grids(&mut self, grids: Vec<Grid>)
[src]
For each given grid, concatenate its rows to the current grid.
pub fn concat_all(mut grids: Vec<Grid>) -> Grid
[src]
Return a new grid which is formed by concatenating all the given grids together.
pub fn to_json_string(&self) -> String
[src]
Return the string representation of the underlying JSON value.
pub fn to_json_string_pretty(&self) -> String
[src]
Return a pretty formatted string representing the underlying JSON value.
pub fn is_error(&self) -> bool
[src]
Returns true if the grid appears to be an error grid.
pub fn error_trace(&self) -> Option<String>
[src]
Return the error trace if present.
Trait Implementations
impl Clone for Grid
[src]
impl Debug for Grid
[src]
impl PartialEq<Grid> for Grid
[src]
impl StructuralPartialEq for Grid
[src]
impl TryFrom<Value> for Grid
[src]
Auto Trait Implementations
impl RefUnwindSafe for Grid
[src]
impl Send for Grid
[src]
impl Sync for Grid
[src]
impl Unpin for Grid
[src]
impl UnwindSafe for Grid
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,