use crate::atuin_common::record::{EncryptedData, Host, Record}; use sqlx::{Row, postgres::PgRow}; pub(crate) struct DbRecord(pub Record); impl<'a> ::sqlx::FromRow<'a, PgRow> for DbRecord { fn from_row(row: &'a PgRow) -> ::sqlx::Result { let timestamp: i64 = row.try_get("timestamp")?; let idx: i64 = row.try_get("idx")?; let data = EncryptedData { data: row.try_get("data")?, content_encryption_key: row.try_get("cek")?, }; Ok(Self(Record { id: row.try_get("client_id")?, host: Host::new(row.try_get("host")?), idx: idx as u64, timestamp: timestamp as u64, version: row.try_get("version")?, tag: row.try_get("tag")?, data, })) } } impl From for Record { fn from(other: DbRecord) -> Self { other.0 } }