pub struct Config {
pub(crate) hydrate: bool,
pub(crate) root: ConfigRoot,
pub(crate) default_panic_hook: bool,
}
pub(crate) enum ConfigRoot {
RootName(String),
RootElement(web_sys::Element),
}
impl Config {
pub fn new() -> Self {
Self::default()
}
#[cfg(feature = "hydrate")]
pub fn hydrate(mut self, f: bool) -> Self {
self.hydrate = f;
self
}
pub fn rootname(mut self, name: impl Into<String>) -> Self {
self.root = ConfigRoot::RootName(name.into());
self
}
pub fn rootelement(mut self, elem: web_sys::Element) -> Self {
self.root = ConfigRoot::RootElement(elem);
self
}
pub fn with_default_panic_hook(mut self, f: bool) -> Self {
self.default_panic_hook = f;
self
}
}
impl Default for Config {
fn default() -> Self {
Self {
hydrate: false,
root: ConfigRoot::RootName("main".to_string()),
default_panic_hook: true,
}
}
}