(text: &str, abs_start: usize)
| 455 | } |
| 456 | |
| 457 | fn alias_token_at(text: &str, abs_start: usize) -> Option<(usize, &str)> { |
| 458 | let suffix = &text[abs_start..]; |
| 459 | let marker_rel = suffix.find(PROVIDER_ALIAS_MARKER)?; |
| 460 | if marker_rel == 0 { |
| 461 | return None; |
| 462 | } |
| 463 | let key_start = abs_start + marker_rel + PROVIDER_ALIAS_MARKER.len(); |
| 464 | let key_end = text[key_start..] |
| 465 | .bytes() |
| 466 | .position(|b| !is_env_key_char(b)) |
| 467 | .map_or(text.len(), |p| key_start + p); |
| 468 | if key_end == key_start { |
| 469 | return None; |
| 470 | } |
| 471 | let before_ok = abs_start == 0 || !is_alias_token_char(text.as_bytes()[abs_start - 1]); |
| 472 | let after_ok = key_end == text.len() || !is_alias_token_char(text.as_bytes()[key_end]); |
| 473 | (before_ok && after_ok).then_some((key_end, &text[abs_start..key_end])) |
| 474 | } |
| 475 | |
| 476 | fn alias_env_key(token: &str) -> Option<&str> { |
| 477 | let marker_start = token.find(PROVIDER_ALIAS_MARKER)?; |
no test coverage detected