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