use crate::io::DrawMenu;
use crate::modes::Menu;
use crate::{impl_content, impl_selectable};
pub enum PickerCaller {
Cloud,
Menu(Menu),
Unknown,
}
#[derive(Default)]
pub struct Picker {
pub caller: Option<PickerCaller>,
pub desc: Option<String>,
pub index: usize,
pub content: Vec<String>,
}
impl Picker {
pub fn clear(&mut self) {
self.caller = None;
self.index = 0;
self.content = vec![];
}
pub fn set(
&mut self,
caller: Option<PickerCaller>,
desc: Option<String>,
content: Vec<String>,
) {
self.clear();
self.caller = caller;
self.desc = desc;
self.content = content;
}
}
impl_content!(Picker, String);
impl DrawMenu<String> for Picker {}