Skip to main content

object_rainbow/refless/
assert_refless.rs

1use crate::*;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, ToOutput, Tagged, Size)]
4pub struct AssertRefless<T>(pub T);
5
6impl<T: ByteOrd> ByteOrd for AssertRefless<T> {
7    fn bytes_cmp(&self, other: &Self) -> Ordering {
8        self.0.bytes_cmp(&other.0)
9    }
10}
11
12impl<T> ListHashes for AssertRefless<T> {}
13impl<T> Topological for AssertRefless<T> {}
14
15impl<T, I: ParseInput> Parse<I> for AssertRefless<T>
16where
17    T: for<'r> Parse<ReflessInput<'r>>,
18{
19    fn parse(input: I) -> crate::Result<Self> {
20        input.parse_refless()
21    }
22}
23
24impl<T, I: ParseInput> ParseInline<I> for AssertRefless<T>
25where
26    T: for<'r> ParseInline<ReflessInput<'r>>,
27{
28    fn parse_inline(input: &mut I) -> crate::Result<Self> {
29        input.parse_refless_inline()
30    }
31}