1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//! ## JSS Rust
//! Implementation of JSS for Rust. Use css styles without css with identical properties.
//! *Part of Rise-UI project.*
//!
//! ### [Documentation](http://friktor.github.io/jss-rs/jss/index.html)
//!
//! ### Usage
//! Add to your Cargo.toml.
//! ``` toml
//! [dependencies]
//! jss = { git = "https://github.com/rise-ui/jss-rs" }
//! ```
//!
//! ``` rust
//! extern crate jss;
//! ```
//!
//! #### Examples
//! Simple JSON element parsing example
//!
//! ``` rust
//! extern crate failure;
//! extern crate jss;
//!
//! use jss::traits::*;
//! use jss::types::*;
//!
//! fn main() -> Result<(), failure::Error> {
//!     let source = r#"
//!   {
//!     "borderTopRightRadius": 10,
//!     "borderTopStyle": "solid",
//!     "alignContent": "center",
//!     "borderTopWidth": 10,
//!     
//!     "filter": [
//!       "blur(20)"
//!     ],
//!     "transform": [
//!       "translate(10px,10%)",
//!       "rotate(40deg,15rad)"
//!     ]
//!   }
//!   "#;
//!
//!     let style = StyleBuilder::default().source(source).parse()?;
//!     println!("{:#?}", style);
//!
//!     Ok(())
//! }
//! ```
//!
//! Or if you need YAML...
//!
//! ``` rust
//! extern crate failure;
//! extern crate jss;
//!
//! use jss::traits::*;
//! use jss::types::*;
//!
//! fn main() -> Result<(), failure::Error> {
//!     let source = r#"
//! ---
//! borderTopRightRadius: 10
//! borderTopStyle: solid
//! alignContent: center
//! borderTopWidth: 10
//! filter:
//! - blur(20)
//! transform:
//! - translate(10px,10%)
//! - rotate(40deg,15rad)
//!   "#;
//!
//!     let style = StyleBuilder::default().source(source).source_type(SourceFormat::Yaml).parse()?;
//!     println!("{:#?}", style);
//!
//!     Ok(())
//! }
//! ```

#![feature(custom_attribute)]
#![feature(concat_idents)]
#![feature(never_type)]
#![feature(try_from)]

#[macro_use]
extern crate failure_derive;
#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate jss_derive;

#[macro_use]
extern crate enum_extract;
#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate failure;
#[macro_use]
extern crate nom;
#[macro_use]
extern crate maplit;
#[macro_use]
mod macros;

extern crate erased_serde;
extern crate serde_json;
extern crate serde_yaml;
extern crate yaml_rust;
extern crate serde;

extern crate ordered_float;
extern crate euclid;

extern crate css_color_parser;
extern crate interpolation;
extern crate webrender;
extern crate inflector;
extern crate regex;
extern crate yoga;
extern crate eval;

pub mod properties;
pub mod animation;
pub mod parser;
pub mod traits;
pub mod types;
pub mod utils;
mod convert;