plaster 0.2.5

A wasm-bindgen framework for making client-side single-page apps
Documentation
#[macro_use]
extern crate plaster;
#[macro_use]
extern crate wasm_bindgen_test;

wasm_bindgen_test_configure!(run_in_browser);

use plaster::prelude::*;
use plaster::virtual_dom::VNode;

struct Comp;

#[derive(PartialEq, Clone)]
struct Props {
    field_1: u32,
    field_2: u32,
}

impl Default for Props {
    fn default() -> Self {
        Props {
            field_1: 0,
            field_2: 0,
        }
    }
}

impl Component for Comp {
    type Message = ();
    type Properties = Props;

    fn create(_: Self::Properties, _: ComponentLink<Self>) -> Self {
        Comp
    }

    fn update(&mut self, _: Self::Message) -> ShouldRender {
        unimplemented!();
    }
}

impl Renderable<Comp> for Comp {
    fn view(&self) -> Html<Self> {
        unimplemented!();
    }
}

#[wasm_bindgen_test]
fn set_properties_to_component() {
    let _: VNode<Comp> = html! {
        <Comp: />
    };

    let _: VNode<Comp> = html! {
        <Comp: field_1=1, />
    };

    let _: VNode<Comp> = html! {
        <Comp: field_2=2, />
    };

    let _: VNode<Comp> = html! {
        <Comp: field_1=1, field_2=2, />
    };

    let props = Props {
        field_1: 1,
        field_2: 1,
    };

    let _: VNode<Comp> = html! {
        <Comp: with props, field_2=2, />
    };
}