scylla_cql/frame/response/
authenticate.rs1use crate::frame::frame_errors::{
4 CqlAuthChallengeParseError, CqlAuthSuccessParseError, CqlAuthenticateParseError,
5};
6use crate::frame::types;
7
8#[derive(Debug)]
10pub struct Authenticate {
11 pub authenticator_name: String,
13}
14
15impl Authenticate {
16 pub fn deserialize(buf: &mut &[u8]) -> Result<Self, CqlAuthenticateParseError> {
18 let authenticator_name = types::read_string(buf)
19 .map_err(CqlAuthenticateParseError::AuthNameParseError)?
20 .to_string();
21
22 Ok(Authenticate { authenticator_name })
23 }
24}
25
26#[derive(Debug)]
28pub struct AuthSuccess {
29 pub success_message: Option<Vec<u8>>,
31}
32
33impl AuthSuccess {
34 pub fn deserialize(buf: &mut &[u8]) -> Result<Self, CqlAuthSuccessParseError> {
36 let success_message = types::read_bytes_opt(buf)
37 .map_err(CqlAuthSuccessParseError::SuccessMessageParseError)?
38 .map(ToOwned::to_owned);
39
40 Ok(AuthSuccess { success_message })
41 }
42}
43
44#[derive(Debug)]
50pub struct AuthChallenge {
51 pub authenticate_message: Option<Vec<u8>>,
54}
55
56impl AuthChallenge {
57 pub fn deserialize(buf: &mut &[u8]) -> Result<Self, CqlAuthChallengeParseError> {
59 let authenticate_message = types::read_bytes_opt(buf)
60 .map_err(CqlAuthChallengeParseError::AuthMessageParseError)?
61 .map(|b| b.to_owned());
62
63 Ok(AuthChallenge {
64 authenticate_message,
65 })
66 }
67}