mirror of
https://github.com/nushell/nushell
synced 2025-01-21 17:44:12 +00:00
9b7f899410
# Description In #13031 I added the derive macros for `FromValue` and `IntoValue`. In that implementation, in particular for structs with named fields, it was not possible to omit fields while loading them from a value, when the field is an `Option`. This PR adds extra handling for this behavior, so if a field is an `Option` and that field is missing in the `Value`, then the field becomes `None`. This behavior is also tested in `nu_protocol::value::test_derive::missing_options`. # User-Facing Changes When using structs for options or similar, users can now just emit fields in the record and the derive `from_value` method will be able to understand this, if the struct has an `Option` type for that field. # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting A showcase for this feature would be great, I tried to use the current derive macro in a plugin of mine for a config but without this addition, they are annoying to use. So, when this is done, I would add an example for such plugin configs that may be loaded via `FromValue`. |
||
---|---|---|
.. | ||
custom_value.rs | ||
duration.rs | ||
filesize.rs | ||
from.rs | ||
from_value.rs | ||
glob.rs | ||
into_value.rs | ||
mod.rs | ||
range.rs | ||
record.rs | ||
test_derive.rs |