mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 22:50:14 +02:00
A couple more (#1149)
This commit is contained in:
@ -48,8 +48,8 @@ impl ColumnPath {
|
||||
self.members.iter()
|
||||
}
|
||||
|
||||
pub fn split_last(&self) -> (&PathMember, &[PathMember]) {
|
||||
self.members.split_last().unwrap()
|
||||
pub fn split_last(&self) -> Option<(&PathMember, &[PathMember])> {
|
||||
self.members.split_last()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -414,8 +414,7 @@ pub trait PrettyDebug {
|
||||
let doc = self.pretty_doc();
|
||||
let mut buffer = termcolor::Buffer::no_color();
|
||||
|
||||
doc.render_raw(width, &mut TermColored::new(&mut buffer))
|
||||
.unwrap();
|
||||
let _ = doc.render_raw(width, &mut TermColored::new(&mut buffer));
|
||||
|
||||
String::from_utf8_lossy(buffer.as_slice()).to_string()
|
||||
}
|
||||
@ -424,8 +423,7 @@ pub trait PrettyDebug {
|
||||
let doc = self.pretty_doc();
|
||||
let mut buffer = termcolor::Buffer::ansi();
|
||||
|
||||
doc.render_raw(width, &mut TermColored::new(&mut buffer))
|
||||
.unwrap();
|
||||
let _ = doc.render_raw(width, &mut TermColored::new(&mut buffer));
|
||||
|
||||
String::from_utf8_lossy(buffer.as_slice()).to_string()
|
||||
}
|
||||
|
@ -291,25 +291,30 @@ pub fn insert_data_at_column_path(
|
||||
split_path: &ColumnPath,
|
||||
new_value: Value,
|
||||
) -> Result<Value, ShellError> {
|
||||
let (last, front) = split_path.split_last();
|
||||
let mut original = value.clone();
|
||||
if let Some((last, front)) = split_path.split_last() {
|
||||
let mut original = value.clone();
|
||||
|
||||
let mut current: &mut Value = &mut original;
|
||||
let mut current: &mut Value = &mut original;
|
||||
|
||||
for member in front {
|
||||
let type_name = current.spanned_type_name();
|
||||
for member in front {
|
||||
let type_name = current.spanned_type_name();
|
||||
|
||||
current = get_mut_data_by_member(current, &member).ok_or_else(|| {
|
||||
ShellError::missing_property(
|
||||
member.plain_string(std::usize::MAX).spanned(member.span),
|
||||
type_name,
|
||||
)
|
||||
})?
|
||||
current = get_mut_data_by_member(current, &member).ok_or_else(|| {
|
||||
ShellError::missing_property(
|
||||
member.plain_string(std::usize::MAX).spanned(member.span),
|
||||
type_name,
|
||||
)
|
||||
})?
|
||||
}
|
||||
|
||||
insert_data_at_member(current, &last, new_value)?;
|
||||
|
||||
Ok(original)
|
||||
} else {
|
||||
Err(ShellError::untagged_runtime_error(
|
||||
"Internal error: could not split column-path correctly",
|
||||
))
|
||||
}
|
||||
|
||||
insert_data_at_member(current, &last, new_value)?;
|
||||
|
||||
Ok(original)
|
||||
}
|
||||
|
||||
pub fn replace_data_at_column_path(
|
||||
|
Reference in New Issue
Block a user