use serde::Deserialize;
use std::fmt;
#[derive(Debug, PartialEq, Copy, Clone)]
#[non_exhaustive]
pub enum StreamProperties {
ResetStreamOffset,
KafkaBootstrapServers,
StreamsCommitInterval,
}
impl fmt::Display for StreamProperties {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
Self::ResetStreamOffset => write!(f, "ksql.streams.auto.offset.reset"),
Self::KafkaBootstrapServers => write!(f, "ksql.streams.bootstrap.servers"),
Self::StreamsCommitInterval => write!(f, "ksql.streams.commit.interval.ms"),
}
}
}
#[derive(Debug, Clone, Copy, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum CommandState {
Queued,
Parsing,
Executing,
Terminated,
Success,
Error,
}
#[derive(Debug, Clone, Copy, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum Format {
Json,
Avro,
Protobuf,
Delimited,
Kafka,
}
impl fmt::Display for Format {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
Self::Json => write!(f, "JSON"),
Self::Avro => write!(f, "Avro"),
Self::Protobuf => write!(f, "Protobuf"),
Self::Delimited => write!(f, "Delimited"),
Self::Kafka => write!(f, "Kafka"),
}
}
}
#[derive(Debug, Clone, Copy, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum Entity {
Stream,
Table,
}
impl fmt::Display for Entity {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
Self::Table => write!(f, "TABLE"),
Self::Stream => write!(f, "STREAM"),
}
}
}
#[derive(Debug, Clone, Copy, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum FieldType {
Integer,
BigInt,
Boolean,
Double,
String,
Map,
Array,
Struct,
}