avalanche_types/subnet/rpc/database/manager/
versioned_database.rs1use std::io::Result;
2
3use semver::Version;
4
5use crate::subnet::rpc::database::{self, BoxedDatabase};
6
7#[derive(Clone)]
9pub struct VersionedDatabase {
10 pub db: BoxedDatabase,
11 pub version: Version,
12}
13
14impl VersionedDatabase {
15 pub fn new(db: BoxedDatabase, version: Version) -> Self {
16 Self { db, version }
17 }
18}
19
20#[tonic::async_trait]
21impl database::VersionedDatabase for VersionedDatabase {
22 async fn close(&mut self) -> Result<()> {
23 let db = &self.db;
24 match db.close().await {
25 Ok(_) => Ok(()),
26 Err(e) => Err(e),
27 }
28 }
29}