diff options
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 }) + } +} |