#ipld #extract #links #data #cid #extractor #deserialize

已删除 ipld-extract-links

从 IPLD 编码数据中提取链接

1 个不稳定版本

0.1.0 2024年3月8日

#18 in #cid

MIT/Apache

7KB
122 代码行

IPLD 提取链接

Crates.io Documentation

此包允许从 serde_ipld_dag* 格式(如 serde_ipld_dagcborserde_ipld_dagjson)中提取链接(CIDs)。

用法

链接提取器独立于反序列化器,因此您需要先创建一个。因此,此示例依赖于 serde_json 以及 serde_ipld_dagjson

use cid::Cid;
use ipld_extract_links::ExtractLinks;
use serde::Deserialize;

pub fn main() {
    let slice = br#"{"hello": "world!", "other": {"/": "bafkreibme22gw2h7y2h7tg2fhqotaqjucnbc24deqo72b6mkl2egezxhvy" }}"#;
    let mut json_deserializer = serde_json::Deserializer::from_slice(slice);
    let deserializer = serde_ipld_dagjson::Deserializer::new(&mut json_deserializer);
    let extracted_links = ExtractLinks::deserialize(deserializer).unwrap().into_vec();
    assert_eq!(
        extracted_links,
        vec![
            Cid::try_from("bafkreibme22gw2h7y2h7tg2fhqotaqjucnbc24deqo72b6mkl2egezxhvy").unwrap(),
        ]
    );
}

许可证

许可协议为以下之一

由您选择。

依赖关系

~0.5–0.9MB
~15K SLoC