mirror of
https://github.com/nushell/nushell.git
synced 2025-05-26 04:40:53 +02:00
* Infer types from regular delimited plain text unstructured files. * Nothing resolves to an empty string.
56 lines
1.8 KiB
Rust
56 lines
1.8 KiB
Rust
#[macro_export]
|
|
macro_rules! return_ok {
|
|
($expr:expr) => {
|
|
match $expr {
|
|
Ok(val) => return Ok(val),
|
|
Err(_) => {}
|
|
}
|
|
};
|
|
}
|
|
|
|
#[cfg(test)]
|
|
macro_rules! equal_tokens {
|
|
($source:tt -> $tokens:expr) => {
|
|
let result = apply(pipeline, "pipeline", $source);
|
|
let (expected_tree, expected_source) = TokenTreeBuilder::build($tokens);
|
|
|
|
if result != expected_tree {
|
|
let debug_result = format!("{}", result.debug($source));
|
|
let debug_expected = format!("{}", expected_tree.debug(&expected_source));
|
|
|
|
if debug_result == debug_expected {
|
|
assert_eq!(
|
|
result, expected_tree,
|
|
"NOTE: actual and expected had equivalent debug serializations, source={:?}, debug_expected={:?}",
|
|
$source,
|
|
debug_expected
|
|
)
|
|
} else {
|
|
assert_eq!(debug_result, debug_expected)
|
|
}
|
|
}
|
|
};
|
|
|
|
(<$parser:tt> $source:tt -> $tokens:expr) => {
|
|
let result = apply($parser, stringify!($parser), $source);
|
|
|
|
let (expected_tree, expected_source) = TokenTreeBuilder::build($tokens);
|
|
|
|
if result != expected_tree {
|
|
let debug_result = format!("{}", result.debug($source));
|
|
let debug_expected = format!("{}", expected_tree.debug(&expected_source));
|
|
|
|
if debug_result == debug_expected {
|
|
assert_eq!(
|
|
result, expected_tree,
|
|
"NOTE: actual and expected had equivalent debug serializations, source={:?}, debug_expected={:?}",
|
|
$source,
|
|
debug_expected
|
|
)
|
|
} else {
|
|
assert_eq!(debug_result, debug_expected)
|
|
}
|
|
}
|
|
};
|
|
}
|