pub struct LiteralParser<'a, 'b> { /* private fields */ }Expand description
Regular expression parser for /literal/ usage.
pattern_text: the text between/and/flags_text: the text after the second/
Implementations§
Source§impl<'a, 'b> LiteralParser<'a, 'b>
impl<'a, 'b> LiteralParser<'a, 'b>
Sourcepub fn new(
allocator: &'a Allocator,
pattern_text: &'a str,
flags_text: Option<&'b str>,
options: Options,
) -> Self
pub fn new( allocator: &'a Allocator, pattern_text: &'a str, flags_text: Option<&'b str>, options: Options, ) -> Self
Examples found in repository?
More examples
examples/parse_literal.rs (lines 57-63)
17fn main() {
18 let allocator = Allocator::default();
19
20 for (pattern_text, flags_text) in [
21 (r"ab", ""),
22 (r"abc", "i"),
23 (r"abcd", "igv"),
24 (r"emo👈🏻ji", "u"),
25 (r"ab|c", "i"),
26 (r"a|b+|c", "i"),
27 (r"a{0}|b{1,2}|c{3,}", "i"),
28 (r"(?=a)|(?<=b)|(?!c)|(?<!d)", "i"),
29 (r"\n\cM\0\x41\.", ""),
30 (r"\n\cM\0\x41\u1234\.", "u"),
31 (r"\n\cM\0\x41\u{1f600}\.", "u"),
32 (r"a\k<f>x\1c", "u"),
33 (r"(cg)(?<n>cg)(?:g)", ""),
34 (r"{3}", ""), // Error
35 (r"Em🥹j", ""),
36 (r"^(?=ab)\b(?!cd)(?<=ef)\B(?<!gh)$", ""),
37 (r"^(?<!ab)$", ""),
38 (r"a)", ""), // Error
39 (r"c]", ""),
40 (r"[abc]", ""),
41 (r"[|\]]", ""),
42 (r"[a&&b]", "v"),
43 (r"[a--b]", "v"),
44 (r"[a&&&]", "v"), // Error
45 (r"[a---]", "v"), // Error
46 (r"[^a--b--c]", "v"),
47 (r"[a[b[c[d[e[f[g[h[i[j[k[l]]]]]]]]]]]]", "v"),
48 (r"[\q{abc|d|e|}]", "v"),
49 (r"\p{Basic_Emoji}", "v"),
50 (r"\p{Basic_Emoji}", "u"), // Error
51 (r"[[^\q{}]]", "v"), // Error
52 (r"(?<a>)(?<a>)", ""), // Error
53 (r"(?noname)", "v"), // Error
54 (r"[\bb]", ""),
55 (r"a{2,1}", "v"), // Error
56 ] {
57 let parser = LiteralParser::new(
58 &allocator,
59 pattern_text,
60 Some(flags_text),
61 // +1 for added `/` in error reports
62 Options { pattern_span_offset: 1, ..Options::default() },
63 );
64 let ret = parser.parse();
65
66 let literal = format!("/{pattern_text}/{flags_text}");
67 println!("Parse: {literal}");
68 match ret {
69 Ok(pattern) => {
70 println!("✨ {pattern:#?}");
71 }
72 Err(error) => {
73 let error = error.with_source_code(literal);
74 println!("💥 {error:?}");
75 }
76 }
77 println!();
78 }
79}Sourcepub fn parse(self) -> Result<Pattern<'a>>
pub fn parse(self) -> Result<Pattern<'a>>
Examples found in repository?
More examples
examples/parse_literal.rs (line 64)
17fn main() {
18 let allocator = Allocator::default();
19
20 for (pattern_text, flags_text) in [
21 (r"ab", ""),
22 (r"abc", "i"),
23 (r"abcd", "igv"),
24 (r"emo👈🏻ji", "u"),
25 (r"ab|c", "i"),
26 (r"a|b+|c", "i"),
27 (r"a{0}|b{1,2}|c{3,}", "i"),
28 (r"(?=a)|(?<=b)|(?!c)|(?<!d)", "i"),
29 (r"\n\cM\0\x41\.", ""),
30 (r"\n\cM\0\x41\u1234\.", "u"),
31 (r"\n\cM\0\x41\u{1f600}\.", "u"),
32 (r"a\k<f>x\1c", "u"),
33 (r"(cg)(?<n>cg)(?:g)", ""),
34 (r"{3}", ""), // Error
35 (r"Em🥹j", ""),
36 (r"^(?=ab)\b(?!cd)(?<=ef)\B(?<!gh)$", ""),
37 (r"^(?<!ab)$", ""),
38 (r"a)", ""), // Error
39 (r"c]", ""),
40 (r"[abc]", ""),
41 (r"[|\]]", ""),
42 (r"[a&&b]", "v"),
43 (r"[a--b]", "v"),
44 (r"[a&&&]", "v"), // Error
45 (r"[a---]", "v"), // Error
46 (r"[^a--b--c]", "v"),
47 (r"[a[b[c[d[e[f[g[h[i[j[k[l]]]]]]]]]]]]", "v"),
48 (r"[\q{abc|d|e|}]", "v"),
49 (r"\p{Basic_Emoji}", "v"),
50 (r"\p{Basic_Emoji}", "u"), // Error
51 (r"[[^\q{}]]", "v"), // Error
52 (r"(?<a>)(?<a>)", ""), // Error
53 (r"(?noname)", "v"), // Error
54 (r"[\bb]", ""),
55 (r"a{2,1}", "v"), // Error
56 ] {
57 let parser = LiteralParser::new(
58 &allocator,
59 pattern_text,
60 Some(flags_text),
61 // +1 for added `/` in error reports
62 Options { pattern_span_offset: 1, ..Options::default() },
63 );
64 let ret = parser.parse();
65
66 let literal = format!("/{pattern_text}/{flags_text}");
67 println!("Parse: {literal}");
68 match ret {
69 Ok(pattern) => {
70 println!("✨ {pattern:#?}");
71 }
72 Err(error) => {
73 let error = error.with_source_code(literal);
74 println!("💥 {error:?}");
75 }
76 }
77 println!();
78 }
79}Auto Trait Implementations§
impl<'a, 'b> Freeze for LiteralParser<'a, 'b>
impl<'a, 'b> !RefUnwindSafe for LiteralParser<'a, 'b>
impl<'a, 'b> !Send for LiteralParser<'a, 'b>
impl<'a, 'b> !Sync for LiteralParser<'a, 'b>
impl<'a, 'b> Unpin for LiteralParser<'a, 'b>
impl<'a, 'b> !UnwindSafe for LiteralParser<'a, 'b>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Set the foreground color generically Read more
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Change the foreground color to black
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Change the background color to black
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Change the foreground color to red
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Change the background color to red
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Change the foreground color to green
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Change the background color to green
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Change the foreground color to yellow
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Change the background color to yellow
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Change the foreground color to blue
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Change the background color to blue
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to magenta
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to purple
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to purple
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Change the foreground color to cyan
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Change the background color to cyan
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Change the foreground color to white
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Change the background color to white
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Make the text bold
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Make the text dim
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Make the text italicized
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Make the text underlined
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Make the text blink
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Swap the foreground and background colors
Hide the text
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read moreSource§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
Source§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
Source§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.