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

@ -70,22 +70,22 @@ Test' | from eml",
Value::Record {
cols: vec!["Name".to_string(), "Address".to_string()],
vals: vec![
Value::nothing(Span::unknown()),
Value::nothing(Span::test_data()),
Value::test_string("test@email.com"),
],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec!["Name".to_string(), "Address".to_string()],
vals: vec![
Value::nothing(Span::unknown()),
Value::nothing(Span::test_data()),
Value::test_string("someone@somewhere.com"),
],
span: Span::unknown(),
span: Span::test_data(),
},
Value::test_string("Test"),
],
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -107,22 +107,22 @@ Test' | from eml -b 1",
Value::Record {
cols: vec!["Name".to_string(), "Address".to_string()],
vals: vec![
Value::nothing(Span::unknown()),
Value::nothing(Span::test_data()),
Value::test_string("test@email.com"),
],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec!["Name".to_string(), "Address".to_string()],
vals: vec![
Value::nothing(Span::unknown()),
Value::nothing(Span::test_data()),
Value::test_string("someone@somewhere.com"),
],
span: Span::unknown(),
span: Span::test_data(),
},
Value::test_string("T"),
],
span: Span::unknown(),
span: Span::test_data(),
}),
},
]

View File

@ -57,36 +57,36 @@ END:VCALENDAR' | from ics",
vals: vec![
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
}]
}

View File

@ -34,16 +34,16 @@ b=2' | from ini",
vals: vec![
Value::String {
val: "1".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::String {
val: "2".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
}]
}

View File

