sui_analytics_indexer/writers/
mod.rs1use crate::{FileFormat, ParquetSchema};
5use anyhow::Result;
6use serde::Serialize;
7use sui_types::base_types::EpochId;
8
9pub mod csv_writer;
10pub mod parquet_writer;
11
12pub trait AnalyticsWriter<S: Serialize + ParquetSchema>: Send + Sync + 'static {
13 fn file_format(&self) -> Result<FileFormat>;
15 fn write(&mut self, rows: Box<dyn Iterator<Item = S> + Send + Sync>) -> Result<()>;
17 fn flush(&mut self, end_checkpoint_seq_num: u64) -> Result<bool>;
19 fn reset(&mut self, epoch_num: EpochId, start_checkpoint_seq_num: u64) -> Result<()>;
21 fn file_size(&self) -> Result<Option<u64>>;
23 fn rows(&self) -> Result<usize>;
25}