@@ -83,7 +83,7 @@ pub(super) fn parse(input: &mut &str) -> ModalResult<Relative> {
8383fn seconds ( input : & mut & str ) -> ModalResult < Relative > {
8484 (
8585 opt ( alt ( ( s ( '+' ) . value ( 1 ) , s ( '-' ) . value ( -1 ) ) ) ) ,
86- sec_and_nsec,
86+ s ( sec_and_nsec) ,
8787 s ( alpha1) . verify ( |s : & str | matches ! ( s, "seconds" | "second" | "sec" | "secs" ) ) ,
8888 ago,
8989 )
@@ -138,41 +138,54 @@ mod tests {
138138 ( "secs" , Relative :: Seconds ( 1 , 0 ) ) ,
139139 ( "second ago" , Relative :: Seconds ( -1 , 0 ) ) ,
140140 ( "3 seconds" , Relative :: Seconds ( 3 , 0 ) ) ,
141+ ( "+ 3 seconds" , Relative :: Seconds ( 3 , 0 ) ) ,
141142 ( "3.5 seconds" , Relative :: Seconds ( 3 , 500_000_000 ) ) ,
142143 ( "-3.5 seconds" , Relative :: Seconds ( -4 , 500_000_000 ) ) ,
143144 ( "+3.5 seconds" , Relative :: Seconds ( 3 , 500_000_000 ) ) ,
145+ ( "+ 3.5 seconds" , Relative :: Seconds ( 3 , 500_000_000 ) ) ,
144146 ( "3.5 seconds ago" , Relative :: Seconds ( -4 , 500_000_000 ) ) ,
145- ( "-3.5 seconds ago" , Relative :: Seconds ( 3 , 500_000_000 ) ) ,
147+ ( "- 3.5 seconds ago" , Relative :: Seconds ( 3 , 500_000_000 ) ) ,
146148 // Minutes
147149 ( "minute" , Relative :: Minutes ( 1 ) ) ,
148150 ( "minutes" , Relative :: Minutes ( 1 ) ) ,
149151 ( "min" , Relative :: Minutes ( 1 ) ) ,
150152 ( "mins" , Relative :: Minutes ( 1 ) ) ,
151153 ( "10 minutes" , Relative :: Minutes ( 10 ) ) ,
152154 ( "-10 minutes" , Relative :: Minutes ( -10 ) ) ,
155+ ( "- 10 minutes" , Relative :: Minutes ( -10 ) ) ,
153156 ( "10 minutes ago" , Relative :: Minutes ( -10 ) ) ,
154157 ( "-10 minutes ago" , Relative :: Minutes ( 10 ) ) ,
158+ ( "- 10 minutes ago" , Relative :: Minutes ( 10 ) ) ,
159+ ( "-10 minutes ago" , Relative :: Minutes ( 10 ) ) ,
160+ ( "- 10 minutes ago" , Relative :: Minutes ( 10 ) ) ,
155161 // Hours
156162 ( "hour" , Relative :: Hours ( 1 ) ) ,
157163 ( "hours" , Relative :: Hours ( 1 ) ) ,
158164 ( "10 hours" , Relative :: Hours ( 10 ) ) ,
159165 ( "+10 hours" , Relative :: Hours ( 10 ) ) ,
166+ ( "+ 10 hours" , Relative :: Hours ( 10 ) ) ,
160167 ( "-10 hours" , Relative :: Hours ( -10 ) ) ,
168+ ( "- 10 hours" , Relative :: Hours ( -10 ) ) ,
161169 ( "10 hours ago" , Relative :: Hours ( -10 ) ) ,
162170 ( "-10 hours ago" , Relative :: Hours ( 10 ) ) ,
171+ ( "- 10 hours ago" , Relative :: Hours ( 10 ) ) ,
163172 // Days
164173 ( "day" , Relative :: Days ( 1 ) ) ,
165174 ( "days" , Relative :: Days ( 1 ) ) ,
166175 ( "10 days" , Relative :: Days ( 10 ) ) ,
167176 ( "+10 days" , Relative :: Days ( 10 ) ) ,
177+ ( "+ 10 days" , Relative :: Days ( 10 ) ) ,
168178 ( "-10 days" , Relative :: Days ( -10 ) ) ,
179+ ( "- 10 days" , Relative :: Days ( -10 ) ) ,
169180 ( "10 days ago" , Relative :: Days ( -10 ) ) ,
170181 ( "-10 days ago" , Relative :: Days ( 10 ) ) ,
182+ ( "- 10 days ago" , Relative :: Days ( 10 ) ) ,
171183 // Multiple days
172184 ( "fortnight" , Relative :: Days ( 14 ) ) ,
173185 ( "fortnights" , Relative :: Days ( 14 ) ) ,
174186 ( "2 fortnights ago" , Relative :: Days ( -28 ) ) ,
175187 ( "+2 fortnights ago" , Relative :: Days ( -28 ) ) ,
188+ ( "+ 2 fortnights ago" , Relative :: Days ( -28 ) ) ,
176189 ( "week" , Relative :: Days ( 7 ) ) ,
177190 ( "weeks" , Relative :: Days ( 7 ) ) ,
178191 ( "2 weeks ago" , Relative :: Days ( -14 ) ) ,
0 commit comments