#![deny(missing_docs)]
#[allow(missing_docs)]
#[cfg(feature = "js_callback_with_serde_arg")]
pub use serde_json;
#[cfg(not(feature="nightly"))]
use proc_macro_hack::proc_macro_hack;
pub mod app;
pub mod callback;
pub mod dom;
pub mod element_events;
pub mod error;
#[cfg(feature = "fetch")]
pub mod fetch;
pub mod interop;
fn set_panic_hook_once() {
use std::sync::{Once, ONCE_INIT};
static SET_HOOK: Once = ONCE_INIT;
SET_HOOK.call_once(|| {
std::panic::set_hook(Box::new(|panic_info| {
web_sys::console::error_1(&wasm_bindgen::JsValue::from(panic_info.to_string()));
}));
});
}
pub mod prelude {
pub use crate::app::*;
pub use crate::element_events::ElementEventHandler;
pub use simi_macros::simi_app;
#[cfg(feature="nightly")]
pub use crate::{application, component};
}
#[cfg(feature="nightly")]
pub use simi_macros::{application, component};
#[cfg(not(feature="nightly"))]
#[cfg_attr(not(feature="nightly"), proc_macro_hack)]
pub use simi_macros::{application, component};
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum ListChangeHint {
NoHint,
NoChange,
ItemValueChangeOnly,
ItemRemoveOnly,
ItemAddOnly,
MixedChange,
}
pub type CellHint = std::cell::Cell<ListChangeHint>;