diff options
| author | Martin Haug <mhaug@live.de> | 2022-03-17 10:50:51 +0100 |
|---|---|---|
| committer | Martin Haug <mhaug@live.de> | 2022-03-17 10:50:51 +0100 |
| commit | 6f5b721fe56fe6e3735d03b07e3716fc39572639 (patch) | |
| tree | 002ed75565e02baeb1ce1b9ec53f0a92491d17ab /src/library/mod.rs | |
| parent | 4d617bcd67f9e42218da190dc9a0bf2f10d4b78d (diff) | |
CR: I'm gonna make him a refactor he can't refuse
Diffstat (limited to 'src/library/mod.rs')
| -rw-r--r-- | src/library/mod.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs index 88f003c2..505f1a1d 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -174,11 +174,15 @@ castable! { castable! { Spec<Linear>, - Expected: "two-dimensional length array", + Expected: "array of exactly two linears", Value::Array(array) => { - let e = "point array must contain exactly two entries"; - let a = array.get(0).map_err(|_| e)?.clone().cast::<Linear>()?; - let b = array.get(1).map_err(|_| e)?.clone().cast::<Linear>()?; - Spec::new(a, b) + match array.as_slice() { + [a, b] => { + let a = a.clone().cast::<Linear>()?; + let b = b.clone().cast::<Linear>()?; + Spec::new(a, b) + }, + _ => return Err("point array must contain exactly two entries".to_string()), + } }, } |
