Skip to content

Commit 371d420

Browse files
committed
add function to serialize to vector
1 parent 9949d08 commit 371d420

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/utils/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ pub(crate) mod http;
1010
#[macro_use]
1111
mod macros;
1212
pub(crate) mod path;
13+
pub(crate) mod serialize;
1314
pub mod size;
1415
pub(crate) mod string;
1516

src/utils/serialize.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
use serde::ser::{Serialize, SerializeSeq, Serializer};
2+
use std::iter::IntoIterator;
3+
4+
pub fn to_vec<S, T>(data: T, serializer: S) -> Result<S::Ok, S::Error>
5+
where
6+
S: Serializer,
7+
T: IntoIterator,
8+
T::Item: Serialize,
9+
T::IntoIter: std::iter::ExactSizeIterator,
10+
{
11+
let data = IntoIterator::into_iter(data);
12+
let mut seq = serializer.serialize_seq(Some(data.len()))?;
13+
for element in data {
14+
seq.serialize_element(&element)?;
15+
}
16+
seq.end()
17+
}

0 commit comments

Comments
 (0)