use holochain_core_types::{entry::Entry, error::HcResult};
use holochain_persistence_api::cas::content::{Address, AddressableContent, Content};
pub trait GetContent {
fn get_raw(&self, address: &Address) -> HcResult<Option<Content>>;
fn get(&self, address: &Address) -> HcResult<Option<Entry>> {
if let Some(json) = self.get_raw(address)? {
let entry = Entry::try_from_content(&json)?;
Ok(Some(entry))
} else {
Ok(None) }
}
fn contains(&self, address: &Address) -> HcResult<bool> {
Ok(self.get_raw(address)?.is_some())
}
}
pub trait AddContent {
fn add<T: AddressableContent>(&mut self, content: &T) -> HcResult<()>;
}