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// }