Coding 2022-01-23
I did mess a little with the card code, but that is in serious need of modularization. Putting that aside, I finally got back to MOTR, and I, sadly but understandably, didn't get right back up to speed immediately.
I wrote some helper aliases for defining decorators, and they, kind of helped, I guess.
I don't remember exactly what came next, so I'm going with my best guess, which is that I should be filling in these blocks that end in raise NotImplementedError.
These blocks are there to handle two of the possible types that a value of the Part union can take. I've handled Static[...], so what remains is InputAccumulator and AdaptiveDynamic.
It's been three weeks, so I kind of don't remember how this stuff, like, works. Let's see... AdaptiveDynamic assembles any number of ValueAdaptor instances, which are already loaded into the adaptors accumulator parameter, so I don't need to worry about that bit. The intended result of each of these blocks is that a value of type Dynamic[Option] is stored in the option_dynamic variable. All it makes sense to do with the AdaptiveDynamic is to replicate the builder decorator as a method.
Okay, I did all that, and there are no tests, so let's just hope that actually made sense. Let's see if I can put together something plausible-sounding for the other block. That's going to be an InputAccumulator that gets built up by the adaptors, and then converted via the flex functions, which... hm. I forget if I had plans for environment variable handling, but I'm not seeing anything obvious for it, so I think I need to step back and consider whether I'm representing all of the data that needs to be represented.
I've got some other things I want to take care of tonight, so I'm going to call things here, and get a better handle on this code later.
Good night.