use find instead of for loop

This commit is contained in:
Loïc Riegel 2025-03-30 18:18:54 +02:00
parent 259b19d4f7
commit ed73899ad4

View File

@ -497,12 +497,14 @@ fn action(input: &Value, args: &Arguments, head: Span) -> Value {
} }
fn merge_record(record: &Record, head: Span, span: Span) -> Value { fn merge_record(record: &Record, head: Span, span: Span) -> Value {
for key in record.columns() { if let Some(invalid_col) = record
if !ALLOWED_COLUMNS.contains(&key.as_str()) { .columns()
.find(|key| !ALLOWED_COLUMNS.contains(&key.as_str()))
{
let allowed_cols = ALLOWED_COLUMNS.join(", "); let allowed_cols = ALLOWED_COLUMNS.join(", ");
return Value::error(ShellError::UnsupportedInput { return Value::error(ShellError::UnsupportedInput {
msg: format!( msg: format!(
"Column '{key}' is not valid for a structured datetime. Allowed columns are: {allowed_cols}" "Column '{invalid_col}' is not valid for a structured datetime. Allowed columns are: {allowed_cols}"
), ),
input: "value originates from here".into(), input: "value originates from here".into(),
msg_span: head, msg_span: head,
@ -510,8 +512,7 @@ fn merge_record(record: &Record, head: Span, span: Span) -> Value {
}, },
span, span,
); );
} };
}
let nanosecond = match parse_value_from_record_as_u32("nanosecond", 0, record, &head, &span) { let nanosecond = match parse_value_from_record_as_u32("nanosecond", 0, record, &head, &span) {
Ok(value) => value, Ok(value) => value,
@ -698,7 +699,7 @@ fn parse_timezone_from_record(
Ok(offset) Ok(offset)
} }
other => { other => {
return Err(Value::error( Err(Value::error(
ShellError::OnlySupportsThisInputType { ShellError::OnlySupportsThisInputType {
exp_input_type: "string".to_string(), exp_input_type: "string".to_string(),
wrong_type: other.get_type().to_string(), wrong_type: other.get_type().to_string(),
@ -706,7 +707,7 @@ fn parse_timezone_from_record(
src_span: other.span(), src_span: other.span(),
}, },
*span, *span,
)); ))
} }
}, },
None => Ok(FixedOffset::east_opt(0).unwrap()), None => Ok(FixedOffset::east_opt(0).unwrap()),