Skip to content

Commit 20bf34a

Browse files
committed
FEAT: implement serialization for IxDyn
1 parent 4a34572 commit 20bf34a

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/array_serde.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use imp_prelude::*;
1616

1717
use super::arraytraits::ARRAY_FORMAT_VERSION;
1818
use super::Iter;
19+
use IntoDimension;
1920

2021
/// Verifies that the version of the deserialized array matches the current
2122
/// `ARRAY_FORMAT_VERSION`.
@@ -52,6 +53,27 @@ impl<'de, I> Deserialize<'de> for Dim<I>
5253
}
5354
}
5455

56+
/// **Requires crate feature `"serde-1"`**
57+
impl Serialize for IxDyn
58+
{
59+
fn serialize<Se>(&self, serializer: Se) -> Result<Se::Ok, Se::Error>
60+
where Se: Serializer
61+
{
62+
self.ix().serialize(serializer)
63+
}
64+
}
65+
66+
/// **Requires crate feature `"serde-1"`**
67+
impl<'de> Deserialize<'de> for IxDyn
68+
{
69+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
70+
where D: Deserializer<'de>
71+
{
72+
let v = Vec::<Ix>::deserialize(deserializer)?;
73+
Ok(v.into_dimension())
74+
}
75+
}
76+
5577
/// **Requires crate feature `"serde-1"`**
5678
impl<A, D, S> Serialize for ArrayBase<S, D>
5779
where A: Serialize,

0 commit comments

Comments
 (0)