Metainfo

Crates.io Documentation License Build Status

Transmissing metainfo across components.

Quickstart

Metainfo is designed to be passed through task local, so we provided a unified key for it metainfo::METAINFO, and we recommend you to use it this way:

rust METAINFO.scope(...)

MetaInfo is used to passthrough information between components and even client-server.

It supports two types of info: typed map and string k-v.

It is designed to be tree-like, which means you can share a MetaInfo with multiple children.

Note: only the current scope is mutable.

Example:

```rust use metainfo::MetaInfo;

fn test() { let mut m1 = MetaInfo::new(); m1.insert::(2); assert_eq!(*m1.get::().unwrap(), 2);

let (mut m1, mut m2) = m1.derive();
assert_eq!(*m2.get::<i8>().unwrap(), 2);

m2.insert::<i8>(4);
assert_eq!(*m2.get::<i8>().unwrap(), 4);

m2.remove::<i8>();
assert_eq!(*m2.get::<i8>().unwrap(), 2);

} ```

Related Projects

Contributing

See CONTRIBUTING.md for more information.

License

Metainfo is dual-licensed under the MIT license and the Apache License (Version 2.0).

See LICENSE-MIT and LICENSE-APACHE for details.

Community