An open API service indexing awesome lists of open source software.

https://github.com/initerworker/struct_mapping

StructMapping is a library for create string-based accessors/mutators Rust data structure.
https://github.com/initerworker/struct_mapping

Last synced: about 1 year ago
JSON representation

StructMapping is a library for create string-based accessors/mutators Rust data structure.

Awesome Lists containing this project

README

          

# StructMapping

__StructMapping is a library for generating string-based accessors/mutators Rust data structure.__

## Work In Progress

- [ ] Clean-Up
- [ ] Pipeline
- [ ] Publish Crate/Cargo

---

## StructMapping in action

Click to show Cargo.toml.

```toml
[dependencies]

# The core APIs
struct_mapping = { version = "1.0", features = ["derive"] }
```

```rust
use struct_mapping::{StructMapping, ToStructMappingField};

fn main() {
#[derive(Default)]
struct DeepTestStruct {}

#[derive(StructMapping, Default)]
struct TestStruct {
#[struct_mapping(rename = "jimmy", alias = "jian_yang")]
jian: u32,
#[struct_mapping(skip)]
#[allow(dead_code)]
deep: DeepTestStruct,
}

let mut ex = TestStruct::default();

// print "0"
println!("{}", ex.sm_get("jimmy").unwrap());

ex.sm_set("jimmy", "128").unwrap();

// print "128"
println!("{}", ex.sm_get("jimmy").unwrap());

// print ["jimmy", "jian_yang"]
println!("{:?}", TestStruct::sm_list());
}
```

## 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 struct_mapping by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.