object_rainbow/impls/
ulid.rs1use typenum::U16;
2use ulid::Ulid;
3
4use crate::*;
5
6impl ToOutput for Ulid {
7 fn to_output(&self, output: &mut dyn crate::Output) {
8 self.to_bytes().to_output(output);
9 }
10}
11
12impl InlineOutput for Ulid {}
13
14impl Tagged for Ulid {}
15impl ListHashes for Ulid {}
16impl Topological for Ulid {}
17
18impl<I: ParseInput> Parse<I> for Ulid {
19 fn parse(input: I) -> crate::Result<Self> {
20 Self::parse_as_inline(input)
21 }
22}
23
24impl<I: ParseInput> ParseInline<I> for Ulid {
25 fn parse_inline(input: &mut I) -> crate::Result<Self> {
26 input.parse_inline().map(Self::from_bytes)
27 }
28}
29
30impl Size for Ulid {
31 type Size = U16;
32 const SIZE: usize = 16;
33}
34
35impl MaybeHasNiche for Ulid {
36 type MnArray = NoNiche<ZeroNoNiche<<Self as Size>::Size>>;
37}