Create simple `xilem_html` demo

finchie
Oct 22, 2023, 7:23 AM
C73UJ7ZYG4EE3YTK3N66GXPNWJHEBSRE4PDQBWMN6SKQ3U6ZYKXAC

Dependencies

Change contents

  • file addition: src (d--r------)
    [2.1]
  • file addition: main.rs (----------)
    [0.15]
    extern crate xilem_html;
    use xilem_html::{
    document_body, elements as el,
    events::{self as evt},
    App, Event, View, ViewExt,
    };
    #[derive(Default)]
    struct AppState {
    command: String,
    }
    impl AppState {
    fn update_command(&mut self, new_command: String) {
    self.command = new_command;
    }
    }
    fn command_item<A, F>(
    label: &'static str,
    click_fn: F,
    ) -> evt::OnClick<AppState, A, el::Button<&'static str>, F, ()>
    where
    F: Fn(&mut AppState, &Event<web_sys::MouseEvent, web_sys::HtmlButtonElement>),
    {
    el::button(label).on_click(click_fn)
    }
    fn app_logic(state: &mut AppState) -> impl View<AppState> {
    let input = el::input(())
    .attr("placeholder", "Enter command here")
    .attr("autofocus", true);
    el::div((
    input.on_input(|state: &mut AppState, event| state.update_command(event.target().value())),
    el::br(()),
    el::span(format!("Command is: `{}`", state.command)),
    ))
    }
    pub fn main() {
    console_error_panic_hook::set_once();
    let app = App::new(AppState::default(), app_logic);
    app.run(&document_body());
    }
  • file addition: index.html (----------)
    [2.1]
    <!DOCTYPE html>
    <head>
    </head>
    <body>
    </body>
  • file addition: Cargo.toml (----------)
    [2.1]
    [package]
    name = "new_manual"
    version = "0.1.0"
    [dependencies]
    console_error_panic_hook = "0.1"
    wasm-bindgen = "0.2.87"
    web-sys = "0.3.64"
    xilem_html = { path = "../xilem/crates/xilem_html" }
  • file addition: Cargo.lock (----------)
    [2.1]
    # This file is automatically @generated by Cargo.
    # It is not intended for manual editing.
    version = 3
    [[package]]
    name = "arrayvec"
    version = "0.7.4"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
    [[package]]
    name = "bitflags"
    version = "2.4.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
    [[package]]
    name = "bumpalo"
    version = "3.14.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
    [[package]]
    name = "cfg-if"
    version = "1.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
    [[package]]
    name = "console_error_panic_hook"
    version = "0.1.7"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
    dependencies = [
    "cfg-if",
    "wasm-bindgen",
    ]
    [[package]]
    name = "gloo"
    version = "0.8.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "28999cda5ef6916ffd33fb4a7b87e1de633c47c0dc6d97905fee1cdaa142b94d"
    dependencies = [
    "gloo-events",
    "gloo-utils",
    ]
    [[package]]
    name = "gloo-events"
    version = "0.1.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "68b107f8abed8105e4182de63845afcc7b69c098b7852a813ea7462a320992fc"
    dependencies = [
    "wasm-bindgen",
    "web-sys",
    ]
    [[package]]
    name = "gloo-utils"
    version = "0.1.7"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e"
    dependencies = [
    "js-sys",
    "serde",
    "serde_json",
    "wasm-bindgen",
    "web-sys",
    ]
    [[package]]
    name = "itoa"
    version = "1.0.9"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
    [[package]]
    name = "js-sys"
    version = "0.3.64"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
    dependencies = [
    "wasm-bindgen",
    ]
    [[package]]
    name = "kurbo"
    version = "0.9.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
    dependencies = [
    "arrayvec",
    ]
    [[package]]
    name = "log"
    version = "0.4.20"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
    [[package]]
    name = "new_manual"
    version = "0.1.0"
    dependencies = [
    "console_error_panic_hook",
    "wasm-bindgen",
    "web-sys",
    "xilem_html",
    ]
    [[package]]
    name = "once_cell"
    version = "1.18.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
    [[package]]
    name = "proc-macro2"
    version = "1.0.69"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
    dependencies = [
    "unicode-ident",
    ]
    [[package]]
    name = "quote"
    version = "1.0.33"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
    dependencies = [
    "proc-macro2",
    ]
    [[package]]
    name = "ryu"
    version = "1.0.15"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
    [[package]]
    name = "serde"
    version = "1.0.189"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
    dependencies = [
    "serde_derive",
    ]
    [[package]]
    name = "serde_derive"
    version = "1.0.189"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
    dependencies = [
    "proc-macro2",
    "quote",
    "syn",
    ]
    [[package]]
    name = "serde_json"
    version = "1.0.107"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
    dependencies = [
    "itoa",
    "ryu",
    "serde",
    ]
    [[package]]
    name = "syn"
    version = "2.0.38"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
    dependencies = [
    "proc-macro2",
    "quote",
    "unicode-ident",
    ]
    [[package]]
    name = "unicode-ident"
    version = "1.0.12"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
    [[package]]
    name = "wasm-bindgen"
    version = "0.2.87"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
    dependencies = [
    "cfg-if",
    "wasm-bindgen-macro",
    ]
    [[package]]
    name = "wasm-bindgen-backend"
    version = "0.2.87"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
    dependencies = [
    "bumpalo",
    "log",
    "once_cell",
    "proc-macro2",
    "quote",
    "syn",
    "wasm-bindgen-shared",
    ]
    [[package]]
    name = "wasm-bindgen-macro"
    version = "0.2.87"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
    dependencies = [
    "quote",
    "wasm-bindgen-macro-support",
    ]
    [[package]]
    name = "wasm-bindgen-macro-support"
    version = "0.2.87"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
    dependencies = [
    "proc-macro2",
    "quote",
    "syn",
    "wasm-bindgen-backend",
    "wasm-bindgen-shared",
    ]
    [[package]]
    name = "wasm-bindgen-shared"
    version = "0.2.87"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
    [[package]]
    name = "web-sys"
    version = "0.3.64"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
    dependencies = [
    "js-sys",
    "wasm-bindgen",
    ]
    [[package]]
    name = "xilem_core"
    version = "0.1.0"
    [[package]]
    name = "xilem_html"
    version = "0.1.0"
    dependencies = [
    "bitflags",
    "gloo",
    "kurbo",
    "log",
    "wasm-bindgen",
    "web-sys",
    "xilem_core",
    ]
  • file addition: .ignore (----------)
    [2.1]
    dist/
    target/