Skip to content

Commit 023698a

Browse files
Moved Seq to /src/ser/seq.rs
1 parent a19ec90 commit 023698a

File tree

2 files changed

+39
-22
lines changed

2 files changed

+39
-22
lines changed

src/ser/mod.rs

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
use std::io::Write;
22
use std::fmt::Display;
33

4-
use serde::ser::{self, Impossible, Serialize, SerializeSeq};
4+
use serde::ser::{self, Impossible, Serialize};
55

66
use error::{Error, ErrorKind, Result};
77
use self::var::{Map, Struct};
8+
use self::seq::Seq;
89

910
mod var;
11+
mod seq;
1012

1113

1214
/// A convenience method for serializing some object to a buffer.
@@ -234,7 +236,7 @@ where
234236
}
235237

236238
fn serialize_seq(self, len: Option<usize>) -> Result<Self::SerializeSeq> {
237-
Ok(Seq { parent: self })
239+
Ok(Seq::new(self))
238240
}
239241

240242
fn serialize_tuple(self, len: usize) -> Result<Self::SerializeTuple> {
@@ -285,26 +287,6 @@ where
285287
}
286288
}
287289

288-
pub struct Seq<'a, W: 'a + Write> {
289-
parent: &'a mut Serializer<W>,
290-
}
291-
292-
impl<'a, W: Write> SerializeSeq for Seq<'a, W> {
293-
type Ok = ();
294-
type Error = Error;
295-
296-
fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<Self::Ok>
297-
where
298-
T: Serialize,
299-
{
300-
value.serialize(&mut *self.parent)
301-
}
302-
303-
fn end(self) -> Result<Self::Ok> {
304-
Ok(())
305-
}
306-
}
307-
308290

309291
#[cfg(test)]
310292
mod tests {

src/ser/seq.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
use std::io::Write;
2+
use serde::ser::{Serialize, SerializeSeq};
3+
4+
use ser::Serializer;
5+
use error::{Error, Result};
6+
7+
pub struct Seq<'a, W: 'a + Write> {
8+
parent: &'a mut Serializer<W>,
9+
}
10+
11+
12+
impl<'w, W> Seq<'w, W>
13+
where
14+
W: 'w + Write,
15+
{
16+
pub fn new(parent: &'w mut Serializer<W>) -> Seq<'w, W> {
17+
Seq { parent }
18+
}
19+
}
20+
21+
impl<'a, W: Write> SerializeSeq for Seq<'a, W> {
22+
type Ok = ();
23+
type Error = Error;
24+
25+
fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<Self::Ok>
26+
where
27+
T: Serialize,
28+
{
29+
value.serialize(&mut *self.parent)
30+
}
31+
32+
fn end(self) -> Result<Self::Ok> {
33+
Ok(())
34+
}
35+
}

0 commit comments

Comments
 (0)