pub trait Intersects<T = Self> {
type Result;
// Required method
fn intersect(self, other: T) -> Option<Self::Result>;
}
pub trait Intersects<T = Self> {
type Result;
// Required method
fn intersect(self, other: T) -> Option<Self::Result>;
}