Skip to main content

object_rainbow/
extras.rs

1use crate::*;
2
3#[derive(Debug, Clone, ParseAsInline, PartialEq)]
4pub struct Extras<Extra>(pub Extra);
5
6impl<Extra> Deref for Extras<Extra> {
7    type Target = Extra;
8
9    fn deref(&self) -> &Self::Target {
10        &self.0
11    }
12}
13
14impl<Extra> ToOutput for Extras<Extra> {
15    fn to_output(&self, _: &mut impl Output) {}
16}
17
18impl<Extra> InlineOutput for Extras<Extra> {}
19
20impl<I: PointInput> ParseInline<I> for Extras<I::Extra> {
21    fn parse_inline(input: &mut I) -> object_rainbow::Result<Self> {
22        Ok(Self(input.extra().clone()))
23    }
24}
25
26impl<Extra> Tagged for Extras<Extra> {}
27impl<Extra> ListHashes for Extras<Extra> {}
28impl<Extra> Topological for Extras<Extra> {}