enneagram 1.3.0

A digital enneagram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
pub fn corner<P>(l1: [P; 2], l2: [P; 2]) -> Option<[P; 3]>
where
    P: PartialEq
{
    match (l1, l2)
    {
        ([p, a] | [a, p], [p_eq, b] | [b, p_eq]) if p == p_eq && a != b => Some([a, p, b]),
        _ => None
    }
}

pub fn equals<P>(l1: &[P; 2], l2: &[P; 2]) -> bool
where
    P: PartialEq
{
    matches!((l1, l2), ([a1, b1], [a2, b2] | [b2, a2]) if a1 == a2 && b1 == b2)
}