@@ -401,13 +401,7 @@ impl<T, C> PaginatedQueryWithCountSubq<T, C> {
401
401
}
402
402
}
403
403
404
- #[ allow( unused_macro_rules) ]
405
404
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
405
// Field struct
412
406
( @variant_struct $vis: vis $variant: ident {
413
407
$( $( #[ $field_meta: meta] ) ? $field: ident: $ty: ty) ,*
@@ -616,12 +610,9 @@ mod tests {
616
610
use chrono:: naive:: serde:: ts_microseconds;
617
611
seek ! {
618
612
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 }
613
+ Id { id: i32 }
614
+ New { #[ serde( with="ts_microseconds" ) ] dt: chrono:: NaiveDateTime , id: i32 }
615
+ RecentDownloads { downloads: Option <i64 >, id: i32 }
625
616
}
626
617
}
627
618
}
@@ -641,9 +632,9 @@ mod tests {
641
632
assert_eq ! ( decoded, expect) ;
642
633
} ;
643
634
644
- // Tuple struct
635
+ let id = 1234 ;
645
636
let seek = Seek :: Id ;
646
- let payload = SeekPayload :: Id ( Id ( 1234 ) ) ;
637
+ let payload = SeekPayload :: Id ( Id { id } ) ;
647
638
let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
648
639
assert_decode_after ( seek, & query, Some ( payload) ) ;
649
640
@@ -652,57 +643,21 @@ mod tests {
652
643
. and_hms_opt ( 9 , 10 , 11 )
653
644
. unwrap ( ) ;
654
645
let seek = Seek :: New ;
655
- let payload = SeekPayload :: New ( New ( dt, 1234 ) ) ;
646
+ let payload = SeekPayload :: New ( New { dt, id } ) ;
656
647
let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
657
648
assert_decode_after ( seek, & query, Some ( payload) ) ;
658
649
650
+ let downloads = Some ( 5678 ) ;
659
651
let seek = Seek :: RecentDownloads ;
660
- let payload = SeekPayload :: RecentDownloads ( RecentDownloads ( Some ( 5678 ) , 1234 ) ) ;
652
+ let payload = SeekPayload :: RecentDownloads ( RecentDownloads { downloads , id } ) ;
661
653
let query = format ! ( "seek={}" , encode_seek( & payload) . unwrap( ) ) ;
662
654
assert_decode_after ( seek, & query, Some ( payload) ) ;
663
655
664
656
let seek = Seek :: Id ;
665
657
assert_decode_after ( seek, "" , None ) ;
666
658
667
659
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 } ) ;
660
+ let payload = SeekPayload :: RecentDownloads ( RecentDownloads { downloads, id } ) ;
706
661
let query = format ! ( "seek={}" , encode_seek( payload) . unwrap( ) ) ;
707
662
let pagination = PaginationOptions :: builder ( )
708
663
. enable_seek ( true )
@@ -721,52 +676,30 @@ mod tests {
721
676
) ;
722
677
assert_eq ! (
723
678
encode_seek( NewTuple ( dt, id) ) . unwrap( ) ,
724
- encode_seek( SeekPayload :: NamedNew ( NamedNew { dt, id } ) ) . unwrap( )
679
+ encode_seek( SeekPayload :: New ( New { dt, id } ) ) . unwrap( )
725
680
) ;
726
681
}
727
682
728
683
#[ test]
729
684
fn test_seek_macro_conv ( ) {
730
685
use chrono:: { NaiveDate , NaiveDateTime } ;
731
686
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
687
let id = 1234 ;
749
- assert_eq ! (
750
- Seek :: from( SeekPayload :: NamedId ( NamedId { id } ) ) ,
751
- Seek :: NamedId
752
- ) ;
688
+ assert_eq ! ( Seek :: from( SeekPayload :: Id ( Id { id } ) ) , Seek :: Id ) ;
753
689
754
690
let dt: NaiveDateTime = NaiveDate :: from_ymd_opt ( 2016 , 7 , 8 )
755
691
. unwrap ( )
756
692
. and_hms_opt ( 9 , 10 , 11 )
757
693
. unwrap ( ) ;
758
- assert_eq ! (
759
- Seek :: from( SeekPayload :: NamedNew ( NamedNew { dt, id } ) ) ,
760
- Seek :: NamedNew
761
- ) ;
694
+ assert_eq ! ( Seek :: from( SeekPayload :: New ( New { dt, id } ) ) , Seek :: New ) ;
762
695
763
696
let downloads = None ;
764
697
assert_eq ! (
765
- Seek :: from( SeekPayload :: NamedRecentDownloads ( NamedRecentDownloads {
698
+ Seek :: from( SeekPayload :: RecentDownloads ( RecentDownloads {
766
699
downloads,
767
700
id
768
701
} ) ) ,
769
- Seek :: NamedRecentDownloads
702
+ Seek :: RecentDownloads
770
703
) ;
771
704
}
772
705
0 commit comments