(tokens: &[String], i: &mut usize)
| 189 | } |
| 190 | |
| 191 | fn parse_timing_token(tokens: &[String], i: &mut usize) -> String { |
| 192 | if *i >= tokens.len() { |
| 193 | return "AFTER".to_string(); |
| 194 | } |
| 195 | match tokens[*i].as_str() { |
| 196 | "BEFORE" => { |
| 197 | *i += 1; |
| 198 | "BEFORE".to_string() |
| 199 | } |
| 200 | "AFTER" => { |
| 201 | *i += 1; |
| 202 | "AFTER".to_string() |
| 203 | } |
| 204 | "INSTEAD" => { |
| 205 | *i += 1; |
| 206 | if *i < tokens.len() && tokens[*i] == "OF" { |
| 207 | *i += 1; |
| 208 | } |
| 209 | "INSTEAD OF".to_string() |
| 210 | } |
| 211 | _ => "AFTER".to_string(), |
| 212 | } |
| 213 | } |
| 214 | |
| 215 | fn parse_event_tokens(tokens: &[String], i: &mut usize) -> (bool, bool, bool) { |
| 216 | let (mut insert, mut update, mut delete) = (false, false, false); |
no test coverage detected