shapely-json

Crates.ioshapely-json
lib.rsshapely-json
version3.1.0
created_at2025-03-10 20:30:03.685988+00
updated_at2025-03-31 19:07:58.529699+00
descriptionJSON serialization and deserialization for Shapely types
homepagehttps://github.com/bearcove/shapely
repositoryhttps://github.com/bearcove/shapely
max_upload_size
id1587207
size47,501
Amos Wenger (fasterthanlime)

documentation

https://docs.rs/shapely-json

README

shapely-json

experimental free of syn crates.io documentation MIT/Apache-2.0 licensed

A serialization and deserialization library for JSON using the shapely runtime reflection system.

Features

  • Simple JSON deserialization for any type implementing the Shapely trait
  • Detailed error reporting with context
  • Support for nested structs and scalar values

Example

use shapely::Shapely;
use shapely_json::from_json;

#[derive(Debug, Shapely, PartialEq)]
struct Person {
    name: String,
    age: u64,
}

let json = r#"{"name": "Alice", "age": 30}"#;

let mut partial = Person::partial();
from_json(&mut partial, json).expect("Failed to parse JSON");

let person = partial.build::<Person>();
assert_eq!(person, Person { name: "Alice".to_string(), age: 30 });

Funding

Thanks to Namespace for providing fast GitHub Actions workers:

License

Licensed under either of:

at your option.

Commit count: 1690

cargo fmt