1
2
3
4
5
6
7
8
9
10
11
12
13
14
use super::*;

/// Visitor used in [`MentionableTop::points_typed`].
pub trait PointsVisitor<'a, Ctx: Context<'a>> {
    /// Visit a [Point].
    fn visit<A: Mentionable<'a, Ctx>>(&mut self, point: &Point<'a, Ctx, A>);
}

impl<'a, Ctx: Context<'a>> PointsVisitor<'a, Ctx> for Vec<u8> {
    /// The only natural implementation, as used in [`MentionableTop::topology_hash`].
    fn visit<A: Mentionable<'a, Ctx>>(&mut self, point: &Point<'a, Ctx, A>) {
        self.extend(point.point)
    }
}