Struct dcsv::VirtualData
source · [−]Expand description
Virtual data struct 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 cannot have duplicate column name due to previous hashmap implementaiton
- VirtualData allows limiters to confine csv value’s possible states.
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
This will fail if the value cannot be converted to column’s type
sourcepub fn insert_column_with_type(
&mut self,
column_index: usize,
column_name: &str,
column_type: ValueType,
limiter: Option<ValueLimiter>,
placeholder: Option<Value>
) -> DcsvResult<()>
pub fn insert_column_with_type(
&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
Args
- 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 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
Args
- column : column’s index
- limiter : Target limiter
- panic : If true, failed set will occur panic
sourcepub fn qualify(
&self,
column: usize,
limiter: &ValueLimiter
) -> DcsvResult<Vec<&Row>>
pub fn qualify(
&self,
column: usize,
limiter: &ValueLimiter
) -> DcsvResult<Vec<&Row>>
Qualify data and get reference of qualifed rows.
sourcepub fn qualify_multiple(
&self,
qualifiers: Vec<(usize, &ValueLimiter)>
) -> DcsvResult<Vec<&Row>>
pub fn qualify_multiple(
&self,
qualifiers: Vec<(usize, &ValueLimiter)>
) -> DcsvResult<Vec<&Row>>
Qualify data with multiple limiters and get reference of qualifed rows.
sourcepub fn export_schema(&self) -> String
pub fn export_schema(&self) -> String
Export virtual data’s schema(limiter) as string form
Schema is expressed as csv value. Each line is structured with following order.
- column
- type
- default
- variant
- pattern
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_iterator(&self) -> IntoIter<&Value>
pub fn get_iterator(&self) -> IntoIter<&Value>
Get iterator.
This methods returns iterator which respects column orders
sourcepub fn get_row_iterator(&self, row_index: usize) -> DcsvResult<IntoIter<&Value>>
pub fn get_row_iterator(&self, row_index: usize) -> DcsvResult<IntoIter<&Value>>
Get iterator of a row with given index
This respects columns orders
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<'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.
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 VCont for VirtualData
impl VCont for VirtualData
sourcefn move_row(&mut self, src_index: usize, target_index: usize) -> DcsvResult<()>
fn move_row(&mut self, src_index: usize, target_index: usize) -> DcsvResult<()>
Move given row to a target row index
sourcefn move_column(&mut self, src_index: usize, target_index: usize) -> DcsvResult<()>
fn move_column(&mut self, src_index: usize, target_index: usize) -> DcsvResult<()>
Move a given column to target column index
sourcefn rename_column(&mut self, column_index: usize, new_name: &str) -> DcsvResult<()>
fn rename_column(&mut self, column_index: usize, new_name: &str) -> DcsvResult<()>
Rename a column
Column’s name cannot be an exsiting name
- column : column_index
- new_name : New column name
sourcefn set_column(&mut self, column_index: usize, value: Value) -> DcsvResult<()>
fn set_column(&mut self, column_index: usize, value: Value) -> DcsvResult<()>
Set values to a column
Given value will override every row’s value
sourcefn edit_row(
&mut self,
row_index: usize,
values: &[Option<Value>]
) -> DcsvResult<()>
fn edit_row(
&mut self,
row_index: usize,
values: &[Option<Value>]
) -> DcsvResult<()>
Edit a row
Only edit row’s cell when value is not none
sourcefn set_row(&mut self, row_index: usize, values: &[Value]) -> DcsvResult<()>
fn set_row(&mut self, row_index: usize, values: &[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.
sourcefn set_cell(&mut self, x: usize, y: usize, value: Value) -> DcsvResult<()>
fn set_cell(&mut self, x: usize, y: usize, value: Value) -> DcsvResult<()>
Set cell value by coordinate
sourcefn insert_row(
&mut self,
row_index: usize,
source: Option<&[Value]>
) -> DcsvResult<()>
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
sourcefn delete_row(&mut self, row_index: usize) -> bool
fn delete_row(&mut self, row_index: usize) -> bool
Delete a row with given row_index
This doesn’t fail but silently do nothing if index is out of range
sourcefn delete_column(&mut self, column_index: usize) -> DcsvResult<()>
fn delete_column(&mut self, column_index: usize) -> DcsvResult<()>
Delete a column with given column index
sourcefn get_row_count(&self) -> usize
fn get_row_count(&self) -> usize
Get total rows count
sourcefn get_column_count(&self) -> usize
fn get_column_count(&self) -> usize
Get total columns count
sourcefn insert_column(
&mut self,
column_index: usize,
column_name: &str
) -> DcsvResult<()>
fn insert_column(
&mut self,
column_index: usize,
column_name: &str
) -> DcsvResult<()>
Insert a column with given column informations
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