@@ -403,11 +403,6 @@ impl<T, C> PaginatedQueryWithCountSubq<T, C> {
403
403
404
404
#[ allow( unused_macro_rules) ]
405
405
macro_rules! seek {
406
- // Tuple struct
407
- ( @variant_struct $vis: vis $variant: ident( $( $( #[ $field_meta: meta] ) ? $ty: ty) ,* ) ) => {
408
- #[ derive( Debug , Default , Deserialize , Serialize , PartialEq ) ]
409
- $vis struct $variant( $( $( #[ $field_meta] ) ? pub ( super ) $ty) ,* ) ;
410
- } ;
411
406
// Field struct
412
407
( @variant_struct $vis: vis $variant: ident {
413
408
$( $( #[ $field_meta: meta] ) ? $field: ident: $ty: ty) ,*
@@ -616,12 +611,9 @@ mod tests {
616
611
use chrono:: naive:: serde:: ts_microseconds;
617
612
seek ! {
618
613
pub ( super ) enum Seek {
619
- Id ( i32 )
620
- New ( #[ serde( with="ts_microseconds" ) ] chrono:: NaiveDateTime , i32 )
621
- RecentDownloads ( Option <i64 >, i32 )
622
- NamedId { id: i32 }
623
- NamedNew { #[ serde( with="ts_microseconds" ) ] dt: chrono:: NaiveDateTime , id: i32 }
624
- NamedRecentDownloads { downloads: Option <i64 >, id: i32 }
614
+ Id { id: i32 }
615
+ New { #[ serde( with="ts_microseconds" ) ] dt: chrono:: NaiveDateTime , id: i32 }
616
+ RecentDownloads { downloads: Option <i64 >, id: i32 }
625
617
}
626
618
}
627
619
}
@@ -641,9 +633,9 @@ mod tests {
641
633
assert_eq ! ( decoded, expect) ;
642
634
} ;
643
635
644
- // Tuple struct
636
+ let id = 1234 ;
645
637
let seek = Seek :: Id ;
646
- let payload = SeekPayload :: Id ( Id ( 1234 ) ) ;
638
+ let payload = SeekPayload :: Id ( Id { id } ) ;
647
639
let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
648
640
assert_decode_after ( seek, & query, Some ( payload) ) ;
649
641
@@ -652,57 +644,21 @@ mod tests {
652
644
. and_hms_opt ( 9 , 10 , 11 )
653
645
. unwrap ( ) ;
654
646
let seek = Seek :: New ;
655
- let payload = SeekPayload :: New ( New ( dt, 1234 ) ) ;
647
+ let payload = SeekPayload :: New ( New { dt, id } ) ;
656
648
let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
657
649
assert_decode_after ( seek, & query, Some ( payload) ) ;
658
650
651
+ let downloads = Some ( 5678 ) ;
659
652
let seek = Seek :: RecentDownloads ;
660
- let payload = SeekPayload :: RecentDownloads ( RecentDownloads ( Some ( 5678 ) , 1234 ) ) ;
653
+ let payload = SeekPayload :: RecentDownloads ( RecentDownloads { downloads , id } ) ;
661
654
let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
662
655
assert_decode_after ( seek, & query, Some ( payload) ) ;
663
656
664
657
let seek = Seek :: Id ;
665
658
assert_decode_after ( seek, "" , None ) ;
666
659
667
660
let seek = Seek :: Id ;
668
- let payload = SeekPayload :: RecentDownloads ( RecentDownloads ( Some ( 5678 ) , 1234 ) ) ;
669
- let query = format ! ( "seek={}" , encode_seek( payload) . unwrap( ) ) ;
670
- let pagination = PaginationOptions :: builder ( )
671
- . enable_seek ( true )
672
- . gather ( & mock ( & query) )
673
- . unwrap ( ) ;
674
- let error = seek. after ( & pagination. page ) . unwrap_err ( ) ;
675
- assert_eq ! ( error. to_string( ) , "invalid seek parameter" ) ;
676
- let response = error. response ( ) ;
677
- assert_eq ! ( response. status( ) , StatusCode :: BAD_REQUEST ) ;
678
-
679
- // Field struct
680
- let id = 1234 ;
681
- let seek = Seek :: NamedId ;
682
- let payload = SeekPayload :: NamedId ( NamedId { id } ) ;
683
- let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
684
- assert_decode_after ( seek, & query, Some ( payload) ) ;
685
-
686
- let dt: NaiveDateTime = NaiveDate :: from_ymd_opt ( 2016 , 7 , 8 )
687
- . unwrap ( )
688
- . and_hms_opt ( 9 , 10 , 11 )
689
- . unwrap ( ) ;
690
- let seek = Seek :: NamedNew ;
691
- let payload = SeekPayload :: NamedNew ( NamedNew { dt, id } ) ;
692
- let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
693
- assert_decode_after ( seek, & query, Some ( payload) ) ;
694
-
695
- let downloads = Some ( 5678 ) ;
696
- let seek = Seek :: NamedRecentDownloads ;
697
- let payload = SeekPayload :: NamedRecentDownloads ( NamedRecentDownloads { downloads, id } ) ;
698
- let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
699
- assert_decode_after ( seek, & query, Some ( payload) ) ;
700
-
701
- let seek = Seek :: NamedId ;
702
- assert_decode_after ( seek, "" , None ) ;
703
-
704
- let seek = Seek :: NamedId ;
705
- let payload = SeekPayload :: NamedRecentDownloads ( NamedRecentDownloads { downloads, id } ) ;
661
+ let payload = SeekPayload :: RecentDownloads ( RecentDownloads { downloads, id } ) ;
706
662
let query = format ! ( "seek={}" , encode_seek( payload) . unwrap( ) ) ;
707
663
let pagination = PaginationOptions :: builder ( )
708
664
. enable_seek ( true )
@@ -721,52 +677,30 @@ mod tests {
721
677
) ;
722
678
assert_eq ! (
723
679
encode_seek( NewTuple ( dt, id) ) . unwrap( ) ,
724
- encode_seek( SeekPayload :: NamedNew ( NamedNew { dt, id } ) ) . unwrap( )
680
+ encode_seek( SeekPayload :: New ( New { dt, id } ) ) . unwrap( )
725
681
) ;
726
682
}
727
683
728
684
#[ test]
729
685
fn test_seek_macro_conv ( ) {
730
686
use chrono:: { NaiveDate , NaiveDateTime } ;
731
687
use seek:: * ;
732
-
733
- // Tuple struct
734
- assert_eq ! ( Seek :: from( SeekPayload :: Id ( Id ( 1234 ) ) ) , Seek :: Id ) ;
735
-
736
- let dt: NaiveDateTime = NaiveDate :: from_ymd_opt ( 2016 , 7 , 8 )
737
- . unwrap ( )
738
- . and_hms_opt ( 9 , 10 , 11 )
739
- . unwrap ( ) ;
740
- assert_eq ! ( Seek :: from( SeekPayload :: New ( New ( dt, 1234 ) ) ) , Seek :: New ) ;
741
-
742
- assert_eq ! (
743
- Seek :: from( SeekPayload :: RecentDownloads ( RecentDownloads ( None , 1234 ) ) ) ,
744
- Seek :: RecentDownloads
745
- ) ;
746
-
747
- // Field struct
748
688
let id = 1234 ;
749
- assert_eq ! (
750
- Seek :: from( SeekPayload :: NamedId ( NamedId { id } ) ) ,
751
- Seek :: NamedId
752
- ) ;
689
+ assert_eq ! ( Seek :: from( SeekPayload :: Id ( Id { id } ) ) , Seek :: Id ) ;
753
690
754
691
let dt: NaiveDateTime = NaiveDate :: from_ymd_opt ( 2016 , 7 , 8 )
755
692
. unwrap ( )
756
693
. and_hms_opt ( 9 , 10 , 11 )
757
694
. unwrap ( ) ;
758
- assert_eq ! (
759
- Seek :: from( SeekPayload :: NamedNew ( NamedNew { dt, id } ) ) ,
760
- Seek :: NamedNew
761
- ) ;
695
+ assert_eq ! ( Seek :: from( SeekPayload :: New ( New { dt, id } ) ) , Seek :: New ) ;
762
696
763
697
let downloads = None ;
764
698
assert_eq ! (
765
- Seek :: from( SeekPayload :: NamedRecentDownloads ( NamedRecentDownloads {
699
+ Seek :: from( SeekPayload :: RecentDownloads ( RecentDownloads {
766
700
downloads,
767
701
id
768
702
} ) ) ,
769
- Seek :: NamedRecentDownloads
703
+ Seek :: RecentDownloads
770
704
) ;
771
705
}
772
706
0 commit comments