Remove Span::unknown (#525)

This commit is contained in:
JT
2021-12-19 18:46:13 +11:00
committed by GitHub
parent b54e9b6bfd
commit 2883d6cd1e
183 changed files with 1291 additions and 1124 deletions

View File

@ -52,7 +52,7 @@ impl Command for SubCommand {
example: "date format '%Y-%m-%d'",
result: Some(Value::String {
val: Local::now().format("%Y-%m-%d").to_string(),
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -60,7 +60,7 @@ impl Command for SubCommand {
example: r#"date format "%Y-%m-%d %H:%M:%S""#,
result: Some(Value::String {
val: Local::now().format("%Y-%m-%d %H:%M:%S").to_string(),
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -68,7 +68,7 @@ impl Command for SubCommand {
example: r#""2021-10-22 20:00:12 +01:00" | date format "%Y-%m-%d""#,
result: Some(Value::String {
val: "2021-10-22".into(),
span: Span::unknown(),
span: Span::test_data(),
}),
},
]
@ -81,8 +81,11 @@ fn format_helper(value: Value, formatter: &Spanned<String>, span: Span) -> Value
val: val.format(formatter.item.as_str()).to_string(),
span,
},
Value::String { val, span: _ } => {
let dt = parse_date_from_string(val);
Value::String {
val,
span: val_span,
} => {
let dt = parse_date_from_string(val, val_span);
match dt {
Ok(x) => Value::String {
val: x.format(formatter.item.as_str()).to_string(),
@ -101,7 +104,7 @@ fn format_helper(value: Value, formatter: &Spanned<String>, span: Span) -> Value
span,
}
}
_ => unsupported_input_error(),
_ => unsupported_input_error(span),
}
}

View File

@ -38,7 +38,7 @@ impl Command for SubCommand {
example: "date humanize",
result: Some(Value::String {
val: "now".to_string(),
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -59,8 +59,11 @@ fn helper(value: Value, head: Span) -> Value {
span: head,
}
}
Value::String { val, span: _ } => {
let dt = parse_date_from_string(val);
Value::String {
val,
span: val_span,
} => {
let dt = parse_date_from_string(val, val_span);
match dt {
Ok(x) => Value::String {
val: humanize_date(x),
@ -76,7 +79,7 @@ fn helper(value: Value, head: Span) -> Value {
_ => Value::Error {
error: ShellError::UnsupportedInput(
String::from("Date cannot be parsed / date format is not supported"),
Span::unknown(),
head,
),
},
}

View File

@ -47,7 +47,7 @@ impl Command for SubCommand {
description: "Print the date in a structured table.",
example: " '2020-04-12 22:10:57 +0200' | date to-table",
result: {
let span = Span::unknown();
let span = Span::test_data();
let cols = vec![
"year".into(),
"month".into(),
@ -136,8 +136,11 @@ fn parse_date_into_table(date: Result<DateTime<FixedOffset>, Value>, head: Span)
fn helper(val: Value, head: Span) -> Value {
match val {
Value::String { val, span: _ } => {
let date = parse_date_from_string(val);
Value::String {
val,
span: val_span,
} => {
let date = parse_date_from_string(val, val_span);
parse_date_into_table(date, head)
}
Value::Nothing { span: _ } => {
@ -146,7 +149,7 @@ fn helper(val: Value, head: Span) -> Value {
parse_date_into_table(Ok(n), head)
}
Value::Date { val, span: _ } => parse_date_into_table(Ok(val), head),
_ => unsupported_input_error(),
_ => unsupported_input_error(head),
}
}

View File

@ -78,7 +78,7 @@ impl Command for SubCommand {
Some(Value::Date {
val: dt,
span: Span::unknown(),
span: Span::test_data(),
})
},
},
@ -89,8 +89,11 @@ impl Command for SubCommand {
fn helper(value: Value, head: Span, timezone: &Spanned<String>) -> Value {
match value {
Value::Date { val, span: _ } => _to_timezone(val, timezone, head),
Value::String { val, span: _ } => {
let time = parse_date_from_string(val);
Value::String {
val,
span: val_span,
} => {
let time = parse_date_from_string(val, val_span);
match time {
Ok(dt) => _to_timezone(dt, timezone, head),
Err(e) => e,
@ -101,7 +104,7 @@ fn helper(value: Value, head: Span, timezone: &Spanned<String>) -> Value {
let dt = Local::now();
_to_timezone(dt.with_timezone(dt.offset()), timezone, head)
}
_ => unsupported_input_error(),
_ => unsupported_input_error(head),
}
}

View File

@ -1,7 +1,7 @@
use chrono::{DateTime, FixedOffset};
use nu_protocol::{ShellError, Span, Value};
pub fn unsupported_input_error() -> Value {
pub fn unsupported_input_error(span: Span) -> Value {
Value::Error {
error: ShellError::UnsupportedInput(
String::from(
@ -11,12 +11,12 @@ pub fn unsupported_input_error() -> Value {
* rfc3339 -- 2020-04-12T22:10:57+02:00 \n
* rfc2822 -- Tue, 1 Jul 2003 10:52:37 +0200",
),
Span::unknown(),
span,
),
}
}
pub fn parse_date_from_string(input: String) -> Result<DateTime<FixedOffset>, Value> {
pub fn parse_date_from_string(input: String, span: Span) -> Result<DateTime<FixedOffset>, Value> {
let datetime = DateTime::parse_from_str(&input, "%Y-%m-%d %H:%M:%S %z"); // "2020-04-12 22:10:57 +02:00";
match datetime {
Ok(x) => Ok(x),
@ -32,7 +32,7 @@ pub fn parse_date_from_string(input: String) -> Result<DateTime<FixedOffset>, Va
let datetime = DateTime::parse_from_rfc2822(&input); // "Tue, 1 Jul 2003 10:52:37 +0200";
match datetime {
Ok(x) => Ok(x),
Err(_) => Err(unsupported_input_error()),
Err(_) => Err(unsupported_input_error(span)),
}
}
}