serde_ccl 0.1.0

Serde-based deserializer for CCL Documents
Documentation
# Serde CCL

[![Crates.io](https://img.shields.io/crates/v/serde_ccl)](https://crates.io/crates/serde_ccl)
[![Documentation](https://docs.rs/serde_ccl/badge.svg)](https://docs.rs/serde_ccl)

[Serde](https://crates.io/crates/serde)-based crate for deserializing
[CCL Documents](https://chshersh.com/blog/2025-01-06-the-most-elegant-configuration-language.html).

## Example

CCL document named `example.ccl`.

```text
imports =
  = ~/.config/terminal/theme.ccl
  = ~/.config/terminal/font.ccl

dynamic_title = false
font_size = 12
shell = tmux new-session -A -s main
```

Code to deserialize the CCL document.

```rust
use serde::Deserialize;

const DOCUMENT = include_str!("example.ccl");

#[derive(Debug, Deserialize)]
struct Config {
  imports: Vec<String>,  
  dynamic_title: bool,
  font_size: f64,
  shell: String,
}

fn main() {
  let config = serde_ccl::from_str::<Config>(DOCUMENT)
    .expect("Failed to parse document");

  println!("{config:?}");
}
```

## License

Sparsey is dual-licensed under either

- MIT License ([LICENSE-MIT]LICENSE-MIT or
  [https://opensource.org/license/mit/]https://opensource.org/license/mit/)

- Apache License, Version 2.0 ([LICENSE-APACHE]LICENSE-APACHE or
  [https://www.apache.org/licenses/LICENSE-2.0]https://www.apache.org/licenses/LICENSE-2.0)

at your option.

<br />

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