Make Value::columns return slice instead of cloned Vec (#9927)

# Description
This PR changes `Value::columns` to return a slice of columns instead of
cloning said columns. If the caller needs an owned copy, they can use
`slice::to_vec` or the like. This eliminates unnecessary Vec clones
(e.g., in `update cells`).

# User-Facing Changes
Breaking change for `nu_protocol` API.
This commit is contained in:
Ian Manske
2023-08-07 19:43:32 +00:00
committed by GitHub
parent d302d63030
commit c070e2d6f7
2 changed files with 4 additions and 4 deletions

View File

@ -1732,10 +1732,10 @@ impl Value {
matches!(self, Value::Bool { val: false, .. })
}
pub fn columns(&self) -> Vec<String> {
pub fn columns(&self) -> &[String] {
match self {
Value::Record { cols, .. } => cols.clone(),
_ => vec![],
Value::Record { cols, .. } => cols,
_ => &[],
}
}