kafka_protocol/messages/
sasl_handshake_request.rs1#![allow(unused)]
6
7use std::borrow::Borrow;
8use std::collections::BTreeMap;
9
10use anyhow::{bail, Result};
11use bytes::Bytes;
12use uuid::Uuid;
13
14use crate::protocol::{
15 buf::{ByteBuf, ByteBufMut},
16 compute_unknown_tagged_fields_size, types, write_unknown_tagged_fields, Decodable, Decoder,
17 Encodable, Encoder, HeaderVersion, Message, StrBytes, VersionRange,
18};
19
20#[non_exhaustive]
22#[derive(Debug, Clone, PartialEq)]
23pub struct SaslHandshakeRequest {
24 pub mechanism: StrBytes,
28}
29
30impl SaslHandshakeRequest {
31 pub fn with_mechanism(mut self, value: StrBytes) -> Self {
37 self.mechanism = value;
38 self
39 }
40}
41
42#[cfg(feature = "client")]
43impl Encodable for SaslHandshakeRequest {
44 fn encode<B: ByteBufMut>(&self, buf: &mut B, version: i16) -> Result<()> {
45 types::String.encode(buf, &self.mechanism)?;
46
47 Ok(())
48 }
49 fn compute_size(&self, version: i16) -> Result<usize> {
50 let mut total_size = 0;
51 total_size += types::String.compute_size(&self.mechanism)?;
52
53 Ok(total_size)
54 }
55}
56
57#[cfg(feature = "broker")]
58impl Decodable for SaslHandshakeRequest {
59 fn decode<B: ByteBuf>(buf: &mut B, version: i16) -> Result<Self> {
60 let mechanism = types::String.decode(buf)?;
61 Ok(Self { mechanism })
62 }
63}
64
65impl Default for SaslHandshakeRequest {
66 fn default() -> Self {
67 Self {
68 mechanism: Default::default(),
69 }
70 }
71}
72
73impl Message for SaslHandshakeRequest {
74 const VERSIONS: VersionRange = VersionRange { min: 0, max: 1 };
75 const DEPRECATED_VERSIONS: Option<VersionRange> = Some(VersionRange { min: 0, max: 0 });
76}
77
78impl HeaderVersion for SaslHandshakeRequest {
79 fn header_version(version: i16) -> i16 {
80 1
81 }
82}