[−][src]Struct csv_core::Writer 
A writer for CSV data.
RFC 4180
This writer conforms to RFC 4180 with one exception: it doesn't guarantee that all records written are of the same length. Instead, the onus is on the caller to ensure that all records written are of the same length.
Note that the default configuration of a Writer uses \n for record
terminators instead of \r\n as specified by RFC 4180. Use the
terminator method on WriterBuilder to set the terminator to \r\n if
it's desired.
Methods
impl Writer[src]
pub fn new() -> Writer[src]
Creates a new CSV writer with the default configuration.
pub fn finish(&mut self, output: &mut [u8]) -> (WriteResult, usize)[src]
Finish writing CSV data to output.
This must be called when one is done writing CSV data to output.
In particular, it will write closing quotes if necessary.
pub fn field(
    &mut self, 
    input: &[u8], 
    output: &mut [u8]
) -> (WriteResult, usize, usize)[src]
&mut self,
input: &[u8],
output: &mut [u8]
) -> (WriteResult, usize, usize)
Write a single CSV field from input to output while employing this
writer's quoting style.
This returns the result of writing field data, in addition to the
number of bytes consumed from input and the number of bytes
written to output.
The result of writing field data is either WriteResult::InputEmpty
or WriteResult::OutputFull. The former occurs when all bytes in
input were copied to output, while the latter occurs when output
is too small to fit everything from input. The maximum number of
bytes that can be written to output is 2 + (2 * input.len())
because of quoting. (The worst case is a field consisting entirely
of quotes.)
Multiple successive calls to field will write more data to the same
field. Subsequent fields can be written by calling either delimiter
or terminator first.
If this writer's quoting style is QuoteStyle::Necessary, then input
should contain the entire field. Otherwise, whether the field needs
to be quoted or not cannot be determined.
pub fn delimiter(&mut self, output: &mut [u8]) -> (WriteResult, usize)[src]
Write the configured field delimiter to output.
If the output buffer does not have enough room to fit
a field delimiter, then nothing is written to output
and WriteResult::OutputFull is returned. Otherwise,
WriteResult::InputEmpty is returned along with the number of bytes
written to output (which is always 1).
pub fn terminator(&mut self, output: &mut [u8]) -> (WriteResult, usize)[src]
Write the configured record terminator to output.
If the output buffer does not have enough room to fit a record
terminator, then no part of the terminator is written and
WriteResult::OutputFull is returned. Otherwise,
WriteResult::InputEmpty is returned along with the number of bytes
written to output (which is always 1 or 2).
pub fn is_special_byte(&self, b: u8) -> bool[src]
Returns true if and only if the given byte corresponds to a special byte in this CSV writer's configuration.
Note that this does not take into account this writer's quoting style.
pub fn should_quote(&self, input: &[u8]) -> bool[src]
Returns true if and only if we should put the given field data in quotes. This takes the quoting style into account.
pub fn get_delimiter(&self) -> u8[src]
Return the delimiter used for this writer.
pub fn get_terminator(&self) -> Terminator[src]
Return the terminator used for this writer.
pub fn get_quote_style(&self) -> QuoteStyle[src]
Return the quoting style used for this writer.
pub fn get_quote(&self) -> u8[src]
Return the quote character used for this writer.
pub fn get_escape(&self) -> u8[src]
Return the escape character used for this writer.
pub fn get_double_quote(&self) -> bool[src]
Return whether this writer doubles quotes or not. When the writer does not double quotes, it will escape them using the escape character.
Trait Implementations
impl Debug for Writer[src]
impl Clone for Writer[src]
fn clone(&self) -> Writer[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
impl Default for Writer[src]
Auto Trait Implementations
impl Unpin for Writer
impl Send for Writer
impl Sync for Writer
impl UnwindSafe for Writer
impl RefUnwindSafe for Writer
Blanket Implementations
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> Into<U> for T where
    U: From<T>, [src]
U: From<T>,
impl<T> From<T> for T[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,
impl<T> ToOwned for T where
    T: Clone, [src]
T: Clone,