object_rainbow/impls/
cid.rs1use cid::CidGeneric;
2
3use crate::*;
4
5impl From<cid::Error> for crate::Error {
6 fn from(error: cid::Error) -> Self {
7 match error {
8 cid::Error::Io(e) => e.into(),
9 e => crate::Error::parse(e),
10 }
11 }
12}
13
14impl<const S: usize> ToOutput for CidGeneric<S> {
15 fn to_output(&self, output: &mut impl Output) {
16 self.write_bytes(output.as_write())
17 .expect("unserialisable Cid is considered a bug");
18 }
19}
20
21impl<const S: usize, I: ParseInput> Parse<I> for CidGeneric<S> {
22 fn parse(input: I) -> crate::Result<Self> {
23 Self::parse_as_inline(input)
24 }
25}
26
27impl<const S: usize, I: ParseInput> ParseInline<I> for CidGeneric<S> {
28 fn parse_inline(input: &mut I) -> crate::Result<Self> {
29 input.as_read(|r| Self::read_bytes(r))
30 }
31}
32
33impl<const S: usize> InlineOutput for CidGeneric<S> {}
35
36impl<const S: usize> Tagged for CidGeneric<S> {}
37impl<const S: usize> ListHashes for CidGeneric<S> {}
41impl<const S: usize> Topological for CidGeneric<S> {}
45impl<const S: usize> MaybeHasNiche for CidGeneric<S> {
47 type MnArray = NoNiche<NicheForUnsized>;
48}