diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-04-05 12:01:34 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-05 12:03:42 +0200 |
commit | 75a82d3c2eaf1716a057bd5869f7b996965075b7 (patch) | |
tree | df18042aee4d3f3fee00c316afd2e82dd7830970 /src/profile.rs | |
parent | 15f398f8af9bce0a987c3cdd740fbf4d528d0808 (diff) |
Add Profile type
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/profile.rs')
-rw-r--r-- | src/profile.rs | 23 |
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 }) + } +} |