Struct dcsv::VirtualData
source · [−]Expand description
Virtual data which contains csv information
VirtualData holds row information as hashmap. Therefore modifying data( cell, row or column ) is generally faster than virtual array struct. VirtualData also allows limiters to confine csv value’s possible states. Values in VirtualData can be indexed with either colum name or colum index.
Virtual data has two variables which are
- columns
- rows
Fields
columns: Vec<Column>rows: Vec<Row>Implementations
sourceimpl VirtualData
impl VirtualData
sourcepub fn read_only(&self) -> ReadOnlyData
pub fn read_only(&self) -> ReadOnlyData
Get read only data from virtual data
This clones every value into a ReadOnlyData. If the purpose is to simply iterate over values, prefer read_only_ref method.
sourcepub fn read_only_ref(&self) -> ReadOnlyDataRef<'_>
pub fn read_only_ref(&self) -> ReadOnlyDataRef<'_>
Get read only data from virtual data, but as reference
sourcepub fn set_cell_from_string(
&mut self,
x: usize,
y: usize,
value: &str
) -> DcsvResult<()>
pub fn set_cell_from_string(
&mut self,
x: usize,
y: usize,
value: &str
) -> DcsvResult<()>
Set cell’s value with given string value
sourcepub fn move_row(
&mut self,
src_index: usize,
target_index: usize
) -> DcsvResult<()>
pub fn move_row(
&mut self,
src_index: usize,
target_index: usize
) -> DcsvResult<()>
Move given row to a target row index
sourcepub fn move_column(
&mut self,
src_index: usize,
target_index: usize
) -> DcsvResult<()>
pub fn move_column(
&mut self,
src_index: usize,
target_index: usize
) -> DcsvResult<()>
Move a given column to target column index
sourcepub fn rename_column(&mut self, column: &str, new_name: &str) -> DcsvResult<()>
pub fn rename_column(&mut self, column: &str, new_name: &str) -> DcsvResult<()>
Rename a column
Column’s name cannot be an exsiting name
- column : either index or column name
- new_name : New column name
sourcepub fn set_column(&mut self, column: &str, value: Value) -> DcsvResult<()>
pub fn set_column(&mut self, column: &str, value: Value) -> DcsvResult<()>
Set values to a column
Given value will override every row’s value
sourcepub fn edit_row(
&mut self,
row_index: usize,
values: Vec<Option<Value>>
) -> DcsvResult<()>
pub fn edit_row(
&mut self,
row_index: usize,
values: Vec<Option<Value>>
) -> DcsvResult<()>
Edit a row
Only edit row’s cell when value is not none
sourcepub fn set_row(
&mut self,
row_index: usize,
values: Vec<Value>
) -> DcsvResult<()>
pub fn set_row(
&mut self,
row_index: usize,
values: Vec<Value>
) -> DcsvResult<()>
Set values to a row
This assumes that given values accord to column’s order. This method will fail when given value fails to qualify column’s limiter.
sourcepub fn set_cell(&mut self, x: usize, y: usize, value: Value) -> DcsvResult<()>
pub fn set_cell(&mut self, x: usize, y: usize, value: Value) -> DcsvResult<()>
Set cell value by coordinate
sourcepub fn insert_row(
&mut self,
row_index: usize,
source: Option<&[Value]>
) -> DcsvResult<()>
pub fn insert_row(
&mut self,
row_index: usize,
source: Option<&[Value]>
) -> DcsvResult<()>
Insert a row to given index
This can yield out of rnage error
sourcepub fn delete_row(&mut self, row_index: usize) -> Option<Row>
pub fn delete_row(&mut self, row_index: usize) -> Option<Row>
Delete a row with given row_index
This doesn’t fail but silently do nothing if index is out of range
sourcepub fn insert_column(
&mut self,
column_index: usize,
column_name: &str,
column_type: ValueType,
limiter: Option<ValueLimiter>,
placeholder: Option<Value>
) -> DcsvResult<()>
pub fn insert_column(
&mut self,
column_index: usize,
column_name: &str,
column_type: ValueType,
limiter: Option<ValueLimiter>,
placeholder: Option<Value>
) -> DcsvResult<()>
Insert a column with given column informations
- column_index : Position to put column
- column_name : New column name
- column_type : Column’s type
- limiter : Set limiter with
- placeholder : Placeholder will be applied to every row
sourcepub fn delete_column(&mut self, column_index: usize) -> DcsvResult<()>
pub fn delete_column(&mut self, column_index: usize) -> DcsvResult<()>
Delete a column with given column index
sourcepub fn set_limiter(
&mut self,
column: usize,
limiter: &ValueLimiter,
panic: bool
) -> DcsvResult<()>
pub fn set_limiter(
&mut self,
column: usize,
limiter: &ValueLimiter,
panic: bool
) -> DcsvResult<()>
Set a limiter to a column
- column : column’s index
- limiter : Target limiter
- panic : If true, failed set will occur panic
sourcepub fn export_schema(&self) -> String
pub fn export_schema(&self) -> String
Export virtual data’s schema(limiter) as string form
sourcepub fn try_get_column_index(&self, src: &str) -> Option<usize>
pub fn try_get_column_index(&self, src: &str) -> Option<usize>
Get a column index from src
Src can be either colum name or column index If colum index is out of range, it returns none
sourcepub fn get_row_count(&self) -> usize
pub fn get_row_count(&self) -> usize
Get total rows count
sourcepub fn get_column_count(&self) -> usize
pub fn get_column_count(&self) -> usize
Get total columns count
Trait Implementations
sourceimpl Clone for VirtualData
impl Clone for VirtualData
sourcefn clone(&self) -> VirtualData
fn clone(&self) -> VirtualData
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Default for VirtualData
impl Default for VirtualData
sourceimpl Display for VirtualData
impl Display for VirtualData
to_string implementation for virtual data
This returns csv value string
sourceimpl From<&'_ VirtualData> for ReadOnlyData
impl From<&'_ VirtualData> for ReadOnlyData
sourcefn from(data: &VirtualData) -> Self
fn from(data: &VirtualData) -> Self
Converts to this type from the input type.
sourceimpl<'data> From<&'data VirtualData> for ReadOnlyDataRef<'data>
impl<'data> From<&'data VirtualData> for ReadOnlyDataRef<'data>
sourcefn from(data: &'data VirtualData) -> Self
fn from(data: &'data VirtualData) -> Self
Converts to this type from the input type.
Auto Trait Implementations
impl RefUnwindSafe for VirtualData
impl Send for VirtualData
impl Sync for VirtualData
impl Unpin for VirtualData
impl UnwindSafe for VirtualData
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more