kafkaesque 0.0.15

Kafka implementations in Rust (Unofficial)
Documentation
use crate::formats::api_keys::ApiKey;
use crate::formats::codec::{Read, Write};
use crate::formats::request::{ApiVersion, RequestMessage};
use crate::formats::{ErrorCode, NullableString};

#[derive(Debug, Write, RequestMessage)]
#[request_message(version = 0, key = "CreateTopics")]
pub struct CreateTopicsReqV0 {
    pub topics: Vec<CreateTopicsReqV0CreateTopic>,
    pub timeout_ms: i32,
}

#[derive(Debug, Write, Read)]
pub struct CreateTopicsReqV0CreateTopic {
    pub name: String,
    pub num_partitions: i32,
    pub replication_factor: i16,
    pub assignments: Vec<CreateTopicV0Assignments>,
    pub configs: Vec<CreateTopicsV0Config>,
}

#[derive(Debug, Write, Read)]
pub struct CreateTopicV0Assignments {
    pub partition_index: i32,
    pub broker_ids: Vec<i32>,
}

#[derive(Debug, Write, Read)]
pub struct CreateTopicsV0Config {
    pub name: String,
    pub value: NullableString,
}

#[derive(Debug, Write, Read)]
pub struct CreateTopicsRespV0 {
    pub topics: Vec<CreateTopicsRespV0Topic>,
}

#[derive(Debug, Write, Read)]
pub struct CreateTopicsRespV0Topic {
    pub name: String,
    pub err_code: ErrorCode,
}