1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
//! # Kagura //! Kagura is a web-frontend framework for wasm on Rust. //! //! ## example for "hello-world" //! //! ``` //! extern crate kagura; //! extern crate wasm_bindgen; //! //! use wasm_bindgen::prelude::*; //! //! #[wasm_bindgen(start)] //! pub fn main() { //! kagura::run(kagura::Component::new(State, update, render), "app"); //! } //! //! struct State; //! //! struct Msg; //! //! fn update(_: &mut State, _: &Msg) -> Option<()> {None} //! //! fn render(_: &State) -> kagura::Html<Msg> { //! use kagura::Html; //! use kagura::Attributes; //! use kagura::Events; //! Html::h1( //! Attributes::new(), //! Events::new(), //! vec![ //! Html::unsafe_text("hello kagura"), //! ], //! ) //! } //! ``` #[macro_use] extern crate serde_derive; extern crate rand; mod bin; mod component; mod dom; mod event; mod html; pub mod native; mod renderer; #[allow(unused_imports)] use rand::prelude::*; pub use component::Component; pub use html::Attributes; pub use html::Events; pub use html::Html; /// Starts application with component /// /// # Examples /// /// ``` /// kagura::run(component, "id of entry point"); /// ``` pub fn run<Msg, State, Sub>(component: Component<Msg, State, Sub>, id: &str) where Msg: 'static, State: 'static, Sub: 'static, { bin::run(component, id); }