iota_indexer/models/
obj_indices.rs1use diesel::prelude::*;
6
7use crate::{
8 schema::objects_version,
9 types::{IndexedDeletedObject, IndexedObject},
10};
11
12#[derive(Queryable, Insertable, Debug, Identifiable, Clone, QueryableByName)]
16#[diesel(table_name = objects_version, primary_key(object_id, object_version))]
17pub struct StoredObjectVersion {
18 pub object_id: Vec<u8>,
19 pub object_version: i64,
20 pub cp_sequence_number: i64,
21}
22
23impl From<&IndexedObject> for StoredObjectVersion {
24 fn from(o: &IndexedObject) -> Self {
25 Self {
26 object_id: o.object.id().to_vec(),
27 object_version: o.object.version().value() as i64,
28 cp_sequence_number: o.checkpoint_sequence_number as i64,
29 }
30 }
31}
32
33impl From<&IndexedDeletedObject> for StoredObjectVersion {
34 fn from(o: &IndexedDeletedObject) -> Self {
35 Self {
36 object_id: o.object_id.to_vec(),
37 object_version: o.object_version as i64,
38 cp_sequence_number: o.checkpoint_sequence_number as i64,
39 }
40 }
41}