pub trait TripProblemFilter {
// Required methods
fn includes_mode(&self, mode: &TripMode) -> bool;
fn include_no_changes(&self) -> bool;
// Provided methods
fn trip_problems(
&self,
app: &App,
problem_type: ProblemType,
) -> Vec<(TripID, Duration, isize)> { ... }
fn finished_trip_count(&self, app: &App) -> usize { ... }
}