mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 20:37:15 +02:00
Add support for seq values
This commit is contained in:
parent
006e54109b
commit
1b47a10e89
2 changed files with 76 additions and 6 deletions
|
@ -8,7 +8,7 @@ pub struct ConvertToString;
|
|||
impl ser::Serializer for ConvertToString {
|
||||
type Ok = String;
|
||||
type Error = SerializerError;
|
||||
type SerializeSeq = ser::Impossible<Self::Ok, Self::Error>;
|
||||
type SerializeSeq = SeqConvertToString;
|
||||
type SerializeTuple = ser::Impossible<Self::Ok, Self::Error>;
|
||||
type SerializeTupleStruct = ser::Impossible<Self::Ok, Self::Error>;
|
||||
type SerializeTupleVariant = ser::Impossible<Self::Ok, Self::Error>;
|
||||
|
@ -135,8 +135,8 @@ impl ser::Serializer for ConvertToString {
|
|||
}
|
||||
|
||||
fn serialize_seq(self, _len: Option<usize>) -> Result<Self::SerializeSeq, Self::Error> {
|
||||
Err(SerializerError::UnserializableType {
|
||||
type_name: "sequence",
|
||||
Ok(SeqConvertToString {
|
||||
text: String::new(),
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -254,3 +254,26 @@ impl ser::SerializeStruct for StructConvertToString {
|
|||
Ok(self.text)
|
||||
}
|
||||
}
|
||||
|
||||
pub struct SeqConvertToString {
|
||||
text: String,
|
||||
}
|
||||
|
||||
impl ser::SerializeSeq for SeqConvertToString {
|
||||
type Ok = String;
|
||||
type Error = SerializerError;
|
||||
|
||||
fn serialize_element<T: ?Sized>(&mut self, key: &T) -> Result<(), Self::Error>
|
||||
where
|
||||
T: ser::Serialize,
|
||||
{
|
||||
let text = key.serialize(ConvertToString)?;
|
||||
self.text.push_str(&text);
|
||||
self.text.push_str(" ");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn end(self) -> Result<Self::Ok, Self::Error> {
|
||||
Ok(self.text)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue