scylla_cql/frame/request/
prepare.rs1use std::num::TryFromIntError;
2
3use thiserror::Error;
4
5use crate::frame::frame_errors::CqlRequestSerializationError;
6
7use crate::{
8 frame::request::{RequestOpcode, SerializableRequest},
9 frame::types,
10};
11
12pub struct Prepare<'a> {
13 pub query: &'a str,
14}
15
16impl SerializableRequest for Prepare<'_> {
17 const OPCODE: RequestOpcode = RequestOpcode::Prepare;
18
19 fn serialize(&self, buf: &mut Vec<u8>) -> Result<(), CqlRequestSerializationError> {
20 types::write_long_string(self.query, buf)
21 .map_err(PrepareSerializationError::StatementStringSerialization)?;
22 Ok(())
23 }
24}
25
26#[non_exhaustive]
28#[derive(Error, Debug, Clone)]
29pub enum PrepareSerializationError {
30 #[error("Failed to serialize statement contents: {0}")]
32 StatementStringSerialization(TryFromIntError),
33}