mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 14:40:06 +02:00
Make custom value type handling more consistent (#12230)
[Context on Discord](https://discord.com/channels/601130461678272522/855947301380947968/1219425984990806207) # Description - Rename `CustomValue::value_string()` to `type_name()` to reflect its usage better. - Change print behavior to always call `to_base_value()` first, to give the custom value better control over the output. - Change `describe --detailed` to show the type name as the subtype, rather than trying to describe the base value. - Change custom `Type` to use `type_name()` rather than `typetag_name()` to make things like `PluginCustomValue` more transparent One question: should `describe --detailed` still include a description of the base value somewhere? I'm torn on it, it seems possibly useful for some things (maybe sqlite databases?), but having `describe -d` not include the custom type name anywhere felt weird. Another option would be to add another method to `CustomValue` for info to be displayed in `describe`, so that it can be more type-specific? # User-Facing Changes Everything above has implications for printing and `describe` on custom values # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib`
This commit is contained in:
@ -20,7 +20,7 @@ impl CustomValue for NuDataFrame {
|
||||
Value::custom_value(Box::new(cloned), span)
|
||||
}
|
||||
|
||||
fn value_string(&self) -> String {
|
||||
fn type_name(&self) -> String {
|
||||
self.typetag_name().to_string()
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ impl CustomValue for NuExpression {
|
||||
Value::custom_value(Box::new(cloned), span)
|
||||
}
|
||||
|
||||
fn value_string(&self) -> String {
|
||||
fn type_name(&self) -> String {
|
||||
self.typetag_name().to_string()
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ impl CustomValue for NuLazyFrame {
|
||||
Value::custom_value(Box::new(cloned), span)
|
||||
}
|
||||
|
||||
fn value_string(&self) -> String {
|
||||
fn type_name(&self) -> String {
|
||||
self.typetag_name().to_string()
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ impl CustomValue for NuLazyGroupBy {
|
||||
Value::custom_value(Box::new(cloned), span)
|
||||
}
|
||||
|
||||
fn value_string(&self) -> String {
|
||||
fn type_name(&self) -> String {
|
||||
self.typetag_name().to_string()
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ impl CustomValue for NuWhen {
|
||||
Value::custom_value(Box::new(cloned), span)
|
||||
}
|
||||
|
||||
fn value_string(&self) -> String {
|
||||
fn type_name(&self) -> String {
|
||||
self.typetag_name().to_string()
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user