pub(crate) fn with_scratch<T>( source: &[T], scratch: Vec<T>, use_entries: impl FnOnce(&mut Vec<T>), ) -> Vec<T>where T: Copy,