forked from extern/nushell
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:
parent
d302d63030
commit
c070e2d6f7
@ -261,7 +261,7 @@ fn convert_to_list(
|
||||
let mut iter = iter.into_iter().peekable();
|
||||
|
||||
if let Some(first) = iter.peek() {
|
||||
let mut headers = first.columns();
|
||||
let mut headers = first.columns().to_vec();
|
||||
|
||||
if !headers.is_empty() {
|
||||
headers.insert(0, "#".into());
|
||||
|
@ -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,
|
||||
_ => &[],
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user