iota_indexer/models/
packages.rs1use diesel::prelude::*;
6
7use crate::{schema::packages, types::IndexedPackage};
8
9#[derive(Queryable, Insertable, Selectable, Clone, Debug, Identifiable)]
10#[diesel(table_name = packages, primary_key(package_id))]
11pub struct StoredPackage {
12 pub package_id: Vec<u8>,
13 pub original_id: Vec<u8>,
14 pub package_version: i64,
15 pub move_package: Vec<u8>,
16 pub checkpoint_sequence_number: i64,
17}
18
19impl From<IndexedPackage> for StoredPackage {
20 fn from(p: IndexedPackage) -> Self {
21 Self {
22 package_id: p.package_id.to_vec(),
23 original_id: p.move_package.original_package_id().to_vec(),
24 package_version: p.move_package.version().value() as i64,
25 move_package: bcs::to_bytes(&p.move_package).unwrap(),
26 checkpoint_sequence_number: p.checkpoint_sequence_number as i64,
27 }
28 }
29}