-
Eric Myhre authored
Lots of individual things: - removed the "Begin*" functions; no need to expose that kind of raw operation when the callback forms are zero-cost. - renamed functions for consistent "Build" vs "Assemble". - added "Assign*" functions for all scalar kinds, which reduces the usage of "AbsorbError" (but also, left AbsorbError in). - renamed the ListEntry/MapEntry functions to also have "Assemble*" forms (still callback style). - while also adding Assign{Map|List}Entry{Kind} functions (lets you get rid of another callback whenever the value is a scalar). - added Assign{|MapEntry|ListEntry} functions, which shell out to fluent.Reflect for even more convenience (at the cost of performance). - moved higher level functions like CopyRange to a separate file. - new benchmark, for the terser form of working with scalars. (It's also evidently slightly faster, because fewer small function calls. Slightly surprising considering how much inlining we might expect, but, huh. Alright, surprise bonus; acceptable.) - example function updated to use the terser form. With these terseness improvements to handling of scalars, the overall SLOC count for using the quip system is now exactly on par with fluent. Varations on map key arguments (which could be PathSegment or even Node, in addition to string) still aren't made available this. Perhaps that's just okay. If you're really up some sort of creek where you need that, you can still just use the MapAssembler.AssembleKey system directly, which can do everything.
4f7dfa72