Trait lockchain_core::traits::Vault [−][src]
pub trait Vault<T>: Send where
T: Body, { fn new(name: &str, location: &str) -> Self; fn metadata(&self) -> VaultMetadata; fn fetch(&mut self); fn pull(&mut self, name: &str); fn sync(&mut self); fn get_record(&self, name: &str) -> Option<&Record<T>>; fn contains(&self, name: &str) -> bool; fn add_record(&mut self, key: &str, category: &str, tags: Vec<&str>); fn delete_record(&mut self, record: &str) -> Option<Record<T>>; fn add_data(&mut self, record: &str, key: &str, data: Payload) -> Option<()>; fn get_data(&self, record: &str, key: &str) -> Option<&Payload>; fn meta_add_domain(&mut self, domain: &str) -> Option<()>; fn meta_pull_domain(&self, domain: &str) -> Option<&MetaDomain>; fn meta_push_domain(&mut self, domain: MetaDomain) -> Option<()>; fn meta_set(
&mut self,
domain: &str,
name: &str,
data: Payload
) -> Option<()>; fn meta_get(&mut self, domain: &str, name: &str) -> Option<Payload>; fn meta_exists(&self, domain: &str) -> bool; }
Trait for an in-memory representation of a lockchain vault.
By itself it represents vault metadata (name, users, location) as well as a list of record headers.
To provide on-disk functionality it requires the -storage
trait library and for encrypted file access the -crypto
crate.
The body backend is being being generic with the Body trait.
Required Methods
fn new(name: &str, location: &str) -> Self
A shared constructor for all vault implementations
fn metadata(&self) -> VaultMetadata
Get basic vault metadata
fn fetch(&mut self)
Fetch metadata headers for all records
fn pull(&mut self, name: &str)
Pull a specific record from the backend
fn sync(&mut self)
Sync all changes back to the backend
fn get_record(&self, name: &str) -> Option<&Record<T>>
Get a complete record from this vault
fn contains(&self, name: &str) -> bool
Probe if a record is contained
fn add_record(&mut self, key: &str, category: &str, tags: Vec<&str>)
Add a new record to this vault
fn delete_record(&mut self, record: &str) -> Option<Record<T>>
Delete a record from this vault
fn add_data(&mut self, record: &str, key: &str, data: Payload) -> Option<()>
Add data to an existing record, overwriting existing fields
fn get_data(&self, record: &str, key: &str) -> Option<&Payload>
Get the (latest) value of a specific record data field
fn meta_add_domain(&mut self, domain: &str) -> Option<()>
Adds a domain space to the metadata store inside the vault
A domain is a collection metadata files that can be returned with a single pull request
fn meta_pull_domain(&self, domain: &str) -> Option<&MetaDomain>
Returns all records from a meta domain
fn meta_push_domain(&mut self, domain: MetaDomain) -> Option<()>
Entirely replace a meta domain in the store
fn meta_set(&mut self, domain: &str, name: &str, data: Payload) -> Option<()>
Set the value of a field inside a domain. Field names must not collide
fn meta_get(&mut self, domain: &str, name: &str) -> Option<Payload>
Get the value of a (unique) field inside a domain
fn meta_exists(&self, domain: &str) -> bool
Check if a metadomain exists, regardless of data or depth