File: README.md

package info (click to toggle)
rustc 1.85.0%2Bdfsg3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, sid, trixie
  • size: 893,396 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,051; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (38 lines) | stat: -rw-r--r-- 1,706 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# matchers

Regular expression matching on Rust streams.

[![Crates.io][crates-badge]][crates-url]
[![Documentation][docs-badge]][docs-url]
[![MIT licensed][mit-badge]][mit-url]
[![CI][ci-badge]][ci-url]

[crates-badge]: https://img.shields.io/crates/v/matchers.svg
[crates-url]: https://crates.io/crates/matchers
[docs-badge]: https://docs.rs/matchers/badge.svg
[docs-url]: https://docs.rs/matchers/0.1.0
[mit-badge]: https://img.shields.io/badge/license-MIT-blue.svg
[mit-url]: LICENSE
[ci-badge]: https://github.com/hawkw/matchers/actions/workflows/ci.yml/badge.svg
[ci-url]: https://github.com/hawkw/matchers/actions/workflows/ci.yml

## Overview

The [`regex`] crate implements regular expression matching on strings and byte
arrays. However, in order to match the output of implementations of `fmt::Debug`
and `fmt::Display`, or by any code which writes to an instance of `fmt::Write`
or `io::Write`, it is necessary to first allocate a buffer, write to that
buffer, and then match the buffer against a regex.

In cases where it is not necessary to extract substrings, but only to test whether
or not output matches a regex, it is not strictly necessary to allocate and
write this output to a buffer. This crate provides a simple interface on top of
the lower-level [`regex-automata`] library that implements `fmt::Write` and
`io::Write` for regex patterns. This may be used to test whether streaming
output matches a pattern without buffering that output.

Users who need to extract substrings based on a pattern or who already have
buffered data should probably use the [`regex`] crate instead.

[`regex`]: https://crates.io/crates/regex
[`regex-automata`]: https://crates.io/crates/regex-automata