@ -32,9 +32,9 @@ impl Command for FromJson {
cols: vec!["a".to_string()],
vals: vec![Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -45,23 +45,23 @@ impl Command for FromJson {
vals: vec![
Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![
Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
},
Value::Int {
val: 2,
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}),
},
]

View File

@ -43,7 +43,7 @@ impl Command for FromOds {
let sel_sheets = if let Some(Value::List { vals: columns, .. }) =
call.get_flag(engine_state, stack, "sheets")?
{
convert_columns(columns.as_slice())?
convert_columns(columns.as_slice(), call.head)?
} else {
vec![]
};
@ -67,14 +67,14 @@ impl Command for FromOds {
}
}
fn convert_columns(columns: &[Value]) -> Result<Vec<String>, ShellError> {
fn convert_columns(columns: &[Value], span: Span) -> Result<Vec<String>, ShellError> {
let res = columns
.iter()
.map(|value| match &value {
Value::String { val: s, .. } => Ok(s.clone()),
_ => Err(ShellError::IncompatibleParametersSingle(
"Incorrect column format, Only string as column name".to_string(),
value.span().unwrap_or_else(|_| Span::unknown()),
value.span().unwrap_or(span),
)),
})
.collect::<Result<Vec<String>, _>>()?;
@ -82,7 +82,7 @@ fn convert_columns(columns: &[Value]) -> Result<Vec<String>, ShellError> {
Ok(res)
}
fn collect_binary(input: PipelineData) -> Result<Vec<u8>, ShellError> {
fn collect_binary(input: PipelineData, span: Span) -> Result<Vec<u8>, ShellError> {
let mut bytes = vec![];
let mut values = input.into_iter();
@ -94,7 +94,7 @@ fn collect_binary(input: PipelineData) -> Result<Vec<u8>, ShellError> {
Some(x) => {
return Err(ShellError::UnsupportedInput(
"Expected binary from pipeline".to_string(),
x.span().unwrap_or_else(|_| Span::unknown()),
x.span().unwrap_or(span),
))
}
None => break,
@ -109,7 +109,7 @@ fn from_ods(
head: Span,
sel_sheets: Vec<String>,
) -> Result<PipelineData, ShellError> {
let bytes = collect_binary(input)?;
let bytes = collect_binary(input, head)?;
let buf: Cursor<Vec<u8>> = Cursor::new(bytes);
let mut ods = Ods::<_>::new(buf)
.map_err(|_| ShellError::UnsupportedInput("Could not load ods file".to_string(), head))?;

View File

@ -43,13 +43,13 @@ impl Command for FromSsv {
example: r#"'FOO BAR
1 2' | from ssv"#,
description: "Converts ssv formatted string to table",
result: Some(Value::List { vals: vec![Value::Record { cols: vec!["FOO".to_string(), "BAR".to_string()], vals: vec![Value::String { val: "1".to_string(), span: Span::unknown() }, Value::String { val: "2".to_string(), span: Span::unknown() }], span: Span::unknown() }], span: Span::unknown() }),
result: Some(Value::List { vals: vec![Value::Record { cols: vec!["FOO".to_string(), "BAR".to_string()], vals: vec![Value::String { val: "1".to_string(), span: Span::test_data() }, Value::String { val: "2".to_string(), span: Span::test_data() }], span: Span::test_data() }], span: Span::test_data() }),
}, Example {
example: r#"'FOO BAR
1 2' | from ssv -n"#,
description: "Converts ssv formatted string to table but not treating the first row as column names",
result: Some(
Value::List { vals: vec![Value::Record { cols: vec!["Column1".to_string(), "Column2".to_string()], vals: vec![Value::String { val: "FOO".to_string(), span: Span::unknown() }, Value::String { val: "BAR".to_string(), span: Span::unknown() }], span: Span::unknown() }, Value::Record { cols: vec!["Column1".to_string(), "Column2".to_string()], vals: vec![Value::String { val: "1".to_string(), span: Span::unknown() }, Value::String { val: "2".to_string(), span: Span::unknown() }], span: Span::unknown() }], span: Span::unknown() }),
Value::List { vals: vec![Value::Record { cols: vec!["Column1".to_string(), "Column2".to_string()], vals: vec![Value::String { val: "FOO".to_string(), span: Span::test_data() }, Value::String { val: "BAR".to_string(), span: Span::test_data() }], span: Span::test_data() }, Value::Record { cols: vec!["Column1".to_string(), "Column2".to_string()], vals: vec![Value::String { val: "1".to_string(), span: Span::test_data() }, Value::String { val: "2".to_string(), span: Span::test_data() }], span: Span::test_data() }], span: Span::test_data() }),
}]
}

View File

@ -29,9 +29,9 @@ impl Command for FromToml {
cols: vec!["a".to_string()],
vals: vec![Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -43,23 +43,23 @@ b = [1, 2]' | from toml",
vals: vec![
Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
},
Value::List {
vals: vec![
Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
},
Value::Int {
val: 2,
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}),
},
]

View File

@ -47,7 +47,7 @@ impl Command for FromUrl {
Value::test_string("ham"),
Value::test_string("butter"),
],
span: Span::unknown(),
span: Span::test_data(),
}),
}]
}

View File

