1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2019-2024 ChainSafe Systems
// SPDX-License-Identifier: Apache-2.0, MIT

use super::*;
use crate::blocks::TipsetKey;
use ::cid::Cid;

impl HasLotusJson for TipsetKey {
    type LotusJson = nunny::Vec<<Cid as HasLotusJson>::LotusJson>;

    #[cfg(test)]
    fn snapshots() -> Vec<(serde_json::Value, Self)> {
        vec![(
            json!([{"/": "baeaaaaa"}]),
            ::nunny::vec![::cid::Cid::default()].into(),
        )]
    }

    fn into_lotus_json(self) -> Self::LotusJson {
        self.into_cids()
            .into_iter_ne()
            .map(Cid::into_lotus_json)
            .collect_vec()
    }

    fn from_lotus_json(lotus_json: Self::LotusJson) -> Self {
        lotus_json
            .into_iter_ne()
            .map(Cid::from_lotus_json)
            .collect_vec()
            .into()
    }
}