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}