(&mut self)
| 4664 | } |
| 4665 | |
| 4666 | fn parse_cluster_option_schedule(&mut self) -> Result<ClusterOption<Raw>, ParserError> { |
| 4667 | let _ = self.consume_token(&Token::Eq); |
| 4668 | let kw = self.expect_one_of_keywords(&[MANUAL, ON])?; |
| 4669 | let value = match kw { |
| 4670 | MANUAL => ClusterScheduleOptionValue::Manual, |
| 4671 | ON => { |
| 4672 | self.expect_keyword(REFRESH)?; |
| 4673 | // Parse optional `(HYDRATION TIME ESTIMATE ...)` |
| 4674 | let hydration_time_estimate = if self.consume_token(&Token::LParen) { |
| 4675 | self.expect_keywords(&[HYDRATION, TIME, ESTIMATE])?; |
| 4676 | let _ = self.consume_token(&Token::Eq); |
| 4677 | let interval = self.parse_interval_value()?; |
| 4678 | self.expect_token(&Token::RParen)?; |
| 4679 | Some(interval) |
| 4680 | } else { |
| 4681 | None |
| 4682 | }; |
| 4683 | ClusterScheduleOptionValue::Refresh { |
| 4684 | hydration_time_estimate, |
| 4685 | } |
| 4686 | } |
| 4687 | _ => unreachable!(), |
| 4688 | }; |
| 4689 | Ok(ClusterOption { |
| 4690 | name: ClusterOptionName::Schedule, |
| 4691 | value: Some(WithOptionValue::ClusterScheduleOptionValue(value)), |
| 4692 | }) |
| 4693 | } |
| 4694 | |
| 4695 | fn parse_replica_option(&mut self) -> Result<ReplicaOption<Raw>, ParserError> { |
| 4696 | let name = match self.expect_one_of_keywords(&[ |
no test coverage detected