scylla_cql/frame/response/
authenticate.rs1use crate::frame::frame_errors::{
2 CqlAuthChallengeParseError, CqlAuthSuccessParseError, CqlAuthenticateParseError,
3};
4use crate::frame::types;
5
6#[derive(Debug)]
8pub struct Authenticate {
9 pub authenticator_name: String,
10}
11
12impl Authenticate {
13 pub fn deserialize(buf: &mut &[u8]) -> Result<Self, CqlAuthenticateParseError> {
14 let authenticator_name = types::read_string(buf)
15 .map_err(CqlAuthenticateParseError::AuthNameParseError)?
16 .to_string();
17
18 Ok(Authenticate { authenticator_name })
19 }
20}
21
22#[derive(Debug)]
23pub struct AuthSuccess {
24 pub success_message: Option<Vec<u8>>,
25}
26
27impl AuthSuccess {
28 pub fn deserialize(buf: &mut &[u8]) -> Result<Self, CqlAuthSuccessParseError> {
29 let success_message = types::read_bytes_opt(buf)
30 .map_err(CqlAuthSuccessParseError::SuccessMessageParseError)?
31 .map(ToOwned::to_owned);
32
33 Ok(AuthSuccess { success_message })
34 }
35}
36
37#[derive(Debug)]
38pub struct AuthChallenge {
39 pub authenticate_message: Option<Vec<u8>>,
40}
41
42impl AuthChallenge {
43 pub fn deserialize(buf: &mut &[u8]) -> Result<Self, CqlAuthChallengeParseError> {
44 let authenticate_message = types::read_bytes_opt(buf)
45 .map_err(CqlAuthChallengeParseError::AuthMessageParseError)?
46 .map(|b| b.to_owned());
47
48 Ok(AuthChallenge {
49 authenticate_message,
50 })
51 }
52}