mod conversion;
mod projection;
mod sink;
mod source;
pub use sink::Sink;
pub use source::Source;
use std::collections::BTreeMap;
use std::net::SocketAddr;
use schema_core::{FailurePolicy, IndexSchema, common};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Config {
pub source: Source,
pub sinks: BTreeMap<common::SinkName, Sink>,
pub indexes: BTreeMap<common::IndexName, Index>,
#[serde(default)]
pub on_error: FailurePolicy,
#[serde(default)]
pub server: ServerConfig,
#[serde(default)]
pub prefix: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct ServerConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_address: Option<SocketAddr>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub private_address: Option<SocketAddr>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Index {
pub enabled: bool,
pub schema: IndexSchema,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub on_error: Option<FailurePolicy>,
}