pub async fn render_loop<'a, W: Write, T: MMItem, S: Selection, C>(
ui: UI,
picker_ui: PickerUI<'a, T, S, C>,
preview_ui: Option<PreviewUI>,
tui: Tui<W>,
render_rx: UnboundedReceiver<RenderCommand>,
controller_tx: UnboundedSender<Event>,
context: Arc<C>,
dynamic_handlers: DynamicHandlers<T, S, C>,
exit_config: ExitConfig,
) -> Result<Vec<S>, MatchError>