@@ -2,7 +2,7 @@ use crate::{
2
2
client:: Client , errors:: Error , indexes:: Index , request:: HttpClient , DefaultHttpClient ,
3
3
} ;
4
4
use either:: Either ;
5
- use serde:: { de:: DeserializeOwned , ser :: SerializeStruct , Deserialize , Serialize , Serializer } ;
5
+ use serde:: { de:: DeserializeOwned , Deserialize , Serialize , Serializer } ;
6
6
use serde_json:: { Map , Value } ;
7
7
use std:: collections:: HashMap ;
8
8
@@ -600,26 +600,19 @@ impl<'a, Http: HttpClient> SearchQuery<'a, Http> {
600
600
}
601
601
}
602
602
603
- // TODO: Make it works with the serde derive macro
604
- // #[derive(Debug, Serialize, Clone)]
605
- // #[serde(rename_all = "camelCase")]
606
- #[ derive( Debug , Clone ) ]
603
+ #[ derive( Debug , Serialize , Clone ) ]
604
+ #[ serde( rename_all = "camelCase" ) ]
607
605
pub struct MultiSearchQuery < ' a , ' b , Http : HttpClient = DefaultHttpClient > {
608
- // #[serde(skip_serializing)]
606
+ #[ serde( skip_serializing) ]
609
607
client : & ' a Client < Http > ,
608
+ // The weird `serialize = ""` is actually useful: without it, serde adds the
609
+ // bound `Http: Serialize` to the `Serialize` impl block, but that's not
610
+ // necessary. `SearchQuery` always implements `Serialize` (regardless of
611
+ // type parameter), so no bound is fine.
612
+ #[ serde( bound( serialize = "" ) ) ]
610
613
pub queries : Vec < SearchQuery < ' b , Http > > ,
611
614
}
612
615
613
- impl < Http : HttpClient > Serialize for MultiSearchQuery < ' _ , ' _ , Http > {
614
- fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
615
- where
616
- S : Serializer ,
617
- {
618
- let mut strukt = serializer. serialize_struct ( "MultiSearchQuery" , 1 ) ?;
619
- strukt. serialize_field ( "queries" , & self . queries ) ?;
620
- strukt. end ( )
621
- }
622
- }
623
616
624
617
#[ allow( missing_docs) ]
625
618
impl < ' a , ' b , Http : HttpClient > MultiSearchQuery < ' a , ' b , Http > {
0 commit comments