summaryrefslogtreecommitdiffstats
path: root/src/types/content.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-04-29 21:44:31 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-04-29 21:44:31 +0200
commitbe71f0b4b907ef1d1bbc4dfefad5b20d4b94bd92 (patch)
tree67b040d63adc9f982bcbadfa456d64466f2b0815 /src/types/content.rs
parentc3c231c79380ea3c7ecc118412f7861b6833eccd (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.rs23
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,
+}
+