summaryrefslogtreecommitdiffstats
path: root/src/types/content.rs
diff options
context:
space:
mode:
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,
+}
+