@@ -4,7 +4,8 @@ use reqwest::{
44} ;
55
66/// QueryBuilder struct
7- pub struct Builder < ' a > {
7+ #[ derive( Clone ) ]
8+ pub struct Builder {
89 method : Method ,
910 url : String ,
1011 schema : Option < String > ,
@@ -15,13 +16,13 @@ pub struct Builder<'a> {
1516 is_rpc : bool ,
1617 // sharing a client is a good idea, performance wise
1718 // the client has to live at least as much as the builder
18- client : & ' a Client ,
19+ client : Client ,
1920}
2021
2122// TODO: Test Unicode support
22- impl < ' a > Builder < ' a > {
23+ impl Builder {
2324 /// Creates a new `Builder` with the specified `schema`.
24- pub fn new < T > ( url : T , schema : Option < String > , headers : HeaderMap , client : & ' a Client ) -> Self
25+ pub fn new < T > ( url : T , schema : Option < String > , headers : HeaderMap , client : Client ) -> Self
2526 where
2627 T : Into < String > ,
2728 {
@@ -584,7 +585,7 @@ mod tests {
584585 #[ test]
585586 fn only_accept_json ( ) {
586587 let client = Client :: new ( ) ;
587- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) ;
588+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) ;
588589 assert_eq ! (
589590 builder. headers. get( "Accept" ) . unwrap( ) ,
590591 HeaderValue :: from_static( "application/json" )
@@ -594,7 +595,7 @@ mod tests {
594595 #[ test]
595596 fn auth_with_token ( ) {
596597 let client = Client :: new ( ) ;
597- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . auth ( "$Up3rS3crET" ) ;
598+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . auth ( "$Up3rS3crET" ) ;
598599 assert_eq ! (
599600 builder. headers. get( "Authorization" ) . unwrap( ) ,
600601 HeaderValue :: from_static( "Bearer $Up3rS3crET" )
@@ -604,7 +605,7 @@ mod tests {
604605 #[ test]
605606 fn select_assert_query ( ) {
606607 let client = Client :: new ( ) ;
607- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . select ( "some_table" ) ;
608+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . select ( "some_table" ) ;
608609 assert_eq ! ( builder. method, Method :: GET ) ;
609610 assert_eq ! (
610611 builder
@@ -617,7 +618,7 @@ mod tests {
617618 #[ test]
618619 fn order_assert_query ( ) {
619620 let client = Client :: new ( ) ;
620- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . order ( "id" ) ;
621+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . order ( "id" ) ;
621622 assert_eq ! (
622623 builder
623624 . queries
@@ -629,7 +630,7 @@ mod tests {
629630 #[ test]
630631 fn order_with_options_assert_query ( ) {
631632 let client = Client :: new ( ) ;
632- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . order_with_options (
633+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . order_with_options (
633634 "name" ,
634635 Some ( "cities" ) ,
635636 true ,
@@ -646,7 +647,7 @@ mod tests {
646647 #[ test]
647648 fn limit_assert_range_header ( ) {
648649 let client = Client :: new ( ) ;
649- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . limit ( 20 ) ;
650+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . limit ( 20 ) ;
650651 assert_eq ! (
651652 builder. headers. get( "Range" ) . unwrap( ) ,
652653 HeaderValue :: from_static( "0-19" )
@@ -656,7 +657,7 @@ mod tests {
656657 #[ test]
657658 fn foreign_table_limit_assert_query ( ) {
658659 let client = Client :: new ( ) ;
659- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client)
660+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client)
660661 . foreign_table_limit ( 20 , "some_table" ) ;
661662 assert_eq ! (
662663 builder
@@ -669,7 +670,7 @@ mod tests {
669670 #[ test]
670671 fn range_assert_range_header ( ) {
671672 let client = Client :: new ( ) ;
672- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . range ( 10 , 20 ) ;
673+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . range ( 10 , 20 ) ;
673674 assert_eq ! (
674675 builder. headers. get( "Range" ) . unwrap( ) ,
675676 HeaderValue :: from_static( "10-20" )
@@ -679,7 +680,7 @@ mod tests {
679680 #[ test]
680681 fn single_assert_accept_header ( ) {
681682 let client = Client :: new ( ) ;
682- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . single ( ) ;
683+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . single ( ) ;
683684 assert_eq ! (
684685 builder. headers. get( "Accept" ) . unwrap( ) ,
685686 HeaderValue :: from_static( "application/vnd.pgrst.object+json" )
@@ -689,7 +690,7 @@ mod tests {
689690 #[ test]
690691 fn upsert_assert_prefer_header ( ) {
691692 let client = Client :: new ( ) ;
692- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . upsert ( "ignored" ) ;
693+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . upsert ( "ignored" ) ;
693694 assert_eq ! (
694695 builder. headers. get( "Prefer" ) . unwrap( ) ,
695696 HeaderValue :: from_static( "return=representation,resolution=merge-duplicates" )
@@ -699,23 +700,23 @@ mod tests {
699700 #[ test]
700701 fn not_rpc_should_not_have_flag ( ) {
701702 let client = Client :: new ( ) ;
702- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client) . select ( "ignored" ) ;
703+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client) . select ( "ignored" ) ;
703704 assert_eq ! ( builder. is_rpc, false ) ;
704705 }
705706
706707 #[ test]
707708 fn rpc_should_have_body_and_flag ( ) {
708709 let client = Client :: new ( ) ;
709710 let builder =
710- Builder :: new ( RPC_URL , None , HeaderMap :: new ( ) , & client) . rpc ( "{\" a\" : 1, \" b\" : 2}" ) ;
711+ Builder :: new ( RPC_URL , None , HeaderMap :: new ( ) , client) . rpc ( "{\" a\" : 1, \" b\" : 2}" ) ;
711712 assert_eq ! ( builder. body. unwrap( ) , "{\" a\" : 1, \" b\" : 2}" ) ;
712713 assert_eq ! ( builder. is_rpc, true ) ;
713714 }
714715
715716 #[ test]
716717 fn chain_filters ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
717718 let client = Client :: new ( ) ;
718- let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , & client)
719+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) , client)
719720 . eq ( "username" , "supabot" )
720721 . neq ( "message" , "hello world" )
721722 . gte ( "channel_id" , "1" )
0 commit comments