diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-04-29 21:44:31 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-04-29 21:44:31 +0200 |
commit | be71f0b4b907ef1d1bbc4dfefad5b20d4b94bd92 (patch) | |
tree | 67b040d63adc9f982bcbadfa456d64466f2b0815 /src/types/content.rs | |
parent | c3c231c79380ea3c7ecc118412f7861b6833eccd (diff) |
Add methods to deep-load one block
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
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, +} + |