diem_config/config/
secure_backend_config.rs1use diem_secure_storage::OnDiskStorage;
9use serde::{Deserialize, Serialize};
10use std::path::PathBuf;
11
12#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
13#[serde(default, deny_unknown_fields)]
14pub struct OnDiskStorageConfig {
15 pub path: PathBuf,
17 #[serde(skip)]
18 data_dir: PathBuf,
19}
20
21impl Default for OnDiskStorageConfig {
22 fn default() -> Self {
23 Self {
24 path: PathBuf::from("secure_storage.json"),
25 data_dir: PathBuf::from("/opt/diem/data"),
26 }
27 }
28}
29
30impl OnDiskStorageConfig {
31 pub fn path(&self) -> PathBuf {
32 if self.path.is_relative() {
33 self.data_dir.join(&self.path)
34 } else {
35 self.path.clone()
36 }
37 }
38
39 pub fn set_data_dir(&mut self, data_dir: PathBuf) {
40 self.data_dir = data_dir;
41 }
42}
43
44impl From<&OnDiskStorageConfig> for OnDiskStorage {
45 fn from(config: &OnDiskStorageConfig) -> Self {
46 OnDiskStorage::new(config.path())
47 }
48}