summaryrefslogtreecommitdiffstats
path: root/src/profile.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-04-05 12:01:34 +0200
committerMatthias Beyer <mail@beyermatthias.de>2021-04-05 12:03:42 +0200
commit75a82d3c2eaf1716a057bd5869f7b996965075b7 (patch)
treedf18042aee4d3f3fee00c316afd2e82dd7830970 /src/profile.rs
parent15f398f8af9bce0a987c3cdd740fbf4d528d0808 (diff)
Add Profile type
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/profile.rs')
-rw-r--r--src/profile.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/profile.rs b/src/profile.rs
new file mode 100644
index 0000000..f389a6a
--- /dev/null
+++ b/src/profile.rs
@@ -0,0 +1,23 @@
+use anyhow::Result;
+
+use crate::backend::Id;
+use crate::backend::Node;
+use crate::backend::IpfsEmbedBackend;
+
+pub struct Profile {
+ dag: daglib::AsyncDag<Id, Node, IpfsEmbedBackend>,
+}
+
+impl Profile {
+ pub async fn load(head: Id) -> Result<Self> {
+ let backend = IpfsEmbedBackend::new_in_memory(1000).await?;
+ let dag = daglib::AsyncDag::load(backend, head).await?;
+ Ok(Profile { dag })
+ }
+
+ pub async fn create(node: Node) -> Result<Self> {
+ let backend = IpfsEmbedBackend::new_in_memory(1000).await?;
+ let dag = daglib::AsyncDag::new(backend, node).await?;
+ Ok(Profile { dag })
+ }
+}