Struct arrow_json::writer::Writer

source ·
pub struct Writer<W, F>
where W: Write, F: JsonFormat,
{ writer: W, started: bool, finished: bool, format: F, options: EncoderOptions, }
Expand description

A JSON writer which serializes [RecordBatch]es to a stream of u8 encoded JSON objects.

See the module level documentation for detailed usage and examples. The specific format of the stream is controlled by the JsonFormat type parameter.

By default the writer will skip writing keys with null values for backward compatibility. See WriterBuilder on how to customize this behaviour when creating a new writer.

Fields§

§writer: W

Underlying writer to use to write bytes

§started: bool

Has the writer output any records yet?

§finished: bool

Is the writer finished?

§format: F

Determines how the byte stream is formatted

§options: EncoderOptions

Controls how JSON should be encoded, e.g. whether to write explicit nulls or skip them

Implementations§

source§

impl<W, F> Writer<W, F>
where W: Write, F: JsonFormat,

source

pub fn new(writer: W) -> Self

Construct a new writer

source

pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>

Serialize batch to JSON output

source

pub fn write_batches( &mut self, batches: &[&RecordBatch], ) -> Result<(), ArrowError>

Serialize batches to JSON output

source

pub fn finish(&mut self) -> Result<(), ArrowError>

Finishes the output stream. This function must be called after all record batches have been produced. (e.g. producing the final ']' if writing arrays.

source

pub fn into_inner(self) -> W

Unwraps this Writer<W>, returning the underlying writer

Trait Implementations§

source§

impl<W, F> Debug for Writer<W, F>
where W: Write + Debug, F: JsonFormat + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<W, F> RecordBatchWriter for Writer<W, F>
where W: Write, F: JsonFormat,

source§

fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>

Write a single batch to the writer.
source§

fn close(self) -> Result<(), ArrowError>

Write footer or termination data, then mark the writer as done.

Auto Trait Implementations§

§

impl<W, F> Freeze for Writer<W, F>
where W: Freeze, F: Freeze,

§

impl<W, F> RefUnwindSafe for Writer<W, F>

§

impl<W, F> Send for Writer<W, F>
where W: Send, F: Send,

§

impl<W, F> Sync for Writer<W, F>
where W: Sync, F: Sync,

§

impl<W, F> Unpin for Writer<W, F>
where W: Unpin, F: Unpin,

§

impl<W, F> UnwindSafe for Writer<W, F>
where W: UnwindSafe, F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,