fn minimal_multi_select_internal<T, D, P, S>( items: Vec<T>, display_text: D, preview_text: P, has_preview: bool, search_text: S, ) -> Result<Option<Vec<T>>>where D: FnMut(&T) -> String, P: FnMut(&T) -> Option<String>, S: FnMut(&T) -> String,