serialize-to-javascript 0.1.0

Serialize a serde::Serialize item to a JavaScript literal template using serde_json
Documentation
Serialize to JavaScript
=============

This library provides serialization from `serde::Serialize` into JavaScript utilizing `serde_json`. It also provides
a very simple templating mechanism along with derive macros to automatically derive them for suitable types.

```toml
[dependencies]
serialize-to-javascript = "0.1"
```

---

## Examples

### Serialization
```rust
use serialize_to_javascript::{Options, Serialized};

fn main() -> serialize_to_javascript::Result<()> {
    let raw_value = serde_json::value::to_raw_value("foo'bar")?;
    let serialized = Serialized::new(&raw_value, &Options::default());
    assert_eq!(serialized.into_string(), "JSON.parse('\"foo\\'bar\"')");
    Ok(())
}
```

### Templating

`main.rs`:
```rust
use serialize_to_javascript::{default_template, DefaultTemplate, Options, Serialized, Template};

#[derive(Template)]
#[default_template("keygen.js")]
struct Keygen<'a> {
    key: &'a str,
    length: usize,

    #[raw]
    optional_script: &'static str,
}

fn main() -> serialize_to_javascript::Result<()> {
    let keygen = Keygen {
        key: "asdf",
        length: 4,
        optional_script: "console.log('hello, from my optional script')",
    };

    let _output: Serialized = keygen.render_default(&Options::default())?;

    Ok(())
}
```

`keygen.js`:
```javascript
const keygenKey = __TEMPLATE_key__
const keygenLength = __TEMPLATE_length__

__RAW_optional_script__

// app logic, we are ensuring the length is equal to the expected one for some reason
if (keygenKey.length === keygenLength) {
    console.log("okay!")
} else {
    console.error("oh no!")
}
```

---

### License

Licensed under either of [Apache License 2.0](LICENSE-APACHE), Version or [MIT license](LICENSE-MIT) at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted  for inclusion in this crate by you,
as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.