diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-12-21 16:19:46 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-12-21 16:19:46 +0100 |
| commit | 31f904a2c406953cbce334e02b37a712b9b9d016 (patch) | |
| tree | c23f6e063864d97afb9b3d58c10ce4c2877106c5 /src/model/cast.rs | |
| parent | 4af7b9118c5ce612b3d9d7dd06118ce23b731d9c (diff) | |
Split up and document shapes
Diffstat (limited to 'src/model/cast.rs')
| -rw-r--r-- | src/model/cast.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/model/cast.rs b/src/model/cast.rs index 1a5cae45..17ed2d30 100644 --- a/src/model/cast.rs +++ b/src/model/cast.rs @@ -415,9 +415,9 @@ impl<T: Cast> Cast for Smart<T> { } } -impl<T> Cast for Sides<T> +impl<T> Cast for Sides<Option<T>> where - T: Cast + Default + Copy, + T: Cast + Copy, { fn is(value: &Value) -> bool { matches!(value, Value::Dict(_)) || T::is(value) @@ -439,9 +439,9 @@ where dict.finish(&["left", "top", "right", "bottom", "x", "y", "rest"])?; - Ok(sides.map(Option::unwrap_or_default)) + Ok(sides) } else if T::is(&value) { - Ok(Self::splat(T::cast(value)?)) + Ok(Self::splat(Some(T::cast(value)?))) } else { <Self as Cast>::error(value) } @@ -452,9 +452,9 @@ where } } -impl<T> Cast for Corners<T> +impl<T> Cast for Corners<Option<T>> where - T: Cast + Default + Copy, + T: Cast + Copy, { fn is(value: &Value) -> bool { matches!(value, Value::Dict(_)) || T::is(value) @@ -488,9 +488,9 @@ where "rest", ])?; - Ok(corners.map(Option::unwrap_or_default)) + Ok(corners) } else if T::is(&value) { - Ok(Self::splat(T::cast(value)?)) + Ok(Self::splat(Some(T::cast(value)?))) } else { <Self as Cast>::error(value) } |
