(&mut self)
| 3059 | |
| 3060 | #[inline] |
| 3061 | fn next(&mut self) -> Option<CheckedTimestamp<T>> { |
| 3062 | if !self.done |
| 3063 | && ((self.rev && self.state >= self.stop) || (!self.rev && self.state <= self.stop)) |
| 3064 | { |
| 3065 | let result = self.state.clone(); |
| 3066 | match add_timestamp_months(self.state.deref(), self.step.months) { |
| 3067 | Ok(state) => match state.checked_add_signed(self.step.duration_as_chrono()) { |
| 3068 | Some(v) => match CheckedTimestamp::from_timestamplike(v) { |
| 3069 | Ok(v) => self.state = v, |
| 3070 | Err(_) => self.done = true, |
| 3071 | }, |
| 3072 | None => self.done = true, |
| 3073 | }, |
| 3074 | Err(..) => { |
| 3075 | self.done = true; |
| 3076 | } |
| 3077 | } |
| 3078 | |
| 3079 | Some(result) |
| 3080 | } else { |
| 3081 | None |
| 3082 | } |
| 3083 | } |
| 3084 | } |
| 3085 | |
| 3086 | fn generate_series_ts<T: TimestampLike>( |
no test coverage detected