Crate seed

Source
Expand description

Visit the website

See the github Readme for details

§Counter Example

use seed::{prelude::*, *};

// `init` describes what should happen when your app started.
fn init(_: Url, _: &mut impl Orders<Msg>) -> Model {
    Model { counter: 0 }
}

// `Model` describes our app state.
struct Model { counter: i32 }

// `Msg` describes the different events you can modify state with.
enum Msg {
    Increment,
}

// `update` describes how to handle each `Msg`.
fn update(msg: Msg, model: &mut Model, _: &mut impl Orders<Msg>) {
    match msg {
        Msg::Increment => model.counter += 1,
    }
}

// `view` describes what to display.
fn view(model: &Model) -> Node<Msg> {
    div![
        "This is a counter: ",
        C!["counter"],
        button![
            model.counter,
            ev(Ev::Click, |_| Msg::Increment),
        ],
    ]
}

#[wasm_bindgen(start)]
pub fn start() {
    // Mount the `app` to the element with the `id` "app".
    App::start("app", init, update, view);
}

Re-exports§

pub use crate::app::App;
pub use crate::browser::dom::cast::to_drag_event;
pub use crate::browser::dom::cast::to_html_el;
pub use crate::browser::dom::cast::to_input;
pub use crate::browser::dom::cast::to_keyboard_event;
pub use crate::browser::dom::cast::to_mouse_event;
pub use crate::browser::dom::cast::to_select;
pub use crate::browser::dom::cast::to_textarea;
pub use crate::browser::dom::cast::to_touch_event;
pub use crate::browser::dom::cast::to_wheel_event;
pub use crate::browser::url::Url;
pub use crate::browser::util;
pub use crate::browser::util::body;
pub use crate::browser::util::canvas;
pub use crate::browser::util::canvas_context_2d;
pub use crate::browser::util::error;Deprecated
pub use crate::browser::util::html_document;
pub use crate::browser::util::log;Deprecated
pub use crate::virtual_dom::Attrs;
pub use crate::virtual_dom::EventHandler;
pub use crate::virtual_dom::Style;
pub use futures;
pub use wasm_bindgen_futures;

Modules§

app
browser
dom_entity_names
future
Asynchronous values.
helpers
prelude
Introduce El and Tag into the global namespace for convenience (El will be repeated often in the output type of components), and UpdateEl, which is required for element-creation macros, input event constructors, and the History struct. Expose the wasm_bindgen prelude.
shortcuts
This file exports helper macros for element creation, populated by a higher-level macro, and macros for creating the parts of elements. (attrs, style, events)
virtual_dom

Macros§

C
Add classes into the element.
IF
IF!(predicate => expression) -> Option<expression value>
Script
a
abbr
address
altGlyph
altGlyphDef
altGlyphItem
animate
animateColor
animateMotion
animateTransform
applet
area
article
aside
attrs
Provide a shortcut for creating attributes.
audio
b
bdi
bdo
blockquote
br
button
canvas
caption
circle
cite
classDeprecated
Convenience macro. Ideal when there are multiple classes, and no other attrs.
clipPath
code
col
colgroup
content
cursor
custom
data
datalist
dd
defs
del
desc
details
dfn
dialog
dir
discard
div
dl
dt
element
ellipse
em
embed
empty
feBlend
feColorMatrix
feComponentTransfer
feComposite
feConvolveMatrix
feDiffuseLighting
feDisplacementMap
feDropShadow
feFlood
feFuncA
feFuncB
feFuncG
feFuncR
feGaussianBlur
feImage
feMerge
feMergeNode
feMorphology
feOffset
feSpecularLighting
feTile
feTurbulence
fieldset
figcaption
figure
filter
font
footer
foreignObject
form
g
glyph
glyphRef
h1
h2
h3
h4
h5
h6
hatch
hatchpath
header
hgroup
hkern
hr
i
id
Convenience macro, for brevity.
iframe
image
img
input
ins
kbd
key_value_pairs
A key-value pairs, where the keys and values must implement ToString.
label
legend
li
line_
linearGradient
main
map
mark
marker
mask
menu
menuitem
mesh
meshGradient
meshPatch
meshrow
metadata
meter
mpath
nav
nodes
Converts items to Vec<Node<Ms> and returns flattened Vec<Node<Ms>.
noembed
noscript
object
ol
optgroup
option
output
p
param
path
pattern
picture
plain
polygon
polyline
pre
progress
q
radialGradient
raw
raw_svg
rb
rect
rp
rt
rtc
ruby
s
samp
section
select
set
shadow
slot
small
solidcolor
source
span
stop
strong
struct_urls
Create struct Urls. It’s useful especially for building Urls in nested modules.
style
Provide a shortcut for creating styles.
sub
summary
sup
svg
switch
symbol
table
tbody
td
template
text
textPath
textarea
tfoot
th
thead
time
title
tr
track
tref
tspan
tt
u
ul
unit
unknown
use
var
video
view
vkern
wbr
with_dollar_sign
Allows to write nested macros.

Structs§

JsFuture
A Rust Future backed by a JavaScript Promise.

Traits§

FutureExt
An extension trait for Futures that provides a variety of convenient adapters.
TryFutureExt
Adapters specific to Result-returning futures

Functions§

document
Convenience function to access the web_sys DOM document.
empty
Create an element flagged in a way that it will not be rendered. Useful in ternary operations.
history
Convenience function to access the web_sys history.
set_intervalDeprecated
A high-level wrapper for web_sys::window.set_interval_with_callback_and_timeout_and_arguments_0:
set_timeoutDeprecated
See set_interval
spawn_local
Runs a Rust Future on the current thread.
window
Convenience function to avoid repeating expect logic.