(key: &str)
| 288 | } |
| 289 | |
| 290 | fn parse_offset_key(key: &str) -> Option<(u64, String, String, u32)> { |
| 291 | let parts: Vec<&str> = key.splitn(4, ':').collect(); |
| 292 | if parts.len() == 4 { |
| 293 | let tenant = parts[0].parse().ok()?; |
| 294 | let partition = parts[3].parse().ok()?; |
| 295 | Some(( |
| 296 | tenant, |
| 297 | parts[1].to_string(), |
| 298 | parts[2].to_string(), |
| 299 | partition, |
| 300 | )) |
| 301 | } else { |
| 302 | None |
| 303 | } |
| 304 | } |
| 305 | |
| 306 | #[cfg(test)] |
| 307 | mod tests { |