zero_postgres/
pipeline.rs

1//! Shared pipeline types.
2
3use crate::state::extended::PreparedStatement;
4
5/// A ticket for a queued pipeline operation.
6///
7/// Created by [`Pipeline::exec`].
8/// Claim with [`Pipeline::claim_collect`], [`Pipeline::claim_one`], or [`Pipeline::claim_drop`].
9#[derive(Debug, Clone, Copy)]
10#[must_use]
11pub struct Ticket<'a> {
12    pub(crate) seq: usize,
13    /// Reference to prepared statement (for cached RowDescription), None for raw SQL.
14    pub(crate) stmt: Option<&'a PreparedStatement>,
15}
16
17/// What response sequence to expect for a queued operation.
18#[derive(Debug, Clone, Copy, PartialEq, Eq)]
19pub(crate) enum Expectation {
20    /// Parse + Bind + Execute: ParseComplete + BindComplete + RowDescription/NoData + DataRow* + terminal
21    ParseBindExecute,
22    /// Bind + Execute with cached RowDescription: BindComplete + DataRow* + terminal
23    BindExecute,
24    /// Sync: ReadyForQuery
25    Sync,
26}