[][src]Function adapton::parse_val::parse_val

pub fn parse_val<V: Debug>(v: &V) -> Val

Transform most(*) Rust data that derives Debug into a reflected Val.

This parsing logic handles user-defined struct and enum types, tuples and vectors. It recognizes the Debug output of these structures and parses them into trees of type Val. Importantly, it recognizes articulations in this Debug output and parses those into reflected locations (of type Loc) and articulations (of type Art). The reflected DCG maps reflected articulations (whose reflected locations are of type Loc) to reflected nodes that contain more reflected values.

(*) Note: Though this parsing logic handles vectors, tuples and user-defined data types, this parsing logic is probably incomplete for all of Rust's standard collections. (It does not yet handle HashMap<_,_> debug output, or anything else of this complexity as of yet).