[−][src]Struct calamine::RangeDeserializerBuilder
Builds a Range
deserializer with some configuration options.
This can be used to optionally parse the first row as a header. Once built,
a RangeDeserializer
s cannot be changed.
Methods
impl RangeDeserializerBuilder<'static, &'static str>
[src]
pub fn new() -> Self
[src]
Constructs a new builder for configuring Range
deserialization.
pub fn has_headers(&mut self, yes: bool) -> &mut Self
[src]
Decide whether to treat the first row as a special header row.
Example
fn example() -> Result<(), Error> { let path = format!("{}/tests/temperature.xlsx", env!("CARGO_MANIFEST_DIR")); let mut workbook: Xlsx<_> = open_workbook(path)?; let range = workbook.worksheet_range("Sheet1") .ok_or(Error::Msg("Cannot find 'Sheet1'"))??; let mut iter = RangeDeserializerBuilder::new() .has_headers(false) .from_range(&range)?; if let Some(result) = iter.next() { let row: Vec<DataType> = result?; assert_eq!(row, [DataType::from("label"), DataType::from("value")]); } else { return Err(From::from("expected at least three records but got none")); } if let Some(result) = iter.next() { let row: Vec<DataType> = result?; assert_eq!(row, [DataType::from("celsius"), DataType::from(22.2222)]); } else { return Err(From::from("expected at least three records but got one")); } Ok(()) }
impl<'h, H: AsRef<str> + Clone + 'h> RangeDeserializerBuilder<'h, H>
[src]
pub fn with_headers(headers: &'h [H]) -> Self
[src]
Build a RangeDeserializer
from this configuration and keep only selected headers.
Example
fn example() -> Result<(), Error> { let path = format!("{}/tests/temperature.xlsx", env!("CARGO_MANIFEST_DIR")); let mut workbook: Xlsx<_> = open_workbook(path)?; let range = workbook.worksheet_range("Sheet1") .ok_or(Error::Msg("Cannot find 'Sheet1'"))??; let mut iter = RangeDeserializerBuilder::with_headers(&["value", "label"]).from_range(&range)?; if let Some(result) = iter.next() { let (value, label): (f64, String) = result?; assert_eq!(label, "celsius"); assert_eq!(value, 22.2222); Ok(()) } else { return Err(From::from("expected at least one record but got none")); } }
pub fn from_range<'cell, T, D>(
&self,
range: &'cell Range<T>
) -> Result<RangeDeserializer<'cell, T, D>, DeError> where
T: ToCellDeserializer<'cell>,
D: DeserializeOwned,
[src]
&self,
range: &'cell Range<T>
) -> Result<RangeDeserializer<'cell, T, D>, DeError> where
T: ToCellDeserializer<'cell>,
D: DeserializeOwned,
Build a RangeDeserializer
from this configuration.
Example
fn example() -> Result<(), Error> { let path = format!("{}/tests/temperature.xlsx", env!("CARGO_MANIFEST_DIR")); let mut workbook: Xlsx<_> = open_workbook(path)?; let range = workbook.worksheet_range("Sheet1") .ok_or(Error::Msg("Cannot find 'Sheet1'"))??; let mut iter = RangeDeserializerBuilder::new().from_range(&range)?; if let Some(result) = iter.next() { let (label, value): (String, f64) = result?; assert_eq!(label, "celsius"); assert_eq!(value, 22.2222); Ok(()) } else { return Err(From::from("expected at least one record but got none")); } }
Trait Implementations
impl<'h, H: Clone + 'h> Clone for RangeDeserializerBuilder<'h, H>
[src]
fn clone(&self) -> RangeDeserializerBuilder<'h, H>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Default for RangeDeserializerBuilder<'static, &'static str>
[src]
Auto Trait Implementations
impl<'h, H> Unpin for RangeDeserializerBuilder<'h, H>
impl<'h, H> Sync for RangeDeserializerBuilder<'h, H> where
H: Sync,
H: Sync,
impl<'h, H> Send for RangeDeserializerBuilder<'h, H> where
H: Sync,
H: Sync,
impl<'h, H> RefUnwindSafe for RangeDeserializerBuilder<'h, H> where
H: RefUnwindSafe,
H: RefUnwindSafe,
impl<'h, H> UnwindSafe for RangeDeserializerBuilder<'h, H> where
H: RefUnwindSafe,
H: RefUnwindSafe,
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,