summaryrefslogtreecommitdiff
path: root/src/library/mod.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-04-07 18:04:29 +0200
committerLaurenz <laurmaedje@gmail.com>2022-04-07 18:04:29 +0200
commit4bb6240b401605ef6d905273db07545e14f9a21f (patch)
treeb01163a5fce3fe62d16abcbdabf37bc373617ff1 /src/library/mod.rs
parent1192132dc0a9e991953fd29e93f87c8437a53ea0 (diff)
Make `Relative` generic
Diffstat (limited to 'src/library/mod.rs')
-rw-r--r--src/library/mod.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs
index af9ab575..7c5a519f 100644
--- a/src/library/mod.rs
+++ b/src/library/mod.rs
@@ -167,16 +167,13 @@ castable! {
}
castable! {
- Spec<Relative>,
+ Spec<Relative<Length>>,
Expected: "array of two relative lengths",
Value::Array(array) => {
- match array.as_slice() {
- [a, b] => {
- let a = a.clone().cast::<Relative>()?;
- let b = b.clone().cast::<Relative>()?;
- Spec::new(a, b)
- },
- _ => return Err("point array must contain exactly two entries".to_string()),
+ let mut iter = array.into_iter();
+ match (iter.next(), iter.next(), iter.next()) {
+ (Some(a), Some(b), None) => Spec::new(a.cast()?, b.cast()?),
+ _ => Err("point array must contain exactly two entries")?,
}
},
}