Add text_len() methods to more *Prefix enums in ruff_python_ast (#16254)

This commit is contained in:
Alex Waygood 2025-02-19 14:47:07 +00:00 committed by GitHub
parent 55ea09401a
commit f50849aeef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View file

@ -1029,7 +1029,7 @@ pub trait StringFlags: Copy {
/// i.e., the length of the prefixes plus the length
/// of the quotes used to open the string.
fn opener_len(self) -> TextSize {
self.prefix().as_str().text_len() + self.quote_len()
self.prefix().text_len() + self.quote_len()
}
/// The total length of the string's closer.

View file

@ -71,6 +71,13 @@ impl FStringPrefix {
}
}
pub const fn text_len(self) -> TextSize {
match self {
Self::Regular => TextSize::new(1),
Self::Raw { .. } => TextSize::new(2),
}
}
/// Return true if this prefix indicates a "raw f-string",
/// e.g. `rf"{bar}"` or `Rf"{bar}"`
pub const fn is_raw(self) -> bool {
@ -105,6 +112,13 @@ impl ByteStringPrefix {
}
}
pub const fn text_len(self) -> TextSize {
match self {
Self::Regular => TextSize::new(1),
Self::Raw { .. } => TextSize::new(2),
}
}
/// Return true if this prefix indicates a "raw bytestring",
/// e.g. `rb"foo"` or `Rb"foo"`
pub const fn is_raw(self) -> bool {
@ -150,6 +164,14 @@ impl AnyStringPrefix {
}
}
pub const fn text_len(self) -> TextSize {
match self {
Self::Regular(regular_prefix) => regular_prefix.text_len(),
Self::Bytes(bytestring_prefix) => bytestring_prefix.text_len(),
Self::Format(fstring_prefix) => fstring_prefix.text_len(),
}
}
pub const fn is_raw(self) -> bool {
match self {
Self::Regular(regular_prefix) => regular_prefix.is_raw(),