pub fn closest_to_first_song_by_key<F, T>(
    first_song: &T,
    songs: &mut Vec<T>,
    distance: impl DistanceMetric,
    key_fn: F
)
where F: Fn(&T) -> Song,
Expand description

Sort songs in place by putting songs close to first_song first using the distance metric.

Sort songs with a key extraction function, useful for when you have a structure like CustomSong { bliss_song: Song, something_else: bool }