diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-04-07 18:04:29 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-04-07 18:04:29 +0200 |
| commit | 4bb6240b401605ef6d905273db07545e14f9a21f (patch) | |
| tree | b01163a5fce3fe62d16abcbdabf37bc373617ff1 /src/library/mod.rs | |
| parent | 1192132dc0a9e991953fd29e93f87c8437a53ea0 (diff) | |
Make `Relative` generic
Diffstat (limited to 'src/library/mod.rs')
| -rw-r--r-- | src/library/mod.rs | 13 |
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")?, } }, } |
