1pub mod chunking;
5mod config;
6mod encoder;
7pub mod format;
8pub mod framing;
9pub mod serializer;
10mod transformer;
11pub use chunking::{Chunker, Chunking, GelfChunker};
12pub use config::{EncodingConfig, EncodingConfigWithFraming, SinkType};
13pub use encoder::{BatchEncoder, BatchSerializer, Encoder, EncoderKind};
14#[cfg(feature = "arrow")]
15pub use format::{
16 ArrowEncodingError, ArrowStreamSerializer, ArrowStreamSerializerConfig, SchemaProvider,
17};
18pub use format::{
19 AvroSerializer, AvroSerializerConfig, AvroSerializerOptions, CefSerializer,
20 CefSerializerConfig, CsvSerializer, CsvSerializerConfig, GelfSerializer, GelfSerializerConfig,
21 JsonSerializer, JsonSerializerConfig, JsonSerializerOptions, LogfmtSerializer,
22 LogfmtSerializerConfig, NativeJsonSerializer, NativeJsonSerializerConfig, NativeSerializer,
23 NativeSerializerConfig, ProtobufSerializer, ProtobufSerializerConfig,
24 ProtobufSerializerOptions, RawMessageSerializer, RawMessageSerializerConfig, TextSerializer,
25 TextSerializerConfig,
26};
27#[cfg(feature = "opentelemetry")]
28pub use format::{OtlpSerializer, OtlpSerializerConfig};
29#[cfg(feature = "syslog")]
30pub use format::{SyslogSerializer, SyslogSerializerConfig};
31pub use framing::{
32 BoxedFramer, BoxedFramingError, BytesEncoder, BytesEncoderConfig, CharacterDelimitedEncoder,
33 CharacterDelimitedEncoderConfig, CharacterDelimitedEncoderOptions, Framer, FramingConfig,
34 LengthDelimitedEncoder, LengthDelimitedEncoderConfig, NewlineDelimitedEncoder,
35 NewlineDelimitedEncoderConfig, VarintLengthDelimitedEncoder,
36 VarintLengthDelimitedEncoderConfig,
37};
38#[cfg(feature = "arrow")]
39pub use serializer::BatchSerializerConfig;
40pub use serializer::{Serializer, SerializerConfig};
41pub use transformer::{TimestampFormat, Transformer};
42
43pub type BuildError = Box<dyn std::error::Error + Send + Sync + 'static>;
45
46#[derive(Debug)]
48pub enum Error {
49 FramingError(BoxedFramingError),
51 SerializingError(vector_common::Error),
53 SchemaConstraintViolation(vector_common::Error),
55}
56
57impl std::fmt::Display for Error {
58 fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
59 match self {
60 Self::FramingError(error) => write!(formatter, "FramingError({error})"),
61 Self::SerializingError(error) => write!(formatter, "SerializingError({error})"),
62 Self::SchemaConstraintViolation(error) => {
63 write!(formatter, "SchemaConstraintViolation({error})")
64 }
65 }
66 }
67}
68
69impl std::error::Error for Error {}
70
71impl From<std::io::Error> for Error {
72 fn from(error: std::io::Error) -> Self {
73 Self::FramingError(Box::new(error))
74 }
75}