kafkit-client 0.1.9

Kafka 4.0+ pure Rust client.
Documentation
use base64::Engine as _;
use base64::engine::general_purpose::URL_SAFE_NO_PAD;
use uuid::Uuid;

pub(super) fn kafka_uuid_string() -> String {
    loop {
        let encoded = URL_SAFE_NO_PAD.encode(Uuid::new_v4().as_bytes());
        if !encoded.starts_with('-') {
            return encoded;
        }
    }
}

#[cfg(test)]
mod tests {
    use super::kafka_uuid_string;

    #[test]
    fn kafka_uuid_string_uses_kafka_base64_format() {
        let id = kafka_uuid_string();

        assert_eq!(id.len(), 22);
        assert!(!id.starts_with('-'));
        assert!(!id.contains('='));
    }
}