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 {}