Skip to main content

spg_sqlx/
query_result.rs

1//! v7.16.0 — `sqlx::QueryResult` for SPG INSERT/UPDATE/DELETE.
2
3/// Rows-affected counter returned by every DML execute. SPG
4/// doesn't have last-insert-id (BIGSERIAL is computed inside
5/// the engine + visible only via `RETURNING`); only the
6/// affected-count is surfaced here.
7#[derive(Debug, Default, Clone)]
8pub struct SpgQueryResult {
9    rows_affected: u64,
10}
11
12impl SpgQueryResult {
13    /// Build a fresh result with the given rows-affected count.
14    #[must_use]
15    pub const fn new(rows_affected: u64) -> Self {
16        Self { rows_affected }
17    }
18
19    /// Reads back the rows-affected count. Mirrors
20    /// `sqlx::postgres::PgQueryResult::rows_affected`.
21    #[must_use]
22    pub const fn rows_affected(&self) -> u64 {
23        self.rows_affected
24    }
25}
26
27impl Extend<SpgQueryResult> for SpgQueryResult {
28    fn extend<T: IntoIterator<Item = SpgQueryResult>>(&mut self, iter: T) {
29        for next in iter {
30            self.rows_affected = self.rows_affected.saturating_add(next.rows_affected);
31        }
32    }
33}