Skip to content

Commit

Permalink
Add Debug impl for PgRow (launchbadge#2917)
Browse files Browse the repository at this point in the history
  • Loading branch information
g-bartoszek authored Apr 22, 2024
1 parent 439ac85 commit a5d7fff
Showing 1 changed file with 27 additions and 2 deletions.
29 changes: 27 additions & 2 deletions sqlx-postgres/src/row.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ use crate::message::DataRow;
use crate::statement::PgStatementMetadata;
use crate::value::PgValueFormat;
use crate::{PgColumn, PgValueRef, Postgres};
use std::sync::Arc;

pub(crate) use sqlx_core::row::Row;
use sqlx_core::type_checking::TypeChecking;
use sqlx_core::value::ValueRef;
use std::fmt::Debug;
use std::sync::Arc;

/// Implementation of [`Row`] for PostgreSQL.
pub struct PgRow {
Expand Down Expand Up @@ -48,3 +50,26 @@ impl ColumnIndex<PgRow> for &'_ str {
.map(|v| *v)
}
}

impl Debug for PgRow {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "PgRow ")?;

let mut debug_map = f.debug_map();
for (index, column) in self.columns().iter().enumerate() {
match self.try_get_raw(index) {
Ok(value) => {
debug_map.entry(
&column.name,
&Postgres::fmt_value_debug(&<PgValueRef as ValueRef>::to_owned(&value)),
);
}
Err(error) => {
debug_map.entry(&column.name, &format!("decode error: {error:?}"));
}
}
}

debug_map.finish()
}
}

0 comments on commit a5d7fff

Please sign in to comment.