Skip to content

Commit c6479a2

Browse files
committed
refactor(toml): Pull out ValueSerializer for easier comparison
1 parent 8c43cf8 commit c6479a2

File tree

6 files changed

+469
-461
lines changed

6 files changed

+469
-461
lines changed

crates/toml/src/ser/array.rs

+1-83
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use super::write_document;
2-
use super::write_value;
3-
use super::{Error, Serializer, ValueSerializer};
2+
use super::{Error, Serializer};
43
use crate::fmt::DocumentFormatter;
54

65
type InnerSerializeDocumentSeq =
@@ -86,84 +85,3 @@ impl serde::ser::SerializeTupleStruct for SerializeDocumentArray<'_> {
8685
write_document(self.dst, self.settings, self.inner.end())
8786
}
8887
}
89-
90-
type InnerSerializeValueSeq = <toml_edit::ser::ValueSerializer as serde::Serializer>::SerializeSeq;
91-
92-
#[doc(hidden)]
93-
pub struct SerializeValueArray<'d> {
94-
inner: InnerSerializeValueSeq,
95-
dst: &'d mut String,
96-
}
97-
98-
impl<'d> SerializeValueArray<'d> {
99-
pub(crate) fn new(ser: ValueSerializer<'d>, inner: InnerSerializeValueSeq) -> Self {
100-
Self {
101-
inner,
102-
dst: ser.dst,
103-
}
104-
}
105-
}
106-
107-
impl serde::ser::SerializeSeq for SerializeValueArray<'_> {
108-
type Ok = ();
109-
type Error = Error;
110-
111-
fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
112-
where
113-
T: serde::ser::Serialize + ?Sized,
114-
{
115-
self.inner.serialize_element(value).map_err(Error::wrap)
116-
}
117-
118-
fn end(self) -> Result<Self::Ok, Self::Error> {
119-
write_value(self.dst, self.inner.end())
120-
}
121-
}
122-
123-
impl serde::ser::SerializeTuple for SerializeValueArray<'_> {
124-
type Ok = ();
125-
type Error = Error;
126-
127-
fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
128-
where
129-
T: serde::ser::Serialize + ?Sized,
130-
{
131-
self.inner.serialize_element(value).map_err(Error::wrap)
132-
}
133-
134-
fn end(self) -> Result<Self::Ok, Self::Error> {
135-
write_value(self.dst, self.inner.end())
136-
}
137-
}
138-
139-
impl serde::ser::SerializeTupleVariant for SerializeValueArray<'_> {
140-
type Ok = ();
141-
type Error = Error;
142-
143-
fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
144-
where
145-
T: serde::ser::Serialize + ?Sized,
146-
{
147-
self.inner.serialize_field(value).map_err(Error::wrap)
148-
}
149-
150-
fn end(self) -> Result<Self::Ok, Self::Error> {
151-
write_value(self.dst, self.inner.end())
152-
}
153-
}
154-
155-
impl serde::ser::SerializeTupleStruct for SerializeValueArray<'_> {
156-
type Ok = ();
157-
type Error = Error;
158-
159-
fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
160-
where
161-
T: serde::ser::Serialize + ?Sized,
162-
{
163-
self.inner.serialize_field(value).map_err(Error::wrap)
164-
}
165-
166-
fn end(self) -> Result<Self::Ok, Self::Error> {
167-
write_value(self.dst, self.inner.end())
168-
}
169-
}

crates/toml/src/ser/map.rs

+1-59
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use super::write_document;
2-
use super::write_value;
3-
use super::{Error, Serializer, ValueSerializer};
2+
use super::{Error, Serializer};
43
use crate::fmt::DocumentFormatter;
54

65
type InnerSerializeDocumentTable =
@@ -61,60 +60,3 @@ impl serde::ser::SerializeStruct for SerializeDocumentTable<'_> {
6160
write_document(self.dst, self.settings, self.inner.end())
6261
}
6362
}
64-
65-
type InnerSerializeValueTable =
66-
<toml_edit::ser::ValueSerializer as serde::Serializer>::SerializeMap;
67-
68-
#[doc(hidden)]
69-
pub struct SerializeValueTable<'d> {
70-
inner: InnerSerializeValueTable,
71-
dst: &'d mut String,
72-
}
73-
74-
impl<'d> SerializeValueTable<'d> {
75-
pub(crate) fn new(ser: ValueSerializer<'d>, inner: InnerSerializeValueTable) -> Self {
76-
Self {
77-
inner,
78-
dst: ser.dst,
79-
}
80-
}
81-
}
82-
83-
impl serde::ser::SerializeMap for SerializeValueTable<'_> {
84-
type Ok = ();
85-
type Error = Error;
86-
87-
fn serialize_key<T>(&mut self, input: &T) -> Result<(), Self::Error>
88-
where
89-
T: serde::ser::Serialize + ?Sized,
90-
{
91-
self.inner.serialize_key(input).map_err(Error::wrap)
92-
}
93-
94-
fn serialize_value<T>(&mut self, value: &T) -> Result<(), Self::Error>
95-
where
96-
T: serde::ser::Serialize + ?Sized,
97-
{
98-
self.inner.serialize_value(value).map_err(Error::wrap)
99-
}
100-
101-
fn end(self) -> Result<Self::Ok, Self::Error> {
102-
write_value(self.dst, self.inner.end())
103-
}
104-
}
105-
106-
impl serde::ser::SerializeStruct for SerializeValueTable<'_> {
107-
type Ok = ();
108-
type Error = Error;
109-
110-
fn serialize_field<T>(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error>
111-
where
112-
T: serde::ser::Serialize + ?Sized,
113-
{
114-
self.inner.serialize_field(key, value).map_err(Error::wrap)
115-
}
116-
117-
fn end(self) -> Result<Self::Ok, Self::Error> {
118-
write_value(self.dst, self.inner.end())
119-
}
120-
}

0 commit comments

Comments
 (0)