ent

Crates.ioent
lib.rsent
version0.0.4
sourcesrc
created_at2020-04-23 15:16:46.736248
updated_at2020-07-13 14:33:02.961964
descriptionAbstract object entity for JSON, PyDict, & others
homepage
repositoryhttps://github.com/nkconnor/ent
max_upload_size
id233306
size18,153
Nicholas Connor (nkconnor)

documentation

https://docs.rs/ent

README

Ent   Build Crate

Ent is an abstract object library. Using Rust's monomorphization, you can write zero cost interfaces across multiple object types including JSON and Python dictionaries. If you are interested in contributing to Ent, please do! We would welcome any help including additional object implementations.

Warning: Ent is in early development. There may be a more generic approach to this problem that utilizes serde's Visitor.

Getting Started

[dependencies]

# Specify supported implementations using feature keys:
#  - python
#  - json
ent = { version = "0.1", features = ["python"] }

Examples

use ent::Ent;

fn get_name<E: Ent>(e: &E) -> Result<&str> {
    e.get("name").unwrap().as_str()
}

let v: serde_json::Value = serde_json::from_str(r#"{"name":"test"}"#).unwrap();
let ref name = get_name(&v).unwrap();
assert_eq!(name, &"test")

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

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

Commit count: 15

cargo fmt