pub fn update<'a, S: AsRef<str>, Message>(
event: &Event,
layout: Layout<'_>,
cursor: Cursor,
shell: &mut Shell<'_, Message>,
on_selected: &dyn Fn(usize) -> Message,
selected: Option<usize>,
selections: &[S],
state: impl FnOnce() -> &'a mut State,
) -> Status