cedar

Crates.iocedar
lib.rscedar
version0.1.1
sourcesrc
created_at2017-02-22 02:12:45.292543
updated_at2017-08-02 14:52:22.704919
descriptionReactive, functional library for creating GUI applications
homepagehttps://github.com/jtomschroeder/cedar
repositoryhttps://github.com/jtomschroeder/cedar
max_upload_size
id8625
size46,098
Tom Schroeder (jtomschroeder)

documentation

https://docs.rs/crate/cedar

README

cedar :evergreen_tree:

cedar is a functional-reactive framework.

crates.io License Build Status

Status: cedar is in the alpha stage - not yet ready for prime-time.

Usage

Add cedar to your project via cargo.

Creating buttons & reactive text :rocket:

extern crate cedar;

use cedar::dom;
use cedar::dom::Builder;

type Model = i32;

#[derive(PartialEq, Debug, Clone)]
enum Message {
    Increment,
    Decrement,
}

fn update(model: Model, message: Message) -> Model {
    match message {
        Message::Increment => model + 1,
        Message::Decrement => model - 1,
    }
}

fn view(model: &Model) -> dom::Object<Message> {
    dom::stack()
        .add(dom::button().text("+".into()).click(Message::Increment))
        .add(dom::label().text(model.to_string()))
        .add(dom::button().text("-".into()).click(Message::Decrement))
}

fn main() {
    cedar::program(0, update, view)
}

Design

A cedar application is composed of a model, update, and view. TODO: expand on this....

Credits

Inspired by:

cedar is Copyright © Tom Schroeder j.tom.schroeder@gmail.com and released under MIT license.

Commit count: 32

cargo fmt