Skip to main content

StreamingSink

Trait StreamingSink 

Source
pub trait StreamingSink: Debug {
    // Required methods
    fn write_data(&mut self, data: Data) -> Result<()>;
    fn write_batch(&mut self, data: Vec<Data>) -> Result<()>;
    fn write_any(&mut self, message: &dyn Any) -> Result<bool>;
    fn flush(&mut self) -> Result<()>;
    fn close(&mut self) -> Result<()>;
}
Expand description

Object-safe streaming sink boundary substitutable by streaming backends.

Required Methods§

Source

fn write_data(&mut self, data: Data) -> Result<()>

Writes a single Data enum value.

§Errors

Returns an error if the sink cannot serialize or persist the value.

Source

fn write_batch(&mut self, data: Vec<Data>) -> Result<()>

Writes a batch of Data values.

§Errors

Returns an error if any item cannot be serialized or persisted.

Source

fn write_any(&mut self, message: &dyn Any) -> Result<bool>

Writes any supported Nautilus message value.

§Errors

Returns an error if the supported message cannot be serialized or persisted.

Source

fn flush(&mut self) -> Result<()>

Flushes buffered data to durable storage.

§Errors

Returns an error if buffered data cannot be flushed.

Source

fn close(&mut self) -> Result<()>

Closes sink after flushing buffered data.

§Errors

Returns an error if flushing or closing the sink fails.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl StreamingSink for Rc<RefCell<FeatherWriter>>

Source§

fn write_data(&mut self, data: Data) -> Result<()>

Source§

fn write_batch(&mut self, data: Vec<Data>) -> Result<()>

Source§

fn write_any(&mut self, message: &dyn Any) -> Result<bool>

Source§

fn flush(&mut self) -> Result<()>

Source§

fn close(&mut self) -> Result<()>

Implementors§

Source§

impl StreamingSink for FeatherWriter

Source§

impl<T> StreamingSink for T
where T: PromotionSink + Debug,