1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::pretty::{part::PrettyBuilder, Part};

pub trait PartTrait: 'static {
    fn append_to(self, left: Part) -> Part;
}

pub(crate) fn low_level_part(part: impl PartTrait) -> PrettyBuilder {
    Part::of(part).inner
}

impl<P> PartTrait for Option<P>
where
    P: PartTrait,
{
    fn append_to(self, builder: Part) -> Part {
        match self {
            Some(part) => builder.append(part),
            None => builder,
        }
    }
}