So I spent the day thinking about and half-way rewriting the evaluator index to suit the new HashMap-based type system only to come to the conclusion that the current index system is still very optimal and required. The data stored and functionality provided by the Entry type is crucial for dependency loop detection, type validation and field formatting, and it does so in a very optimal way when indexed by the index implementation. In fact, the only real change needed was to change over to the default attribute field being "Value" instead of "", which was basically a one-line change :joy: I also realized that Entry doesn't need to reference the field name at all, which undoes most of the changes in index_schematic. Oh well, at least the source of dependency cycles is now indicated, and cargo fmt has been run for the project. Next things would be taking a look at fixing the parsing logic of kicad_parse_gen as well as implementing support for metric prefixes.
So I spent the day thinking about and half-way rewriting the evaluator index to suit the new
HashMap
-based type system only to come to the conclusion that the current index system is still very optimal and required. The data stored and functionality provided by theEntry
type is crucial for dependency loop detection, type validation and field formatting, and it does so in a very optimal way when indexed by the index implementation. In fact, the only real change needed was to change over to the default attribute field being"Value"
instead of""
, which was basically a one-line change :joy: I also realized thatEntry
doesn't need to reference the field name at all, which undoes most of the changes inindex_schematic
. Oh well, at least the source of dependency cycles is now indicated, andcargo fmt
has been run for the project. Next things would be taking a look at fixing the parsing logic ofkicad_parse_gen
as well as implementing support for metric prefixes.