|
@@ -45,6 +45,7 @@ impl<P0: EntityPart> EntityPartList for P0 {
|
|
|
let idx = 1; // starting index is 1 since index 0 is the ID
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d0, P0);
|
|
|
|
|
|
+ let _ = idx;
|
|
|
Ok(d0)
|
|
|
}
|
|
|
|
|
@@ -88,6 +89,7 @@ impl<P0: EntityPart, P1: EntityPart> EntityPartList for (P0, P1) {
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d0, P0);
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d1, P1);
|
|
|
|
|
|
+ let _ = idx;
|
|
|
Ok((d0, d1))
|
|
|
}
|
|
|
|
|
@@ -115,6 +117,7 @@ impl<P0: EntityPart, P1: EntityPart, P2: EntityPart> EntityPartList for (P0, P1,
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d1, P1);
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d2, P2);
|
|
|
|
|
|
+ let _ = idx;
|
|
|
Ok((d0, d1, d2))
|
|
|
}
|
|
|
|
|
@@ -147,6 +150,7 @@ impl<P0: EntityPart, P1: EntityPart, P2: EntityPart, P3: EntityPart> EntityPartL
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d2, P2);
|
|
|
build_datum!(conn, ctx, base_rowid, stmt, idx, d3, P3);
|
|
|
|
|
|
+ let _ = idx;
|
|
|
Ok((d0, d1, d2, d3))
|
|
|
}
|
|
|
|
|
@@ -163,3 +167,82 @@ impl<P0: EntityPart, P1: EntityPart, P2: EntityPart, P3: EntityPart> EntityPartL
|
|
|
v.visit_datum::<P3>(&datum_list.3);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+impl<P0: EntityPart, P1: EntityPart, P2: EntityPart, P3: EntityPart, P4: EntityPart> EntityPartList
|
|
|
+ for (P0, P1, P2, P3, P4)
|
|
|
+{
|
|
|
+ type DatumList = (P0::Datum, P1::Datum, P2::Datum, P3::Datum, P4::Datum);
|
|
|
+
|
|
|
+ fn build_datum_list(
|
|
|
+ conn: &DBConnection,
|
|
|
+ ctx: &'static str,
|
|
|
+ stmt: &mut sqlite::Statement<'static>,
|
|
|
+ ) -> DBResult<Self::DatumList> {
|
|
|
+ let base_rowid: i64 = stmt.read(0)?;
|
|
|
+ let idx = 1; // starting index is 1 since index 0 is the ID
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d0, P0);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d1, P1);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d2, P2);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d3, P3);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d4, P4);
|
|
|
+
|
|
|
+ let _ = idx;
|
|
|
+ Ok((d0, d1, d2, d3, d4))
|
|
|
+ }
|
|
|
+
|
|
|
+ fn accept_part_visitor(v: &mut impl EntityPartVisitor) {
|
|
|
+ v.visit::<P0>();
|
|
|
+ v.visit::<P1>();
|
|
|
+ v.visit::<P2>();
|
|
|
+ v.visit::<P3>();
|
|
|
+ v.visit::<P4>();
|
|
|
+ }
|
|
|
+ fn accept_part_visitor_ref(datum_list: &Self::DatumList, v: &mut impl EntityPartVisitor) {
|
|
|
+ v.visit_datum::<P0>(&datum_list.0);
|
|
|
+ v.visit_datum::<P1>(&datum_list.1);
|
|
|
+ v.visit_datum::<P2>(&datum_list.2);
|
|
|
+ v.visit_datum::<P3>(&datum_list.3);
|
|
|
+ v.visit_datum::<P4>(&datum_list.4);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+impl<P0: EntityPart, P1: EntityPart, P2: EntityPart, P3: EntityPart, P4: EntityPart, P5: EntityPart> EntityPartList
|
|
|
+ for (P0, P1, P2, P3, P4, P5)
|
|
|
+{
|
|
|
+ type DatumList = (P0::Datum, P1::Datum, P2::Datum, P3::Datum, P4::Datum, P5::Datum);
|
|
|
+
|
|
|
+ fn build_datum_list(
|
|
|
+ conn: &DBConnection,
|
|
|
+ ctx: &'static str,
|
|
|
+ stmt: &mut sqlite::Statement<'static>,
|
|
|
+ ) -> DBResult<Self::DatumList> {
|
|
|
+ let base_rowid: i64 = stmt.read(0)?;
|
|
|
+ let idx = 1; // starting index is 1 since index 0 is the ID
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d0, P0);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d1, P1);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d2, P2);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d3, P3);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d4, P4);
|
|
|
+ build_datum!(conn, ctx, base_rowid, stmt, idx, d5, P5);
|
|
|
+
|
|
|
+ let _ = idx;
|
|
|
+ Ok((d0, d1, d2, d3, d4, d5))
|
|
|
+ }
|
|
|
+
|
|
|
+ fn accept_part_visitor(v: &mut impl EntityPartVisitor) {
|
|
|
+ v.visit::<P0>();
|
|
|
+ v.visit::<P1>();
|
|
|
+ v.visit::<P2>();
|
|
|
+ v.visit::<P3>();
|
|
|
+ v.visit::<P4>();
|
|
|
+ v.visit::<P5>();
|
|
|
+ }
|
|
|
+ fn accept_part_visitor_ref(datum_list: &Self::DatumList, v: &mut impl EntityPartVisitor) {
|
|
|
+ v.visit_datum::<P0>(&datum_list.0);
|
|
|
+ v.visit_datum::<P1>(&datum_list.1);
|
|
|
+ v.visit_datum::<P2>(&datum_list.2);
|
|
|
+ v.visit_datum::<P3>(&datum_list.3);
|
|
|
+ v.visit_datum::<P4>(&datum_list.4);
|
|
|
+ v.visit_datum::<P5>(&datum_list.5);
|
|
|
+ }
|
|
|
+}
|