css_in_rust_next/bindings/
seed.rs

1// Copyright © 2020 Lukas Wagner
2
3//! Seed integration module.
4//! The user doesn't need to do anything but to add a style into a
5//! seed component.
6
7#[cfg(target_arch = "wasm32")]
8extern crate seed;
9
10#[cfg(target_arch = "wasm32")]
11use super::super::style::Style;
12
13#[cfg(target_arch = "wasm32")]
14use seed::virtual_dom::{At, AtValue, Attrs, El, UpdateEl};
15
16#[cfg(target_arch = "wasm32")]
17impl<Ms> UpdateEl<El<Ms>> for Style {
18    fn update(self, el: &mut El<Ms>) {
19        let mut new_attrs = Attrs::empty();
20        new_attrs.add(At::Class, self);
21        el.attrs.merge(new_attrs);
22    }
23}
24
25// #[cfg(target_arch = "wasm32")]
26// impl From<Style> for AtValue {
27//     fn from(item: Style) -> Self {
28//         AtValue::Some(item.class_name.clone())
29//     }
30// }
31
32// this is going to be needed for Seed v0.7.0
33// #[cfg(target_arch = "wasm32")]
34// use seed::virtual_dom::ToClasses;
35
36// #[cfg(target_arch = "wasm32")]
37// impl ToClasses for Style {
38//     fn to_classes(self) -> Option<Vec<String>> {
39//         let mut classes = Vec::new();
40//         classes.push(self.class_name.clone());
41//         Some(classes)
42//     }
43// }