From daca0e6b68d32d885face00d68df5b5cb00e098b Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 21 Feb 2025 16:15:29 +0200 Subject: Remove polymorphism from DB, replace with From based approach --- log_db/src/record.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 log_db/src/record.rs (limited to 'log_db/src/record.rs') diff --git a/log_db/src/record.rs b/log_db/src/record.rs new file mode 100644 index 0000000..b349853 --- /dev/null +++ b/log_db/src/record.rs @@ -0,0 +1,38 @@ +use super::*; + +pub struct Record { + values: Vec, +} + +impl Record { + pub fn values(&self) -> &[Value] { + &self.values + } +} + +impl IntoIterator for Record { + type Item = Value; + type IntoIter = std::vec::IntoIter; + + fn into_iter(self) -> Self::IntoIter { + self.values.into_iter() + } +} + +impl From> for Record { + fn from(values: Vec) -> Self { + Record { values } + } +} + +impl From for Vec { + fn from(record: Record) -> Self { + record.values + } +} + +impl From for Record { + fn from(row: Row) -> Self { + Record { values: row.values } + } +} -- cgit v1.3