mirror of
https://github.com/nushell/nushell
synced 2025-01-03 16:58:58 +00:00
73f3c0b60b
# Description Adds support for the following operations on plugin custom values, in addition to `to_base_value` which was already present: - `follow_path_int()` - `follow_path_string()` - `partial_cmp()` - `operation()` - `Drop` (notification, if opted into with `CustomValue::notify_plugin_on_drop`) There are additionally customizable methods within the `Plugin` and `StreamingPlugin` traits for implementing these functions in a way that requires access to the plugin state, as a registered handle model such as might be used in a dataframes plugin would. `Value::append` was also changed to handle custom values correctly. # User-Facing Changes - Signature of `CustomValue::follow_path_string` and `CustomValue::follow_path_int` changed to give access to the span of the custom value itself, useful for some errors. - Plugins using custom values have to be recompiled because the engine will try to do custom value operations that aren't supported - Plugins can do more things 🎉 # Tests + Formatting Tests were added for all of the new custom values functionality. - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting - [ ] Document protocol reference `CustomValueOp` variants: - [ ] `FollowPathInt` - [ ] `FollowPathString` - [ ] `PartialCmp` - [ ] `Operation` - [ ] `Dropped` - [ ] Document `notify_on_drop` optional field in `PluginCustomValue` |
||
---|---|---|
.. | ||
bytes | ||
charting | ||
conversions | ||
database | ||
date | ||
debug | ||
env | ||
experimental | ||
filesystem | ||
filters | ||
formats | ||
generators | ||
hash | ||
help | ||
math | ||
misc | ||
network | ||
path | ||
platform | ||
random | ||
removed | ||
shells | ||
stor | ||
strings | ||
system | ||
viewers | ||
default_context.rs | ||
example_test.rs | ||
lib.rs | ||
progress_bar.rs | ||
sort_utils.rs |