#![forbid(unsafe_code)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[macro_use]
mod macros;
pub mod buffer;
pub mod content_type;
pub mod envelope;
pub mod error;
pub mod format;
pub mod progress;
pub mod stream;
cfg_arrow! {
pub use arrow_format::{ArrowIpcEncoder, ArrowRecordBatchIpcStreamFormat};
pub use arrow_ipc_codec::ArrowIpcCodec;
mod arrow_format;
mod arrow_ipc_codec;
}
cfg_protobuf! {
pub use protobuf_format::{ProtobufEncoder, ProtobufStreamFormat};
pub use protobuf_len_codec::ProtobufLenPrefixCodec;
mod protobuf_format;
mod protobuf_len_codec;
}
cfg_text! {
pub use text_format::{TextEncoder, TextStreamFormat};
mod text_format;
}
cfg_csv! {
pub use csv_format::{CsvEncoder, CsvParser, CsvStreamFormat};
pub use csv_record_codec::{CsvFrameConfig, CsvRecordCodec};
pub use csv::{QuoteStyle, Terminator};
mod csv_format;
mod csv_record_codec;
}
cfg_json! {
pub use json_formats::{
JsonArrayEncoder, JsonArrayStreamFormat, JsonNewLineEncoder, JsonNewLineStreamFormat,
};
pub use json_array_codec::JsonArrayCodec;
pub use json_nl_codec::JsonNewLineCodec;
mod json_array_codec;
mod json_formats;
mod json_nl_codec;
}
pub use buffer::{buffer_bytes, buffer_ready_items};
pub use content_type::ContentType;
pub use envelope::StreamFormatEnvelope;
pub use error::{StreamError, StreamErrorKind};
pub use format::{
DecodeOptions, DefaultFormat, FrameParser, IdentityParser, ItemEncoder, StreamFormat,
StreamFormatDecode, StreamFormatEncode, DEFAULT_BUF_CAPACITY,
};
pub use progress::{
count_bytes, count_items, instrument, Counting, Direction, ErrorInfo, Progress, ProgressItem,
ProgressOptions, Side, StreamContext, StreamErrorHandler, StreamOutcome, StreamProgress,
StreamProgressHandler, DEFAULT_PROGRESS_INTERVAL,
};
pub use stream::{decode_stream, encode_stream};
pub type StreamResult<T> = std::result::Result<T, StreamError>;