diff options
| author | frozolotl <44589151+frozolotl@users.noreply.github.com> | 2023-09-12 19:26:35 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-12 11:26:35 +0200 |
| commit | 14d28dbf4e9c67333c54aed51c0a1dab9a264c17 (patch) | |
| tree | af25b247cc206daacff23bd04853f26a5a705fb8 /crates/typst-cli/src/query.rs | |
| parent | 3ca4c94870b8ff5155369aa265e4123b62b94715 (diff) | |
Gracefully handle error if field was not defined (#2110)
Diffstat (limited to 'crates/typst-cli/src/query.rs')
| -rw-r--r-- | crates/typst-cli/src/query.rs | 7 |
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) } |
