diff options
Diffstat (limited to 'src/types/content.rs')
-rw-r--r-- | src/types/content.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/types/content.rs b/src/types/content.rs index c22a41f..be762f5 100644 --- a/src/types/content.rs +++ b/src/types/content.rs @@ -1,10 +1,14 @@ use std::collections::BTreeMap; +use failure::Error; + use crate::types::util::IPFSHash; use crate::types::util::IPNSHash; use crate::types::util::MimeType; use crate::types::util::Timestamp; -use crate::types::payload::*; +use crate::types::payload::Payload; +use crate::types::payload::LoadedPayload; +use crate::repository::repository::Repository; #[derive(Serialize, Deserialize, Debug)] pub struct Content { @@ -59,6 +63,16 @@ impl Content { self.devices.push(dev); } + pub async fn load(self, r: &Repository) -> Result<LoadedContent, Error> { + Ok({ + LoadedContent { + devices: self.devices, + timestamp: self.timestamp, + payload: self.payload.load(r).await? + } + }) + } + } impl AsRef<Content> for Content { @@ -67,3 +81,10 @@ impl AsRef<Content> for Content { } } +#[derive(Debug)] +pub struct LoadedContent { + devices: Vec<IPNSHash>, + timestamp: Option<Timestamp>, + payload: LoadedPayload, +} + |