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