Published typex, a Rust library for runtime reflection. It can inspect, traverse and mutate objects without knowing their concrete types. The crate supports no_std and has no runtime dependencies or unsafe code.
For example, you can batch mutations and roll them back:
use typex::{MutationBatch, PatchOperation, PathSegment}; let mut values = vec![1_u8]; let batch = MutationBatch::from([ PatchOperation::set([PathSegment::Item(0)], 2_u8), PatchOperation::push_item([], 3_u8), ]); let rollback = batch.commit(&mut values).unwrap(); // [2, 3] rollback.undo(&mut values).unwrap(); // [1]
Early benchmarks show faster builds and reflection operations than facet and bevy_reflect.