pub trait ContactListener<U: UserDataTypes>: Any {
// Provided methods
fn begin_contact(&mut self, _: ContactAccess<'_, U>) { ... }
fn end_contact(&mut self, _: ContactAccess<'_, U>) { ... }
fn pre_solve(&mut self, _: ContactAccess<'_, U>, _: &Manifold) { ... }
fn post_solve(&mut self, _: ContactAccess<'_, U>, _: &ContactImpulse) { ... }
}