pub enum Look {
Show 18 variants
Start = 1,
End = 2,
StartLF = 4,
EndLF = 8,
StartCRLF = 16,
EndCRLF = 32,
WordAscii = 64,
WordAsciiNegate = 128,
WordUnicode = 256,
WordUnicodeNegate = 512,
WordStartAscii = 1_024,
WordEndAscii = 2_048,
WordStartUnicode = 4_096,
WordEndUnicode = 8_192,
WordStartHalfAscii = 16_384,
WordEndHalfAscii = 32_768,
WordStartHalfUnicode = 65_536,
WordEndHalfUnicode = 131_072,
}
Expand description
The high-level intermediate representation for a look-around assertion.
An assertion match is always zero-length. Also called an “empty match.”
Variants§
Start = 1
Match the beginning of text. Specifically, this matches at the starting position of the input.
End = 2
Match the end of text. Specifically, this matches at the ending position of the input.
StartLF = 4
Match the beginning of a line or the beginning of text. Specifically,
this matches at the starting position of the input, or at the position
immediately following a \n
character.
EndLF = 8
Match the end of a line or the end of text. Specifically, this matches
at the end position of the input, or at the position immediately
preceding a \n
character.
StartCRLF = 16
Match the beginning of a line or the beginning of text. Specifically,
this matches at the starting position of the input, or at the position
immediately following either a \r
or \n
character, but never after
a \r
when a \n
follows.
EndCRLF = 32
Match the end of a line or the end of text. Specifically, this matches
at the end position of the input, or at the position immediately
preceding a \r
or \n
character, but never before a \n
when a \r
precedes it.
WordAscii = 64
Match an ASCII-only word boundary. That is, this matches a position where the left adjacent character and right adjacent character correspond to a word and non-word or a non-word and word character.
WordAsciiNegate = 128
Match an ASCII-only negation of a word boundary.
WordUnicode = 256
Match a Unicode-aware word boundary. That is, this matches a position where the left adjacent character and right adjacent character correspond to a word and non-word or a non-word and word character.
WordUnicodeNegate = 512
Match a Unicode-aware negation of a word boundary.
WordStartAscii = 1_024
Match the start of an ASCII-only word boundary. That is, this matches a position at either the beginning of the haystack or where the previous character is not a word character and the following character is a word character.
WordEndAscii = 2_048
Match the end of an ASCII-only word boundary. That is, this matches a position at either the end of the haystack or where the previous character is a word character and the following character is not a word character.
WordStartUnicode = 4_096
Match the start of a Unicode word boundary. That is, this matches a position at either the beginning of the haystack or where the previous character is not a word character and the following character is a word character.
WordEndUnicode = 8_192
Match the end of a Unicode word boundary. That is, this matches a position at either the end of the haystack or where the previous character is a word character and the following character is not a word character.
WordStartHalfAscii = 16_384
Match the start half of an ASCII-only word boundary. That is, this matches a position at either the beginning of the haystack or where the previous character is not a word character.
WordEndHalfAscii = 32_768
Match the end half of an ASCII-only word boundary. That is, this matches a position at either the end of the haystack or where the following character is not a word character.
WordStartHalfUnicode = 65_536
Match the start half of a Unicode word boundary. That is, this matches a position at either the beginning of the haystack or where the previous character is not a word character.
WordEndHalfUnicode = 131_072
Match the end half of a Unicode word boundary. That is, this matches a position at either the end of the haystack or where the following character is not a word character.
Implementations§
Source§impl Look
impl Look
Sourcepub const fn reversed(self) -> Look
pub const fn reversed(self) -> Look
Flip the look-around assertion to its equivalent for reverse searches.
For example, StartLF
gets translated to EndLF
.
Some assertions, such as WordUnicode
, remain the same since they
match the same positions regardless of the direction of the search.
Sourcepub const fn as_repr(self) -> u32
pub const fn as_repr(self) -> u32
Return the underlying representation of this look-around enumeration
as an integer. Giving the return value to the Look::from_repr
constructor is guaranteed to return the same look-around variant that
one started with within a semver compatible release of this crate.
Sourcepub const fn from_repr(repr: u32) -> Option<Look>
pub const fn from_repr(repr: u32) -> Option<Look>
Given the underlying representation of a Look
value, return the
corresponding Look
value if the representation is valid. Otherwise
None
is returned.
Sourcepub const fn as_char(self) -> char
pub const fn as_char(self) -> char
Returns a convenient single codepoint representation of this look-around assertion. Each assertion is guaranteed to be represented by a distinct character.
This is useful for succinctly representing a look-around assertion in human friendly but succinct output intended for a programmer working on regex internals.