diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-07-14 17:39:37 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-07-14 17:39:37 +0200 |
commit | ca83610bc8baf24844da9127078abe3d11f7d74c (patch) | |
tree | abb2d8d2f38ae7761e384de039037ea4de35821f | |
parent | 1aec9613e109d6484fba828e6315b6be48df23f0 (diff) |
Add helper IpfsEmbedBackend::get_payload()
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/backend/backend.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/backend/backend.rs b/src/backend/backend.rs index 95f3f86..182c95a 100644 --- a/src/backend/backend.rs +++ b/src/backend/backend.rs @@ -61,6 +61,16 @@ impl IpfsEmbedBackend { log::trace!("Inserted. CID = {}", block.cid()); Ok(block.cid().clone()) } + + pub async fn get_payload(&self, cid: &cid::Cid) -> Result<crate::backend::Payload> { + let block = self.ipfs.fetch(cid, self.ipfs.peers()).await?; + log::trace!("Block = {:?}", block); + + let payload = block.decode::<libipld::cbor::DagCborCodec, crate::backend::Payload>()?; + log::trace!("Payload = {:?}", payload); + + Ok(payload) + } } #[cfg(test)] |