summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrozolotl <44589151+frozolotl@users.noreply.github.com>2023-09-12 19:26:35 +1000
committerGitHub <noreply@github.com>2023-09-12 11:26:35 +0200
commit14d28dbf4e9c67333c54aed51c0a1dab9a264c17 (patch)
treeaf25b247cc206daacff23bd04853f26a5a705fb8
parent3ca4c94870b8ff5155369aa265e4123b62b94715 (diff)
Gracefully handle error if field was not defined (#2110)
-rw-r--r--crates/typst-cli/src/query.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/typst-cli/src/query.rs b/crates/typst-cli/src/query.rs
index 55f04fe8..0db6eb54 100644
--- a/crates/typst-cli/src/query.rs
+++ b/crates/typst-cli/src/query.rs
@@ -83,7 +83,7 @@ fn retrieve(
/// Format the query result in the output format.
fn format(elements: Vec<Content>, command: &QueryCommand) -> StrResult<String> {
if command.one && elements.len() != 1 {
- bail!("expected exactly one element, found {}", elements.len())
+ bail!("expected exactly one element, found {}", elements.len());
}
let mapped: Vec<_> = elements
@@ -95,7 +95,10 @@ fn format(elements: Vec<Content>, command: &QueryCommand) -> StrResult<String> {
.collect();
if command.one {
- serialize(&mapped[0], command.format)
+ let Some(value) = mapped.get(0) else {
+ bail!("no such field found for element");
+ };
+ serialize(value, command.format)
} else {
serialize(&mapped, command.format)
}