@ -58,17 +58,17 @@ END:VCARD' | from vcf",
vals: vec![
Value::String {
val: "N".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::String {
val: "Foo".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::Nothing {
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec![
@ -79,17 +79,17 @@ END:VCARD' | from vcf",
vals: vec![
Value::String {
val: "FN".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::String {
val: "Bar".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::Nothing {
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec![
@ -100,24 +100,24 @@ END:VCARD' | from vcf",
vals: vec![
Value::String {
val: "EMAIL".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::String {
val: "foo@bar.com".to_string(),
span: Span::unknown(),
span: Span::test_data(),
},
Value::Nothing {
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
}]
}

View File

@ -43,7 +43,7 @@ impl Command for FromXlsx {
let sel_sheets = if let Some(Value::List { vals: columns, .. }) =
call.get_flag(engine_state, stack, "sheets")?
{
convert_columns(columns.as_slice())?
convert_columns(columns.as_slice(), call.head)?
} else {
vec![]
};
@ -67,14 +67,14 @@ impl Command for FromXlsx {
}
}
fn convert_columns(columns: &[Value]) -> Result<Vec<String>, ShellError> {
fn convert_columns(columns: &[Value], span: Span) -> Result<Vec<String>, ShellError> {
let res = columns
.iter()
.map(|value| match &value {
Value::String { val: s, .. } => Ok(s.clone()),
_ => Err(ShellError::IncompatibleParametersSingle(
"Incorrect column format, Only string as column name".to_string(),
value.span().unwrap_or_else(|_| Span::unknown()),
value.span().unwrap_or(span),
)),
})
.collect::<Result<Vec<String>, _>>()?;
@ -82,7 +82,7 @@ fn convert_columns(columns: &[Value]) -> Result<Vec<String>, ShellError> {
Ok(res)
}
fn collect_binary(input: PipelineData) -> Result<Vec<u8>, ShellError> {
fn collect_binary(input: PipelineData, span: Span) -> Result<Vec<u8>, ShellError> {
let mut bytes = vec![];
let mut values = input.into_iter();
@ -94,7 +94,7 @@ fn collect_binary(input: PipelineData) -> Result<Vec<u8>, ShellError> {
Some(x) => {
return Err(ShellError::UnsupportedInput(
"Expected binary from pipeline".to_string(),
x.span().unwrap_or_else(|_| Span::unknown()),
x.span().unwrap_or(span),
))
}
None => break,
@ -109,7 +109,7 @@ fn from_xlsx(
head: Span,
sel_sheets: Vec<String>,
) -> Result<PipelineData, ShellError> {
let bytes = collect_binary(input)?;
let bytes = collect_binary(input, head)?;
let buf: Cursor<Vec<u8>> = Cursor::new(bytes);
let mut xlsx = Xlsx::<_>::new(buf)
.map_err(|_| ShellError::UnsupportedInput("Could not load xlsx file".to_string(), head))?;

View File

@ -55,31 +55,31 @@ impl Command for FromXml {
Value::List {
vals: vec![Value::String {
val: "Event".to_string(),
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec![],
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec![],
vals: vec![],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
}]
}
@ -201,26 +201,26 @@ mod tests {
fn string(input: impl Into<String>) -> Value {
Value::String {
val: input.into(),
span: Span::unknown(),
span: Span::test_data(),
}
}
fn row(entries: IndexMap<String, Value>) -> Value {
Value::from(Spanned {
item: entries,
span: Span::unknown(),
span: Span::test_data(),
})
}
fn table(list: &[Value]) -> Value {
Value::List {
vals: list.to_vec(),
span: Span::unknown(),
span: Span::test_data(),
}
}
fn parse(xml: &str) -> Result<Value, roxmltree::Error> {
from_xml_string_to_value(xml.to_string(), Span::unknown())
from_xml_string_to_value(xml.to_string(), Span::test_data())
}
#[test]

View File

@ -33,9 +33,9 @@ impl Command for FromYaml {
cols: vec!["a".to_string()],
vals: vec![Value::Int {
val: 1,
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
},
Example {
@ -46,18 +46,18 @@ impl Command for FromYaml {
Value::Record {
cols: vec!["a".to_string()],
vals: vec![Value::test_int(1)],
span: Span::unknown(),
span: Span::test_data(),
},
Value::Record {
cols: vec!["b".to_string()],
vals: vec![Value::List {
vals: vec![Value::test_int(1), Value::test_int(2)],
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
},
],
span: Span::unknown(),
span: Span::test_data(),
}),
},
]
@ -233,9 +233,9 @@ mod test {
cols: vec!["value".to_string()],
vals: vec![Value::String {
val: "{{ something }}".to_string(),
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
},
TestCase {
@ -245,15 +245,15 @@ mod test {
cols: vec!["value".to_string()],
vals: vec![Value::String {
val: "{{ something }}".to_string(),
span: Span::unknown(),
span: Span::test_data(),
}],
span: Span::unknown(),
span: Span::test_data(),
}),
},
];
let config = Config::default();
for tc in tt {
let actual = from_yaml_string_to_value(tc.input.to_owned(), Span::unknown());
let actual = from_yaml_string_to_value(tc.input.to_owned(), Span::test_data());
if actual.is_err() {
assert!(
tc.expected.is_err(),