summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
author+merlan #flirora <flirora@flirora.xyz>2025-03-31 05:06:18 -0400
committerGitHub <noreply@github.com>2025-03-31 09:06:18 +0000
commita64af130dc84c84442d59f322b705bded28201de (patch)
tree5a27cc17b861cca3d0f06b9edf3de432701ada2a /crates
parent1082181a6f789b73fbc64c4ff5bc1401ad081e76 (diff)
Add default parameter for array.{first, last} (#5970)
Diffstat (limited to 'crates')
-rw-r--r--crates/typst-library/src/foundations/array.rs24
1 files changed, 18 insertions, 6 deletions
diff --git a/crates/typst-library/src/foundations/array.rs b/crates/typst-library/src/foundations/array.rs
index e81b9e64..b647473a 100644
--- a/crates/typst-library/src/foundations/array.rs
+++ b/crates/typst-library/src/foundations/array.rs
@@ -172,17 +172,29 @@ impl Array {
}
/// Returns the first item in the array. May be used on the left-hand side
- /// of an assignment. Fails with an error if the array is empty.
+ /// an assignment. Returns the default value if the array is empty
+ /// or fails with an error is no default value was specified.
#[func]
- pub fn first(&self) -> StrResult<Value> {
- self.0.first().cloned().ok_or_else(array_is_empty)
+ pub fn first(
+ &self,
+ /// A default value to return if the array is empty.
+ #[named]
+ default: Option<Value>,
+ ) -> StrResult<Value> {
+ self.0.first().cloned().or(default).ok_or_else(array_is_empty)
}
/// Returns the last item in the array. May be used on the left-hand side of
- /// an assignment. Fails with an error if the array is empty.
+ /// an assignment. Returns the default value if the array is empty
+ /// or fails with an error is no default value was specified.
#[func]
- pub fn last(&self) -> StrResult<Value> {
- self.0.last().cloned().ok_or_else(array_is_empty)
+ pub fn last(
+ &self,
+ /// A default value to return if the array is empty.
+ #[named]
+ default: Option<Value>,
+ ) -> StrResult<Value> {
+ self.0.last().cloned().or(default).ok_or_else(array_is_empty)
}
/// Returns the item at the specified index in the array. May be used on the