oasis_contract_sdk/storage.rs
1//! Smart contract storage interface.
2
3/// Key/value store trait.
4pub trait Store {
5 /// Fetch a given key from contract storage.
6 fn get(&self, key: &[u8]) -> Option<Vec<u8>>;
7
8 /// Insert a given key/value pair into contract storage.
9 fn insert(&mut self, key: &[u8], value: &[u8]);
10
11 /// Remove a given key from contract storage.
12 fn remove(&mut self, key: &[u8]);
13}
14
15/// Marker trait for stores backed by public storage.
16pub trait PublicStore: Store {}
17
18/// Marker trait for stores backed by confidential storage.
19pub trait ConfidentialStore: Store {}