schema
schema copied to clipboard
Support default values for custom types by performing the default scan before decoding
What type of PR is this? (check all applicable)
- [x] Refactor
- [x] Feature
- [ ] Bug Fix
- [ ] Optimization
- [ ] Documentation Update
- [ ] Go Version Update
- [ ] Dependency Update
Description
Rather than setting defaults on the output of the decode, this sets defaults on the input. This means that all of the fancy logic in decode that handles custom converters and TextUnmarshallers can apply to default values as well.
DRAFT: Still needs some error handling updates, encode support, and general polish, but sending this out as a draft to demonstrate that the approach works. You can see that the unit test still passes for all of the previously supported default types, as well as a new custom type. I'll try to get around to polishing this up soon.
Related Tickets & Documents
- Closes #225
Added/updated tests?
- [X] Yes
- [ ] No, and this is why: please replace this line with details on why tests have not been included
- [ ] I need help with writing tests
Run verifications and test
- [ ]
make verifyis passing - [ ]
make testis passing
This is awesome, I also thought it was quite weird that applying the default values required a whole new piece of code when it's functionally the same thing as parsing the form values. I see you commented out some tests, mind if I take a crack?
@PapaCharlie Not at all! I keep meaning to get back to this and just haven't found the time.