use web_sys::Element;
pub enum TargetElement {
Body,
Element(Element),
TagName(String),
Id(String),
}
pub struct Options {
pub prompt: Option<String>,
pub element: TargetElement,
pub disable_clipboard_handling: bool,
pub font_family: Option<String>,
pub font_size: Option<f64>,
pub scrollback: Option<u32>,
}
impl Default for Options {
fn default() -> Self {
Options {
prompt: None,
element: TargetElement::Body,
disable_clipboard_handling: false,
font_family: None,
font_size: None,
scrollback: Some(2048),
}
}
}
impl Options {
pub fn new() -> Options {
Options::default()
}
pub fn with_prompt(mut self, prompt: &str) -> Self {
self.prompt = Some(prompt.into());
self
}
pub fn with_scrollback(mut self, scrollback: u32) -> Self {
self.scrollback = Some(scrollback);
self
}
pub fn with_element(mut self, element: TargetElement) -> Self {
self.element = element;
self
}
pub fn prompt(&self) -> String {
self.prompt.as_ref().unwrap_or(&"$ ".to_string()).clone()
}
}