Skip to content

Commit 5b4c783

Browse files
committed
serialize dimIndex string
1 parent 5764bba commit 5b4c783

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

svd-rs/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## Unreleased
99

10+
- (De)serialize `dimIndex` (from)to string
11+
1012
## [v0.14.0] - 2022-07-19
1113

1214
- Bump MSRV to 1.56.0 (2021)

svd-rs/src/dimelement.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pub struct DimElement {
2323
feature = "serde",
2424
serde(
2525
deserialize_with = "ser_de::deserialize_dim_index",
26+
serialize_with = "ser_de::serialize_dim_index",
2627
skip_serializing_if = "Option::is_none"
2728
)
2829
)]
@@ -243,7 +244,7 @@ impl<'a> Iterator for Indexes<'a> {
243244
#[cfg(feature = "serde")]
244245
mod ser_de {
245246
use super::*;
246-
use serde::{de, Deserialize, Deserializer};
247+
use serde::{de, Deserialize, Deserializer, Serializer};
247248
#[derive(serde::Serialize, serde::Deserialize)]
248249
#[serde(untagged)]
249250
enum DimIndex {
@@ -264,4 +265,11 @@ mod ser_de {
264265
),
265266
})
266267
}
268+
269+
pub fn serialize_dim_index<S>(val: &Option<Vec<String>>, s: S) -> Result<S::Ok, S::Error>
270+
where
271+
S: Serializer,
272+
{
273+
s.serialize_str(&val.as_ref().unwrap().join(","))
274+
}
267275
}

0 commit comments

Comments
 (0)