ansi-to-tui-6.0.0/.cargo_vcs_info.json 0000644 00000000136 00000000001 0013210 0 ustar {
"git": {
"sha1": "09a71073b94f9826eac8369f24a22338176b6b36"
},
"path_in_vcs": ""
} ansi-to-tui-6.0.0/.envrc 0000644 0000000 0000000 00000000012 00726746425 0013137 0 ustar 0000000 0000000 use flake
ansi-to-tui-6.0.0/.github/workflows/build.yaml 0000644 0000000 0000000 00000001357 00726746425 0017416 0 ustar 0000000 0000000 name: Build
on:
push:
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install nix
uses: cachix/install-nix-action@v27
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix flake check
- run: nix --extra-experimental-features "nix-command flakes" build .#checks.x86_64-linux.ansi-to-tui-llvm-coverage
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.0.1
with:
flags: unittests
name: codecov-ansi-to-tui
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
files: ./result
verbose: true
ansi-to-tui-6.0.0/.gitignore 0000644 0000000 0000000 00000000020 00726746425 0014010 0 ustar 0000000 0000000 /target
.direnv
ansi-to-tui-6.0.0/CHANGELOG.md 0000644 0000000 0000000 00000035335 00726746425 0013652 0 ustar 0000000 0000000 # Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 3.0.0 (2023-03-21)
### Commit Statistics
- 6 commits contributed to the release.
- 5 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- [update] Changelog and readme ([`8b38176`](https://github.com/sayanarijit/ansi-to-tui/commit/8b38176c630fe6d5c9502c3bc8b53f0f0eb25efe))
- Update version ([`7617608`](https://github.com/sayanarijit/ansi-to-tui/commit/761760805afad70709b2158b04789b31ac4f12fc))
- Move to ratatui ([`0446f08`](https://github.com/sayanarijit/ansi-to-tui/commit/0446f08857469fbcb770af125a3abd637ea1f777))
- [feat] Bump version and update CHANGELOG.md ([`eec6f86`](https://github.com/sayanarijit/ansi-to-tui/commit/eec6f86e6ad66196370cb350f4451c829d6c5bb1))
- [fix] properly reset styles ([`50f5be0`](https://github.com/sayanarijit/ansi-to-tui/commit/50f5be0ec5e9b49efebf6cb34a967b550843c61b))
- [fix] Properly set background colors ([`f827e25`](https://github.com/sayanarijit/ansi-to-tui/commit/f827e25d7998d48f7bbf004440d7cb20b54b5d99))
## 2.0.1 (2023-03-16)
### Commit Statistics
- 11 commits contributed to the release over the course of 214 calendar days.
- 238 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- [fix] Write changelog ([`4324447`](https://github.com/sayanarijit/ansi-to-tui/commit/4324447763d9760ee1364d78e3392fcefc078619))
- Adjusting changelogs prior to release of ansi-to-tui v2.0.1 ([`874a3a8`](https://github.com/sayanarijit/ansi-to-tui/commit/874a3a8abf968b4112c454d231fa7dfb9c157a42))
- [feat] CHANGELOGS Using cargo changelog ([`604e1d1`](https://github.com/sayanarijit/ansi-to-tui/commit/604e1d1ca493706c090c4535fb0be019757ed250))
- [fix] Bump version prep for release ([`8e07c79`](https://github.com/sayanarijit/ansi-to-tui/commit/8e07c79c42b1b831570cd25027ec48bc83b30fc2))
- Add fg/bg colors for 90-110 ANSI code range ([`1bd18a9`](https://github.com/sayanarijit/ansi-to-tui/commit/1bd18a9ab1424d2a1bd785515384aab4d58f07cf))
- [fix] Don't include the empty spans but keep changing the style ([`acdb671`](https://github.com/sayanarijit/ansi-to-tui/commit/acdb671763c655727f7b5fee9d867ac977d97070))
- [fix] Don't exclude empty spans ([`0d1e9bc`](https://github.com/sayanarijit/ansi-to-tui/commit/0d1e9bc1786886aec7e1f4ddf058b278793b928a))
- Fix infinite loop on unsupported escape sequences ([`225669f`](https://github.com/sayanarijit/ansi-to-tui/commit/225669ff1849326dbd20d90639ce86243b8eb5dd))
- Add test for infinitely looping cases ([`8a59123`](https://github.com/sayanarijit/ansi-to-tui/commit/8a5912326da52c7fed32e815339664d7acd61a64))
- [update] Version bump ([`0f2ace5`](https://github.com/sayanarijit/ansi-to-tui/commit/0f2ace5449fce46fbf891e4899afc27226f3932e))
- [fix] Don't hang on screen modes ([`189d9c5`](https://github.com/sayanarijit/ansi-to-tui/commit/189d9c5021e8b69c046be4a4c2cd78095154dc45))
## v1.0.1 (2022-07-20)
### Commit Statistics
- 2 commits contributed to the release.
- 174 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Update the readme example ([`a527ba0`](https://github.com/sayanarijit/ansi-to-tui/commit/a527ba066f0a9bdc924849a9c086989ebda5f8c0))
- Complete rewrite of the whole parser logic ([`0e28929`](https://github.com/sayanarijit/ansi-to-tui/commit/0e289299a123635185f9907a01a379a51009f52b))
## v0.5.0 (2022-01-27)
## 0.5.0-sayanarijit (2022-01-27)
### Commit Statistics
- 4 commits contributed to the release over the course of 109 calendar days.
- 120 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Bump version to 0.5.0 for tui 0.17.0 ([`92736b3`](https://github.com/sayanarijit/ansi-to-tui/commit/92736b3a6d8cf1f6f0225ed3f95aabe1d27efcf8))
- Possibly fix #10 ([`5127c8c`](https://github.com/sayanarijit/ansi-to-tui/commit/5127c8c2016b76c0c9c64cc60d187bea37e2e685))
- Add drone build badge ([`2871347`](https://github.com/sayanarijit/ansi-to-tui/commit/28713475a094612bf894603c720095a243801b24))
- Add .drone.yml ([`e08a9d8`](https://github.com/sayanarijit/ansi-to-tui/commit/e08a9d8281bcbc31a419b33897c79e62544acd98))
## v0.4.1 (2021-09-28)
### Commit Statistics
- 1 commit contributed to the release.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- V0.4.1 ([`5225ac3`](https://github.com/sayanarijit/ansi-to-tui/commit/5225ac3f4ab26329e0aff938e25e2d123c25d9f0))
## v0.3.1 (2021-09-28)
### Commit Statistics
- 6 commits contributed to the release over the course of 37 calendar days.
- 119 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Update version and fix #9 release ([`e2d7656`](https://github.com/sayanarijit/ansi-to-tui/commit/e2d7656587d7edf313faa2201e0d1f261530b91a))
- Remove redundant println! lines ([`c108aea`](https://github.com/sayanarijit/ansi-to-tui/commit/c108aea34e7e42ee1ed43c162d0720db546a814d))
- Fix #9 Color reset not working ([`c159a29`](https://github.com/sayanarijit/ansi-to-tui/commit/c159a29de0ee518037eebfb2f789015379d83d8e))
- Update readme #8 ([`869a5f4`](https://github.com/sayanarijit/ansi-to-tui/commit/869a5f48f23e4d55eb5c8db24101b0b653c2ca01))
- Center 2nd column ([`7259a48`](https://github.com/sayanarijit/ansi-to-tui/commit/7259a483aa2654e518ff691a9cc487ca3110e024))
- Give the README a new look ([`5555bfb`](https://github.com/sayanarijit/ansi-to-tui/commit/5555bfbe825711b9fbbaec3d539c7546da155edb))
## v0.3.0 (2021-06-01)
### Commit Statistics
- 1 commit contributed to the release.
- 5 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Update tui to version v0.15.0 ([`f68a55d`](https://github.com/sayanarijit/ansi-to-tui/commit/f68a55de4ed496767b7063212e0430f66d78e03b))
## v0.2.1 (2021-05-27)
### Commit Statistics
- 5 commits contributed to the release over the course of 2 calendar days.
- 2 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Remove println! and bump version ([`7f0ad21`](https://github.com/sayanarijit/ansi-to-tui/commit/7f0ad21e3701f110f0d56c666e561e1195be3ff6))
- Remove println! ([`88da943`](https://github.com/sayanarijit/ansi-to-tui/commit/88da943d7300fdc1a867d1b03db33578f3ca7974))
- Merge branch 'master' of gh:uttarayan21/ansi-to-tui ([`9bcd9c9`](https://github.com/sayanarijit/ansi-to-tui/commit/9bcd9c9d78f4fb33521aef08385b35f0013974c3))
- Possible fix for #3 ([`7c41742`](https://github.com/sayanarijit/ansi-to-tui/commit/7c41742b2a8665a60c3798da0859b8087f695c9c))
- Implement StdError and thus, supporting anyhow ([`47d7ac3`](https://github.com/sayanarijit/ansi-to-tui/commit/47d7ac37d830d676fafea8528d8080d53751b1fc))
## v0.2.0 (2021-05-24)
### Commit Statistics
- 2 commits contributed to the release.
- 17 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Fix spelling in documentation and bump version ([`69a8b4c`](https://github.com/sayanarijit/ansi-to-tui/commit/69a8b4cbbb1d7c80592542674653ce8e13e444c8))
- Fix for #2 ([`985fe88`](https://github.com/sayanarijit/ansi-to-tui/commit/985fe8811ec9d651e034235d88ce5cd68d7d660b))
## v0.1.9 (2021-05-07)
### Commit Statistics
- 8 commits contributed to the release over the course of 5 calendar days.
- 6 days passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Removed AnsiColor enum ([`aa17233`](https://github.com/sayanarijit/ansi-to-tui/commit/aa1723376985bd4c457b8780d576daa09bf42d34))
- Minor changes to documentation ([`de7091d`](https://github.com/sayanarijit/ansi-to-tui/commit/de7091daf5e333f7a4b8d3d5aa21b33d6c5b20e6))
- Minor changes ([`d7fb6e6`](https://github.com/sayanarijit/ansi-to-tui/commit/d7fb6e6d451f7a5296a122db79ec4ef6f6565882))
- Removed useless AnsiColor enum ([`c66ca17`](https://github.com/sayanarijit/ansi-to-tui/commit/c66ca173845267f834adc97c94a19842499caada))
- Bump version number ([`6818ee5`](https://github.com/sayanarijit/ansi-to-tui/commit/6818ee5f6e06f59e4569e2bfced65fcd88a24aa2))
- Keep empty newlines ([`6a80c08`](https://github.com/sayanarijit/ansi-to-tui/commit/6a80c086394e23e380acdfecf16b6159c44846ca))
- Bump version to 0.1.7 ([`6203e87`](https://github.com/sayanarijit/ansi-to-tui/commit/6203e877974a83eadd273be329b45afc17246cd3))
- Pub fn ansi_to_text_override_style ([`0694221`](https://github.com/sayanarijit/ansi-to-tui/commit/0694221f34a468ab9dd1070e7b2b363876e65791))
## v0.1.6 (2021-04-30)
### Commit Statistics
- 4 commits contributed to the release.
- 1 day passed between releases.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 1 unique issue was worked on: [#1](https://github.com/sayanarijit/ansi-to-tui/issues/1)
### Commit Details
view details
* **[#1](https://github.com/sayanarijit/ansi-to-tui/issues/1)**
- Optimize output text size ([`28c9077`](https://github.com/sayanarijit/ansi-to-tui/commit/28c9077a767a14337d8636c1cd47513d53e88711))
* **Uncategorized**
- Prepare from release ([`8ad6643`](https://github.com/sayanarijit/ansi-to-tui/commit/8ad6643545b74a0ca0d2dfc3d9857923fe85df81))
- Fix tests paths ([`a4e50fa`](https://github.com/sayanarijit/ansi-to-tui/commit/a4e50faef2f18328a65f61f066b67eec8fe88bf4))
- Bump simdutf8 to v0.1.1 ([`2e47e63`](https://github.com/sayanarijit/ansi-to-tui/commit/2e47e63b3f9c03df5a62407e1a494400bfe55e0f))
## v0.1.5 (2021-04-29)
### Commit Statistics
- 18 commits contributed to the release over the course of 4 calendar days.
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- 0 issues like '(#ID)' were seen in commit messages
### Commit Details
view details
* **Uncategorized**
- Newlines with empty buffers are now shown correctly ([`dce8cf1`](https://github.com/sayanarijit/ansi-to-tui/commit/dce8cf1e5194813936987c9e5cd18f488b8a9409))
- Add additional test ([`371bd6f`](https://github.com/sayanarijit/ansi-to-tui/commit/371bd6fe5cb8f01c5f2aba1f62b3fa65c74150bc))
- Change AsRef<[u8]> to IntoIterator- ([`83ccd02`](https://github.com/sayanarijit/ansi-to-tui/commit/83ccd025e021df414cda6fdfbbae8b5e2d49fe13))
- Large refactor ([`51481fa`](https://github.com/sayanarijit/ansi-to-tui/commit/51481fa9323c45036083ccecd677f42bdb3af1b9))
- Added tests ([`03b623e`](https://github.com/sayanarijit/ansi-to-tui/commit/03b623ec150bd25a55d98f24818c19cb9e20e931))
- Add additional tests ([`39f69a2`](https://github.com/sayanarijit/ansi-to-tui/commit/39f69a24b139eb226cabc484ea61a28d86cea1e6))
- Refactor ([`4c354d5`](https://github.com/sayanarijit/ansi-to-tui/commit/4c354d5c00ed5bbbd01aea3d3e3dfc4ec01aebd3))
- Allow empty ([`47bc5dd`](https://github.com/sayanarijit/ansi-to-tui/commit/47bc5dd13b03b17da9df8cf746fac6fecfaf7858))
- Added Documentation badge. ([`8972553`](https://github.com/sayanarijit/ansi-to-tui/commit/8972553bc2f3d77b9fcdb47290c3c67a01d908c5))
- Added documentation workflow ([`628d8ab`](https://github.com/sayanarijit/ansi-to-tui/commit/628d8abff0993bb6b3afde4915a866a335c1b1d3))
- Added unicode_width check ([`a3585ba`](https://github.com/sayanarijit/ansi-to-tui/commit/a3585bad0004a03223174bb94376e985813d8fd9))
- Removed a lot of unnsecessary code. ([`6e2e4dd`](https://github.com/sayanarijit/ansi-to-tui/commit/6e2e4ddc0849f39721a27cfe5bdf55db6f9d7bbd))
- Somewhat fixed ([`8581b1a`](https://github.com/sayanarijit/ansi-to-tui/commit/8581b1ab0f9840391505f808d24ece44e49a2ef4))
- Temp fix ([`486c3c9`](https://github.com/sayanarijit/ansi-to-tui/commit/486c3c98ddce0a954e1807f277c9f2d40a8f62ca))
- Possible fix ([`ec38cb3`](https://github.com/sayanarijit/ansi-to-tui/commit/ec38cb3e62ffcf06b33db28b57fbb6ab214571d1))
- Pub use ansi::ansi_to_text ([`ed57ab3`](https://github.com/sayanarijit/ansi-to-tui/commit/ed57ab359825a04dcdf866cdd6f58bd4b15caea2))
- Change from ansitui to ansi-to-tui ([`43b1562`](https://github.com/sayanarijit/ansi-to-tui/commit/43b15627111b8742749acf73232a18378423c05a))
- Initial Commit. ([`4cd9c8f`](https://github.com/sayanarijit/ansi-to-tui/commit/4cd9c8fc0b5bf1d6fd1274dcf34561b76d186d32))
ansi-to-tui-6.0.0/Cargo.toml 0000644 00000003207 00000000001 0011210 0 ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.
[package]
edition = "2018"
name = "ansi-to-tui"
version = "6.0.0"
authors = ["Uttarayan Mondal "]
build = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A library to convert ansi color coded text into ratatui::text::Text type from ratatui library"
readme = "README.md"
keywords = [
"ansi",
"ascii",
"tui",
"parser",
]
license = "MIT"
repository = "https://github.com/uttarayan21/ansi-to-tui"
[profile.bench]
debug = 2
[lib]
name = "ansi_to_tui"
path = "src/lib.rs"
[[test]]
name = "tests"
path = "tests/tests.rs"
[[bench]]
name = "parsing"
path = "benches/parsing.rs"
harness = false
[dependencies.nom]
version = "7.1"
[dependencies.simdutf8]
version = "0.1"
optional = true
[dependencies.smallvec]
version = "1.10.0"
features = ["const_generics"]
[dependencies.thiserror]
version = "1.0"
[dependencies.tui]
version = "0.28"
default-features = false
package = "ratatui"
[dev-dependencies.anyhow]
version = "1.0"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.pretty_assertions]
version = "1.4.0"
[features]
default = [
"zero-copy",
"simd",
]
simd = ["dep:simdutf8"]
zero-copy = []
ansi-to-tui-6.0.0/Cargo.toml.orig 0000644 0000000 0000000 00000001511 00726746425 0014715 0 ustar 0000000 0000000 [package]
name = "ansi-to-tui"
version = "6.0.0"
authors = ["Uttarayan Mondal "]
edition = "2018"
description = "A library to convert ansi color coded text into ratatui::text::Text type from ratatui library"
keywords = ["ansi", "ascii", "tui", "parser"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/uttarayan21/ansi-to-tui"
[dependencies]
nom = "7.1"
tui = { version = "0.28", default-features = false, package = "ratatui" }
thiserror = "1.0"
simdutf8 = { version = "0.1", optional = true }
smallvec = { version = "1.10.0", features = ["const_generics"] }
[dev-dependencies]
anyhow = "1.0"
criterion = "0.5"
pretty_assertions = "1.4.0"
[features]
simd = ["dep:simdutf8"]
zero-copy = []
default = ["zero-copy", "simd"]
[[bench]]
name = "parsing"
harness = false
[profile.bench]
debug = true
ansi-to-tui-6.0.0/LICENSE 0000644 0000000 0000000 00000002040 00726746425 0013031 0 ustar 0000000 0000000 Copyright 2021 Uttarayan Mondal
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
ansi-to-tui-6.0.0/README.md 0000644 0000000 0000000 00000002236 00726746425 0013312 0 ustar 0000000 0000000 # ansi-to-tui

[][ansi-to-tui]
[](https://crates.io/crates/ansi-to-tui)
A nom parser to parse text with ANSI color codes and turn them into [`ratatui::text::Text`][Text].
For people still using [tui-rs](docs.rs/tui) use version `v2.*` for people migrating to [ratatui](docs.rs/ratatui) use version `v3.*`
I recommend switching over to ratatui since tui-rs is currently unmaintained.
| Color | Supported | Examples |
| ------ | :-------: | ------------------------ |
| 24 bit | ✓ | `\x1b[38;2;;;m` |
| 8 bit | ✓ | `\x1b[38;5;m` |
| 4 bit | ✓ | `\x1b[30..37;40..47m` |
## Example
```rust
use ansi_to_tui::IntoText;
let buffer = std::fs::read("ascii/text.ascii").unwrap();
let output = buffer.into_text();
```
[Text]: https://docs.rs/ratatui/latest/ratatui/text/struct.Text.html
[ansi-to-tui]: https://github.com/uttarayan21/ansi-to-tui
ansi-to-tui-6.0.0/ascii/arch.ascii 0000644 0000000 0000000 00000002277 00726746425 0015057 0 ustar 0000000 0000000 [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;195;227;243m.[0m[38;2;190;225;242m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;225;241;249m [0m[38;2;66;167;217mc[0m[38;2;44;157;213ml[0m[38;2;205;232;245m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;175;218;239m.[0m[38;2;35;152;211ml[0m[38;2;46;158;214ml[0m[38;2;45;157;213ml[0m[38;2;31;151;211ml[0m[38;2;163;212;237m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;245;250;253m [0m[38;2;116;190;227m,[0m[38;2;30;150;210mo[0m[38;2;66;167;218mc[0m[38;2;248;252;254m [0m[38;2;250;253;254m [0m[38;2;77;172;220m:[0m[38;2;34;152;211ml[0m[38;2;131;197;230m'[0m[38;2;245;250;253m [0m
[0m[38;2;154;208;235m.[0m[38;2;173;217;239m.[0m[38;2;246;251;253m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;247;251;253m [0m[38;2;175;218;239m.[0m[38;2;149;206;234m.[0m
ansi-to-tui-6.0.0/ascii/archlinux.ascii 0000644 0000000 0000000 00000025002 00726746425 0016126 0 ustar 0000000 0000000 [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;197;228;243m.[0m[38;2;188;224;242m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;240;248;252m [0m[38;2;63;166;217mc[0m[38;2;49;159;214ml[0m[38;2;225;241;249m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;247;251;253m [0m[38;2;82;174;221m:[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;65;166;217mc[0m[38;2;238;247;252m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;253;254;255m [0m[38;2;103;184;225m;[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;72;170;219m:[0m[38;2;239;247;252m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;252;254;254m [0m[38;2;193;226;243m.[0m[38;2;37;154;212ml[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;78;172;220m:[0m[38;2;242;249;252m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;249;252;254m [0m[38;2;105;185;225m;[0m[38;2;55;162;215mc[0m[38;2;103;184;225m;[0m[38;2;77;172;220m:[0m[38;2;45;157;213ml[0m[38;2;24;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;69;168;218mc[0m[38;2;231;244;250m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;242;249;252m [0m[38;2;87;177;222m:[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;24;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;59;164;216mc[0m[38;2;225;241;249m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;236;246;251m [0m[38;2;75;171;219m:[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;47;158;214ml[0m[38;2;210;234;246m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;221;239;248m [0m[38;2;58;163;216mc[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;44;157;213ml[0m[38;2;95;181;223m;[0m[38;2;98;182;224m;[0m[38;2;50;160;214ml[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;40;155;212ml[0m[38;2;197;228;244m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;200;229;244m.[0m[38;2;46;158;214ml[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;128;196;230m'[0m[38;2;247;251;253m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;250;252;254m [0m[38;2;151;207;234m.[0m[38;2;26;148;210mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;30;150;210mo[0m[38;2;169;215;238m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;171;216;238m.[0m[38;2;29;150;210mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;62;165;217mc[0m[38;2;254;254;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;102;184;225m;[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;29;150;210mo[0m[38;2;55;162;215mc[0m[38;2;46;158;214ml[0m[38;2;140;201;232m'[0m[38;2;254;254;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;253;254;255m [0m[38;2;141;202;232m'[0m[38;2;25;148;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;85;176;221m:[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;130;197;230m'[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;25;148;209mo[0m[38;2;72;170;219m:[0m[38;2;112;189;227m,[0m[38;2;210;234;246m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m
[0m[38;2;255;255;255m [0m[38;2;249;252;254m [0m[38;2;110;187;226m,[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;43;156;213ml[0m[38;2;86;176;221m:[0m[38;2;125;195;229m,[0m[38;2;160;211;236m.[0m[38;2;190;225;242m.[0m[38;2;218;238;248m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;227;242;249m [0m[38;2;192;226;243m.[0m[38;2;162;212;237m.[0m[38;2;128;196;230m,[0m[38;2;89;178;222m:[0m[38;2;46;158;214ml[0m[38;2;23;147;209mo[0m[38;2;23;147;209mo[0m[38;2;28;149;210mo[0m[38;2;102;184;225m;[0m[38;2;240;248;252m [0m[38;2;255;255;255m [0m
[0m[38;2;235;246;251m [0m[38;2;81;174;221m:[0m[38;2;59;164;216mc[0m[38;2;114;189;227m,[0m[38;2;166;214;237m.[0m[38;2;215;237;247m [0m[38;2;252;254;254m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;254;254;255m [0m[38;2;219;238;248m [0m[38;2;170;215;238m.[0m[38;2;117;191;228m,[0m[38;2;63;166;217mc[0m[38;2;72;170;219m:[0m[38;2;231;244;250m [0m
[0m[38;2;153;207;235m.[0m[38;2;193;226;243m.[0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;255;255;255m [0m[38;2;200;230;244m.[0m[38;2;141;202;232m'[0m
ansi-to-tui-6.0.0/ascii/code.ascii 0000644 0000000 0000000 00000330117 00726746425 0015051 0 ustar 0000000 0000000 [38;5;238m───────┬────────────────────────────────────────────────────────────────────────[0m
[38;5;238m│ [0mFile: [1msrc/parser.rs[0m
[38;5;238m───────┼────────────────────────────────────────────────────────────────────────[0m
[38;5;238m 1[0m [38;5;238m│[0m [38;2;249;38;114muse[0m[38;2;248;248;242m [0m[38;2;249;38;114mcrate[0m[38;2;248;248;242m::[0m[38;2;248;248;242mcode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m;[0m
[38;5;238m 2[0m [38;5;238m│[0m [38;2;249;38;114muse[0m[38;2;248;248;242m [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242m{[0m
[38;5;238m 3[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mbranch[0m[38;2;248;248;242m::[0m[38;2;248;248;242malt[0m[38;2;248;248;242m,[0m
[38;5;238m 4[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mbytes[0m[38;2;248;248;242m::[0m[38;2;248;248;242mcomplete[0m[38;2;248;248;242m::[0m[38;2;249;38;114m*[0m[38;2;248;248;242m,[0m
[38;5;238m 5[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mcharacter[0m[38;2;248;248;242m::[0m[38;2;248;248;242mcomplete[0m[38;2;248;248;242m::[0m[38;2;249;38;114m*[0m[38;2;248;248;242m,[0m
[38;5;238m 6[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mcharacter[0m[38;2;248;248;242m::[0m[38;2;248;248;242mis_alphabetic[0m[38;2;248;248;242m,[0m
[38;5;238m 7[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mcombinator[0m[38;2;248;248;242m::[0m[38;2;248;248;242m{[0m[38;2;248;248;242mmap_res[0m[38;2;248;248;242m,[0m[38;2;248;248;242m opt[0m[38;2;248;248;242m,[0m[38;2;248;248;242m recognize[0m[38;2;248;248;242m,[0m[38;2;248;248;242m value[0m[38;2;248;248;242m}[0m[38;2;248;248;242m,[0m
[38;5;238m 8[0m [38;5;238m│[0m [38;2;248;248;242m error[0m[38;2;248;248;242m,[0m
[38;5;238m 9[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mFromExternalError[0m[38;2;248;248;242m,[0m
[38;5;238m 10[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mmulti[0m[38;2;248;248;242m::[0m[38;2;249;38;114m*[0m[38;2;248;248;242m,[0m
[38;5;238m 11[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242msequence[0m[38;2;248;248;242m::[0m[38;2;248;248;242m{[0m[38;2;248;248;242mdelimited[0m[38;2;248;248;242m,[0m[38;2;248;248;242m preceded[0m[38;2;248;248;242m,[0m[38;2;248;248;242m terminated[0m[38;2;248;248;242m,[0m[38;2;248;248;242m tuple[0m[38;2;248;248;242m}[0m[38;2;248;248;242m,[0m
[38;5;238m 12[0m [38;5;238m│[0m [38;2;248;248;242m IResult[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Parser[0m[38;2;248;248;242m,[0m
[38;5;238m 13[0m [38;5;238m│[0m [38;2;248;248;242m}[0m[38;2;248;248;242m;[0m
[38;5;238m 14[0m [38;5;238m│[0m [38;2;249;38;114muse[0m[38;2;248;248;242m [0m[38;2;248;248;242mstd[0m[38;2;248;248;242m::[0m[38;2;248;248;242mstr[0m[38;2;248;248;242m::[0m[38;2;248;248;242mFromStr[0m[38;2;248;248;242m;[0m
[38;5;238m 15[0m [38;5;238m│[0m [38;2;249;38;114muse[0m[38;2;248;248;242m [0m[38;2;248;248;242mtui[0m[38;2;248;248;242m::[0m[38;2;248;248;242m{[0m
[38;5;238m 16[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242m{[0m[38;2;248;248;242mColor[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Modifier[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m}[0m[38;2;248;248;242m,[0m
[38;5;238m 17[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mtext[0m[38;2;248;248;242m::[0m[38;2;248;248;242m{[0m[38;2;248;248;242mLine[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Span[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Text[0m[38;2;248;248;242m}[0m[38;2;248;248;242m,[0m
[38;5;238m 18[0m [38;5;238m│[0m [38;2;248;248;242m}[0m[38;2;248;248;242m;[0m
[38;5;238m 19[0m [38;5;238m│[0m
[38;5;238m 20[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mderive[0m[38;2;248;248;242m([0m[38;2;248;248;242mDebug[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Clone[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Copy[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Eq[0m[38;2;248;248;242m,[0m[38;2;248;248;242m PartialEq[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 21[0m [38;5;238m│[0m [38;2;102;217;239menum[0m[38;2;248;248;242m [0m[38;2;166;226;46mColorType[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 22[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m///[0m[38;2;117;113;94m Eight Bit color[0m
[38;5;238m 23[0m [38;5;238m│[0m [38;2;248;248;242m EightBit[0m[38;2;248;248;242m,[0m
[38;5;238m 24[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m///[0m[38;2;117;113;94m 24-bit color or true color[0m
[38;5;238m 25[0m [38;5;238m│[0m [38;2;248;248;242m TrueColor[0m[38;2;248;248;242m,[0m
[38;5;238m 26[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 27[0m [38;5;238m│[0m
[38;5;238m 28[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mderive[0m[38;2;248;248;242m([0m[38;2;248;248;242mDebug[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Clone[0m[38;2;248;248;242m,[0m[38;2;248;248;242m PartialEq[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 29[0m [38;5;238m│[0m [38;2;102;217;239mstruct[0m[38;2;248;248;242m [0m[38;2;166;226;46mAnsiItem[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 30[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;255;255;255mcode[0m[38;2;248;248;242m:[0m[38;2;248;248;242m AnsiCode,[0m
[38;5;238m 31[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;255;255;255mcolor[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;166;226;46mOption[0m[38;2;248;248;242m<[0m[38;2;248;248;242mColor[0m[38;2;248;248;242m>[0m[38;2;248;248;242m,[0m
[38;5;238m 32[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 33[0m [38;5;238m│[0m
[38;5;238m 34[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mderive[0m[38;2;248;248;242m([0m[38;2;248;248;242mDebug[0m[38;2;248;248;242m,[0m[38;2;248;248;242m Clone[0m[38;2;248;248;242m,[0m[38;2;248;248;242m PartialEq[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 35[0m [38;5;238m│[0m [38;2;102;217;239mstruct[0m[38;2;248;248;242m [0m[38;2;166;226;46mAnsiStates[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 36[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mpub[0m[38;2;248;248;242m [0m[38;2;255;255;255mitems[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242msmallvec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSmallVec[0m[38;2;248;248;242m<[0m[38;2;248;248;242m[[0m[38;2;248;248;242mAnsiItem[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m,[0m
[38;5;238m 37[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mpub[0m[38;2;248;248;242m [0m[38;2;255;255;255mstyle[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style,[0m
[38;5;238m 38[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 39[0m [38;5;238m│[0m
[38;5;238m 40[0m [38;5;238m│[0m [38;2;102;217;239mimpl[0m[38;2;248;248;242m [0m[38;2;166;226;46mFrom[0m[38;2;248;248;242m<[0m[38;2;248;248;242mAnsiStates[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m [0m[38;2;166;226;46mtui[0m[38;2;248;248;242m::[0m[38;2;166;226;46mstyle[0m[38;2;248;248;242m::[0m[38;2;166;226;46mStyle[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 41[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mfrom[0m[38;2;248;248;242m([0m[38;2;253;151;31mstates[0m[38;2;248;248;242m:[0m[38;2;248;248;242m AnsiStates[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;102;217;239mSelf[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 42[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m states[0m[38;2;248;248;242m.[0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m;[0m
[38;5;238m 43[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mfor[0m[38;2;248;248;242m item [0m[38;2;249;38;114min[0m[38;2;248;248;242m states[0m[38;2;248;248;242m.[0m[38;2;248;248;242mitems [0m[38;2;248;248;242m{[0m
[38;5;238m 44[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmatch[0m[38;2;248;248;242m item[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcode [0m[38;2;248;248;242m{[0m
[38;5;238m 45[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mReset [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 46[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mBold [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mBOLD[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 47[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mFaint [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mDIM[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 48[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mItalic [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mITALIC[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 49[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mUnderline [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mUNDERLINED[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 50[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSlowBlink [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mSLOW_BLINK[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 51[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mRapidBlink [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mRAPID_BLINK[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 52[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mReverse [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mREVERSED[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 53[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mConceal [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mHIDDEN[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 54[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mCrossedOut [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239madd_modifier[0m[38;2;248;248;242m([0m[38;2;248;248;242mModifier[0m[38;2;248;248;242m::[0m[38;2;190;132;255mCROSSED_OUT[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 55[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mDefaultForegroundColor [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239mfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mReset[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 56[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mDefaultBackgroundColor [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239mbg[0m[38;2;248;248;242m([0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mReset[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 57[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSetForegroundColor [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 58[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m item[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcolor [0m[38;2;248;248;242m{[0m
[38;5;238m 59[0m [38;5;238m│[0m [38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239mfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m
[38;5;238m 60[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 61[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 62[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSetBackgroundColor [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 63[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m item[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcolor [0m[38;2;248;248;242m{[0m
[38;5;238m 64[0m [38;5;238m│[0m [38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239mbg[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m
[38;5;238m 65[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 66[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 67[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mForegroundColor[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239mfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 68[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mBackgroundColor[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m style [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m.[0m[38;2;102;217;239mbg[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 69[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mAlternateFonts[0m[38;2;248;248;242m([0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 70[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 71[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 72[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 73[0m [38;5;238m│[0m [38;2;248;248;242m style[0m
[38;5;238m 74[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 75[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 76[0m [38;5;238m│[0m
[38;5;238m 77[0m [38;5;238m│[0m [38;2;249;38;114mpub[0m[38;2;248;248;242m([0m[38;2;249;38;114mcrate[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mtext[0m[38;2;248;248;242m([0m[38;2;249;38;114mmut[0m[38;2;248;248;242m [0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242mText[0m[38;2;248;248;242m<[0m[38;2;249;38;114m'static[0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 78[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m lines [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mVec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 79[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 80[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242m_s[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mline[0m[38;2;248;248;242m,[0m[38;2;248;248;242m style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mline[0m[38;2;248;248;242m([0m[38;2;248;248;242mlast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 81[0m [38;5;238m│[0m [38;2;248;248;242m lines[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242mline[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 82[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m;[0m
[38;5;238m 83[0m [38;5;238m│[0m [38;2;248;248;242m s [0m[38;2;249;38;114m=[0m[38;2;248;248;242m _s[0m[38;2;248;248;242m;[0m
[38;5;238m 84[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m s[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 85[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mbreak[0m[38;2;248;248;242m;[0m
[38;5;238m 86[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 87[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 88[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mText[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mlines[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 89[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 90[0m [38;5;238m│[0m
[38;5;238m 91[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mzero-copy[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 92[0m [38;5;238m│[0m [38;2;249;38;114mpub[0m[38;2;248;248;242m([0m[38;2;249;38;114mcrate[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mtext_fast[0m[38;2;248;248;242m([0m[38;2;249;38;114mmut[0m[38;2;248;248;242m [0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242mText[0m[38;2;248;248;242m<[0m[38;2;248;248;242m'[0m[38;2;249;38;114m_[0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 93[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m lines [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mVec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 94[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 95[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242m_s[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mline[0m[38;2;248;248;242m,[0m[38;2;248;248;242m style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mline_fast[0m[38;2;248;248;242m([0m[38;2;248;248;242mlast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 96[0m [38;5;238m│[0m [38;2;248;248;242m lines[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242mline[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 97[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m;[0m
[38;5;238m 98[0m [38;5;238m│[0m [38;2;248;248;242m s [0m[38;2;249;38;114m=[0m[38;2;248;248;242m _s[0m[38;2;248;248;242m;[0m
[38;5;238m 99[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m s[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 100[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mbreak[0m[38;2;248;248;242m;[0m
[38;5;238m 101[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 102[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 103[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mText[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mlines[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 104[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 105[0m [38;5;238m│[0m
[38;5;238m 106[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mline[0m[38;2;248;248;242m([0m[38;2;253;151;31mstyle[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m impl Fn[0m[38;2;248;248;242m([0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242m([0m[38;2;248;248;242mLine[0m[38;2;248;248;242m<[0m[38;2;249;38;114m'static[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 107[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m let style_: Style = Default::default();[0m
[38;5;238m 108[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmove[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242m([0m[38;2;248;248;242mLine[0m[38;2;248;248;242m<[0m[38;2;249;38;114m'static[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 109[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m text[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mtake_while[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 110[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 111[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m spans [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mVec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 112[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m;[0m
[38;5;238m 113[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m span[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mspan[0m[38;2;248;248;242m([0m[38;2;248;248;242mlast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242mtext[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 114[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m span[0m[38;2;248;248;242m.[0m[38;2;248;248;242mstyle [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m&&[0m[38;2;248;248;242m span[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcontent[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 115[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Reset styles[0m
[38;5;238m 116[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 117[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 118[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m last[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpatch[0m[38;2;248;248;242m([0m[38;2;248;248;242mspan[0m[38;2;248;248;242m.[0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 119[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 120[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Don't include empty spans but keep changing the style[0m
[38;5;238m 121[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m spans[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m||[0m[38;2;248;248;242m span[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcontent [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116m"[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 122[0m [38;5;238m│[0m [38;2;248;248;242m spans[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242mspan[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 123[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 124[0m [38;5;238m│[0m [38;2;248;248;242m text [0m[38;2;249;38;114m=[0m[38;2;248;248;242m s[0m[38;2;248;248;242m;[0m
[38;5;238m 125[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m text[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 126[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mbreak[0m[38;2;248;248;242m;[0m
[38;5;238m 127[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 128[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 129[0m [38;5;238m│[0m
[38;5;238m 130[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mLine[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mspans[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m last[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 131[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 132[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 133[0m [38;5;238m│[0m
[38;5;238m 134[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mzero-copy[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 135[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mline_fast[0m[38;2;248;248;242m([0m[38;2;253;151;31mstyle[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m impl Fn[0m[38;2;248;248;242m([0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242m([0m[38;2;248;248;242mLine[0m[38;2;248;248;242m<[0m[38;2;248;248;242m'[0m[38;2;249;38;114m_[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 136[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m let style_: Style = Default::default();[0m
[38;5;238m 137[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmove[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242m([0m[38;2;248;248;242mLine[0m[38;2;248;248;242m<[0m[38;2;248;248;242m'[0m[38;2;249;38;114m_[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 138[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m text[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mtake_while[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 139[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 140[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m spans [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mVec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 141[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style[0m[38;2;248;248;242m;[0m
[38;5;238m 142[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mwhile[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m span[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mspan_fast[0m[38;2;248;248;242m([0m[38;2;248;248;242mlast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242mtext[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 143[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m span[0m[38;2;248;248;242m.[0m[38;2;248;248;242mstyle [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m&&[0m[38;2;248;248;242m span[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcontent[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 144[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Reset styles[0m
[38;5;238m 145[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 146[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 147[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m last[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpatch[0m[38;2;248;248;242m([0m[38;2;248;248;242mspan[0m[38;2;248;248;242m.[0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 148[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 149[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Don't include empty spans but keep changing the style[0m
[38;5;238m 150[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m spans[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m||[0m[38;2;248;248;242m [0m[38;2;249;38;114m![0m[38;2;248;248;242mspan[0m[38;2;248;248;242m.[0m[38;2;248;248;242mcontent[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 151[0m [38;5;238m│[0m [38;2;248;248;242m spans[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242mspan[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 152[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 153[0m [38;5;238m│[0m [38;2;248;248;242m text [0m[38;2;249;38;114m=[0m[38;2;248;248;242m s[0m[38;2;248;248;242m;[0m
[38;5;238m 154[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m text[0m[38;2;248;248;242m.[0m[38;2;102;217;239mis_empty[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 155[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mbreak[0m[38;2;248;248;242m;[0m
[38;5;238m 156[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 157[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 158[0m [38;5;238m│[0m
[38;5;238m 159[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mLine[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mspans[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m last[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 160[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 161[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 162[0m [38;5;238m│[0m
[38;5;238m 163[0m [38;5;238m│[0m [38;2;117;113;94m//[0m[38;2;117;113;94m fn span(s: &[u8]) -> IResult<&[u8], tui::text::Span> {[0m
[38;5;238m 164[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mspan[0m[38;2;248;248;242m([0m[38;2;253;151;31mlast[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m impl Fn[0m[38;2;248;248;242m([0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242mSpan[0m[38;2;248;248;242m<[0m[38;2;249;38;114m'static[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 165[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmove[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242mSpan[0m[38;2;248;248;242m<[0m[38;2;249;38;114m'static[0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 166[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m last[0m[38;2;248;248;242m;[0m
[38;5;238m 167[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mstyle[0m[38;2;248;248;242m([0m[38;2;248;248;242mlast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 168[0m [38;5;238m│[0m
[38;5;238m 169[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116msimd[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 170[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m text[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mmap_res[0m[38;2;248;248;242m([0m[38;2;102;217;239mtake_while[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m'[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m|[0m[38;2;253;151;31mt[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 171[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242msimdutf8[0m[38;2;248;248;242m::[0m[38;2;248;248;242mbasic[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom_utf8[0m[38;2;248;248;242m([0m[38;2;248;248;242mt[0m[38;2;248;248;242m)[0m
[38;5;238m 172[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 173[0m [38;5;238m│[0m
[38;5;238m 174[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mnot[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116msimd[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 175[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m text[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mmap_res[0m[38;2;248;248;242m([0m[38;2;102;217;239mtake_while[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m'[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m|[0m[38;2;253;151;31mt[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 176[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mstd[0m[38;2;248;248;242m::[0m[38;2;248;248;242mstr[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom_utf8[0m[38;2;248;248;242m([0m[38;2;248;248;242mt[0m[38;2;248;248;242m)[0m
[38;5;238m 177[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 178[0m [38;5;238m│[0m
[38;5;238m 179[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style [0m[38;2;248;248;242m{[0m
[38;5;238m 180[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m style [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 181[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 182[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 183[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m last[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpatch[0m[38;2;248;248;242m([0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 184[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 185[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 186[0m [38;5;238m│[0m
[38;5;238m 187[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mSpan[0m[38;2;248;248;242m::[0m[38;2;248;248;242mstyled[0m[38;2;248;248;242m([0m[38;2;248;248;242mtext[0m[38;2;248;248;242m.[0m[38;2;102;217;239mto_owned[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m last[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 188[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 189[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 190[0m [38;5;238m│[0m
[38;5;238m 191[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mzero-copy[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 192[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mspan_fast[0m[38;2;248;248;242m([0m[38;2;253;151;31mlast[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m impl Fn[0m[38;2;248;248;242m([0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242mSpan[0m[38;2;248;248;242m<[0m[38;2;248;248;242m'[0m[38;2;249;38;114m_[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 193[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmove[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242mSpan[0m[38;2;248;248;242m<[0m[38;2;248;248;242m'[0m[38;2;249;38;114m_[0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 194[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;249;38;114mmut[0m[38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m last[0m[38;2;248;248;242m;[0m
[38;5;238m 195[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mstyle_fast[0m[38;2;248;248;242m([0m[38;2;248;248;242mlast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 196[0m [38;5;238m│[0m
[38;5;238m 197[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116msimd[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 198[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m text[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mmap_res[0m[38;2;248;248;242m([0m[38;2;102;217;239mtake_while[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m'[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m|[0m[38;2;253;151;31mt[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 199[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242msimdutf8[0m[38;2;248;248;242m::[0m[38;2;248;248;242mbasic[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom_utf8[0m[38;2;248;248;242m([0m[38;2;248;248;242mt[0m[38;2;248;248;242m)[0m
[38;5;238m 200[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 201[0m [38;5;238m│[0m
[38;5;238m 202[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mnot[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116msimd[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 203[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m text[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mmap_res[0m[38;2;248;248;242m([0m[38;2;102;217;239mtake_while[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m!=[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m'[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\n[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m|[0m[38;2;253;151;31mt[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 204[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mstd[0m[38;2;248;248;242m::[0m[38;2;248;248;242mstr[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom_utf8[0m[38;2;248;248;242m([0m[38;2;248;248;242mt[0m[38;2;248;248;242m)[0m
[38;5;238m 205[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 206[0m [38;5;238m│[0m
[38;5;238m 207[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m style [0m[38;2;248;248;242m{[0m
[38;5;238m 208[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mif[0m[38;2;248;248;242m style [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 209[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 210[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m [0m[38;2;249;38;114melse[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 211[0m [38;5;238m│[0m [38;2;248;248;242m last [0m[38;2;249;38;114m=[0m[38;2;248;248;242m last[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpatch[0m[38;2;248;248;242m([0m[38;2;248;248;242mstyle[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 212[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 213[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 214[0m [38;5;238m│[0m
[38;5;238m 215[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mSpan[0m[38;2;248;248;242m::[0m[38;2;248;248;242mstyled[0m[38;2;248;248;242m([0m[38;2;248;248;242mtext[0m[38;2;248;248;242m.[0m[38;2;102;217;239mto_owned[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m last[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 216[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 217[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 218[0m [38;5;238m│[0m
[38;5;238m 219[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mstyle[0m[38;2;248;248;242m([0m[38;2;253;151;31mstyle[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m impl Fn[0m[38;2;248;248;242m([0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, Style, [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 220[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmove[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, Style[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 221[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m r[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mmatch[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;248;248;242mansi_sgr_code[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 222[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mr[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m r[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 223[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mNone[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 224[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239many_escape_sequence[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 225[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mVec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 226[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 227[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m;[0m
[38;5;238m 228[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m
[38;5;238m 229[0m [38;5;238m│[0m [38;2;248;248;242m s[0m[38;2;248;248;242m,[0m
[38;5;238m 230[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mAnsiStates [0m[38;2;248;248;242m{[0m
[38;5;238m 231[0m [38;5;238m│[0m [38;2;248;248;242m style[0m[38;2;248;248;242m,[0m
[38;5;238m 232[0m [38;5;238m│[0m [38;2;248;248;242m items[0m[38;2;248;248;242m:[0m[38;2;248;248;242m r[0m[38;2;248;248;242m.[0m[38;2;102;217;239minto[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 233[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 234[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 235[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 236[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 237[0m [38;5;238m│[0m
[38;5;238m 238[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mzero-copy[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 239[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mstyle_fast[0m[38;2;248;248;242m([0m[38;2;253;151;31mstyle[0m[38;2;248;248;242m:[0m[38;2;248;248;242m Style[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m impl Fn[0m[38;2;248;248;242m([0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, Style, [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 240[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmove[0m[38;2;248;248;242m [0m[38;2;249;38;114m|[0m[38;2;248;248;242ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, Style[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 241[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m r[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mmatch[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;248;248;242mansi_sgr_code_fast[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 242[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mr[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m r[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 243[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mNone[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 244[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239many_escape_sequence[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 245[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 246[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 247[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m;[0m
[38;5;238m 248[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mAnsiStates [0m[38;2;248;248;242m{[0m[38;2;248;248;242m style[0m[38;2;248;248;242m,[0m[38;2;248;248;242m items[0m[38;2;248;248;242m:[0m[38;2;248;248;242m r [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 249[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 250[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 251[0m [38;5;238m│[0m
[38;5;238m 252[0m [38;5;238m│[0m [38;2;117;113;94m///[0m[38;2;117;113;94m A complete ANSI SGR code[0m
[38;5;238m 253[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mansi_sgr_code[0m[38;2;248;248;242m([0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;166;226;46mVec[0m[38;2;248;248;242m<[0m[38;2;248;248;242mAnsiItem[0m[38;2;248;248;242m>[0m[38;2;248;248;242m, [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 254[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mdelimited[0m[38;2;248;248;242m([0m
[38;5;238m 255[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m[[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 256[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mseparated_list1[0m[38;2;248;248;242m([0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m ansi_sgr_item[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 257[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mchar[0m[38;2;248;248;242m([0m[38;2;230;219;116m'[0m[38;2;230;219;116mm[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 258[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m
[38;5;238m 259[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 260[0m [38;5;238m│[0m
[38;5;238m 261[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mcfg[0m[38;2;248;248;242m([0m[38;2;248;248;242mfeature [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;230;219;116m"[0m[38;2;230;219;116mzero-copy[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m][0m
[38;5;238m 262[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mansi_sgr_code_fast[0m[38;2;248;248;242m([0m
[38;5;238m 263[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m],[0m
[38;5;238m 264[0m [38;5;238m│[0m [38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;248;248;242msmallvec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSmallVec[0m[38;2;248;248;242m<[0m[38;2;248;248;242m[[0m[38;2;248;248;242mAnsiItem[0m[38;2;248;248;242m;[0m[38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m, [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 265[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mdelimited[0m[38;2;248;248;242m([0m
[38;5;238m 266[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m[[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 267[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mfold_many1[0m[38;2;248;248;242m([0m[38;2;248;248;242mansi_sgr_item[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242msmallvec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSmallVec[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m|[0m[38;2;249;38;114mmut[0m[38;2;248;248;242m [0m[38;2;253;151;31mitems[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;253;151;31mitem[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 268[0m [38;5;238m│[0m [38;2;248;248;242m items[0m[38;2;248;248;242m.[0m[38;2;102;217;239mpush[0m[38;2;248;248;242m([0m[38;2;248;248;242mitem[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 269[0m [38;5;238m│[0m [38;2;248;248;242m items[0m
[38;5;238m 270[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 271[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mchar[0m[38;2;248;248;242m([0m[38;2;230;219;116m'[0m[38;2;230;219;116mm[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 272[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m
[38;5;238m 273[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 274[0m [38;5;238m│[0m
[38;5;238m 275[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46many_escape_sequence[0m[38;2;248;248;242m([0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, [0m[38;2;166;226;46mOption[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m>[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 276[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Attempt to consume most escape codes, including a single escape char.[0m
[38;5;238m 277[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m
[38;5;238m 278[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m Most escape codes begin with ESC[ and are terminated by an alphabetic character,[0m
[38;5;238m 279[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m but OSC codes begin with ESC] and are terminated by an ascii bell (\x07)[0m
[38;5;238m 280[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m and a truncated/invalid code may just be a standalone ESC or not be terminated.[0m
[38;5;238m 281[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m
[38;5;238m 282[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m We should try to consume as much of it as possible to match behavior of most terminals;[0m
[38;5;238m 283[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m where we fail at that we should at least consume the escape char to avoid infinitely looping[0m
[38;5;238m 284[0m [38;5;238m│[0m
[38;5;238m 285[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mpreceded[0m[38;2;248;248;242m([0m
[38;5;238m 286[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mchar[0m[38;2;248;248;242m([0m[38;2;230;219;116m'[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 287[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239malt[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m
[38;5;238m 288[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mdelimited[0m[38;2;248;248;242m([0m[38;2;102;217;239mchar[0m[38;2;248;248;242m([0m[38;2;230;219;116m'[0m[38;2;230;219;116m[[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mtake_till[0m[38;2;248;248;242m([0m[38;2;248;248;242mis_alphabetic[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtake[0m[38;2;248;248;242m([0m[38;2;190;132;255m1[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 289[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mdelimited[0m[38;2;248;248;242m([0m[38;2;102;217;239mchar[0m[38;2;248;248;242m([0m[38;2;230;219;116m'[0m[38;2;230;219;116m][0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mtake_till[0m[38;2;248;248;242m([0m[38;2;248;248;242m|[0m[38;2;253;151;31mc[0m[38;2;248;248;242m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mc [0m[38;2;249;38;114m==[0m[38;2;248;248;242m [0m[38;2;102;217;239mb[0m[38;2;230;219;116m'[0m[38;2;190;132;255m\x07[0m[38;2;230;219;116m'[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtake[0m[38;2;248;248;242m([0m[38;2;190;132;255m1[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 290[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 291[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m
[38;5;238m 292[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 293[0m [38;5;238m│[0m
[38;5;238m 294[0m [38;5;238m│[0m [38;2;117;113;94m///[0m[38;2;117;113;94m An ANSI SGR attribute[0m
[38;5;238m 295[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mansi_sgr_item[0m[38;2;248;248;242m([0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, AnsiItem[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 296[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m c[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mu8[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 297[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m code [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mc[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 298[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m color[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;249;38;114mmatch[0m[38;2;248;248;242m code [0m[38;2;248;248;242m{[0m
[38;5;238m 299[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSetForegroundColor [0m[38;2;249;38;114m|[0m[38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSetBackgroundColor [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 300[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 301[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m color[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mcolor[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 302[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mcolor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 303[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 304[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;166;226;46mNone[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 305[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m;[0m
[38;5;238m 306[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 307[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m AnsiItem [0m[38;2;248;248;242m{[0m[38;2;248;248;242m code[0m[38;2;248;248;242m,[0m[38;2;248;248;242m color [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 308[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 309[0m [38;5;238m│[0m
[38;5;238m 310[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mcolor[0m[38;2;248;248;242m([0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, Color[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 311[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mc_type[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mcolor_type[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 312[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mopt[0m[38;2;248;248;242m([0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 313[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmatch[0m[38;2;248;248;242m [0m[38;2;102;217;239mc_type[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 314[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mColorType[0m[38;2;248;248;242m::[0m[38;2;248;248;242mTrueColor [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 315[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242mr[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m g[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m,[0m[38;2;248;248;242m b[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mtuple[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;102;217;239mu8[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mu8[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;102;217;239mu8[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 316[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mRgb[0m[38;2;248;248;242m([0m[38;2;248;248;242mr[0m[38;2;248;248;242m,[0m[38;2;248;248;242m g[0m[38;2;248;248;242m,[0m[38;2;248;248;242m b[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 317[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 318[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mColorType[0m[38;2;248;248;242m::[0m[38;2;248;248;242mEightBit [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 319[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m index[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mu8[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 320[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mIndexed[0m[38;2;248;248;242m([0m[38;2;248;248;242mindex[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 321[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 322[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 323[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 324[0m [38;5;238m│[0m
[38;5;238m 325[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mcolor_type[0m[38;2;248;248;242m([0m[38;2;253;151;31ms[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m->[0m[38;2;248;248;242m [0m[38;2;248;248;242mIResult[0m[38;2;248;248;242m<[0m[38;2;249;38;114m&[0m[38;2;248;248;242m[[0m[38;2;102;217;239mu8[0m[38;2;248;248;242m][0m[38;2;248;248;242m, ColorType[0m[38;2;248;248;242m>[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 326[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m t[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mi64[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 327[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m NOTE: This isn't opt because a color type must always be followed by a color[0m
[38;5;238m 328[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;117;113;94m//[0m[38;2;117;113;94m let (s, _) = opt(tag(";"))(s)?;[0m
[38;5;238m 329[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m [0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mtag[0m[38;2;248;248;242m([0m[38;2;230;219;116m"[0m[38;2;230;219;116m;[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m)[0m[38;2;249;38;114m?[0m[38;2;248;248;242m;[0m
[38;5;238m 330[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114mmatch[0m[38;2;248;248;242m t [0m[38;2;248;248;242m{[0m
[38;5;238m 331[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;190;132;255m2[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mColorType[0m[38;2;248;248;242m::[0m[38;2;248;248;242mTrueColor[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 332[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;190;132;255m5[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;166;226;46mOk[0m[38;2;248;248;242m([0m[38;2;248;248;242m([0m[38;2;248;248;242ms[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mColorType[0m[38;2;248;248;242m::[0m[38;2;248;248;242mEightBit[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 333[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;249;38;114m_[0m[38;2;248;248;242m [0m[38;2;249;38;114m=>[0m[38;2;248;248;242m [0m[38;2;166;226;46mErr[0m[38;2;248;248;242m([0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242mErr[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m([0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mError[0m[38;2;248;248;242m::[0m[38;2;248;248;242mnew[0m[38;2;248;248;242m([0m
[38;5;238m 334[0m [38;5;238m│[0m [38;2;248;248;242m s[0m[38;2;248;248;242m,[0m
[38;5;238m 335[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mnom[0m[38;2;248;248;242m::[0m[38;2;248;248;242merror[0m[38;2;248;248;242m::[0m[38;2;248;248;242mErrorKind[0m[38;2;248;248;242m::[0m[38;2;248;248;242mAlt[0m[38;2;248;248;242m,[0m
[38;5;238m 336[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m,[0m
[38;5;238m 337[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m
[38;5;238m 338[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 339[0m [38;5;238m│[0m
[38;5;238m 340[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mtest[0m[38;2;248;248;242m][0m
[38;5;238m 341[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mcolor_test[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 342[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m c [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mcolor[0m[38;2;248;248;242m([0m[38;2;102;217;239mb[0m[38;2;230;219;116m"[0m[38;2;230;219;116m2;255;255;255[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;102;217;239munwrap[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 343[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242massert_eq![0m[38;2;248;248;242m([0m[38;2;248;248;242mc[0m[38;2;248;248;242m.[0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mRgb[0m[38;2;248;248;242m([0m[38;2;190;132;255m255[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m255[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m255[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 344[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m c [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mcolor[0m[38;2;248;248;242m([0m[38;2;102;217;239mb[0m[38;2;230;219;116m"[0m[38;2;230;219;116m5;255[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;102;217;239munwrap[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 345[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242massert_eq![0m[38;2;248;248;242m([0m[38;2;248;248;242mc[0m[38;2;248;248;242m.[0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mIndexed[0m[38;2;248;248;242m([0m[38;2;190;132;255m255[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 346[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m 347[0m [38;5;238m│[0m
[38;5;238m 348[0m [38;5;238m│[0m [38;2;248;248;242m#[0m[38;2;248;248;242m[[0m[38;2;248;248;242mtest[0m[38;2;248;248;242m][0m
[38;5;238m 349[0m [38;5;238m│[0m [38;2;102;217;239mfn[0m[38;2;248;248;242m [0m[38;2;166;226;46mansi_items_test[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m [0m[38;2;248;248;242m{[0m
[38;5;238m 350[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m sc [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;166;226;46mDefault[0m[38;2;248;248;242m::[0m[38;2;248;248;242mdefault[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 351[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;102;217;239mlet[0m[38;2;248;248;242m t [0m[38;2;249;38;114m=[0m[38;2;248;248;242m [0m[38;2;102;217;239mstyle[0m[38;2;248;248;242m([0m[38;2;248;248;242msc[0m[38;2;248;248;242m)[0m[38;2;248;248;242m([0m[38;2;102;217;239mb[0m[38;2;230;219;116m"[0m[38;2;190;132;255m\x1b[0m[38;2;230;219;116m[38;2;3;3;3m[0m[38;2;230;219;116m"[0m[38;2;248;248;242m)[0m[38;2;248;248;242m.[0m[38;2;102;217;239munwrap[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 352[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242massert_eq![0m[38;2;248;248;242m([0m
[38;5;238m 353[0m [38;5;238m│[0m [38;2;248;248;242m t[0m[38;2;248;248;242m.[0m[38;2;190;132;255m1[0m[38;2;248;248;242m,[0m
[38;5;238m 354[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242mStyle[0m[38;2;248;248;242m::[0m[38;2;248;248;242mfrom[0m[38;2;248;248;242m([0m[38;2;248;248;242mAnsiStates [0m[38;2;248;248;242m{[0m
[38;5;238m 355[0m [38;5;238m│[0m [38;2;248;248;242m style[0m[38;2;248;248;242m:[0m[38;2;248;248;242m sc[0m[38;2;248;248;242m,[0m
[38;5;238m 356[0m [38;5;238m│[0m [38;2;248;248;242m items[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242mvec![0m[38;2;248;248;242m[[0m[38;2;248;248;242mAnsiItem [0m[38;2;248;248;242m{[0m
[38;5;238m 357[0m [38;5;238m│[0m [38;2;248;248;242m code[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;248;248;242mAnsiCode[0m[38;2;248;248;242m::[0m[38;2;248;248;242mSetForegroundColor[0m[38;2;248;248;242m,[0m
[38;5;238m 358[0m [38;5;238m│[0m [38;2;248;248;242m color[0m[38;2;248;248;242m:[0m[38;2;248;248;242m [0m[38;2;166;226;46mSome[0m[38;2;248;248;242m([0m[38;2;248;248;242mColor[0m[38;2;248;248;242m::[0m[38;2;248;248;242mRgb[0m[38;2;248;248;242m([0m[38;2;190;132;255m3[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m3[0m[38;2;248;248;242m,[0m[38;2;248;248;242m [0m[38;2;190;132;255m3[0m[38;2;248;248;242m)[0m[38;2;248;248;242m)[0m
[38;5;238m 359[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m][0m
[38;5;238m 360[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m.[0m[38;2;102;217;239minto[0m[38;2;248;248;242m([0m[38;2;248;248;242m)[0m
[38;5;238m 361[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m}[0m[38;2;248;248;242m)[0m
[38;5;238m 362[0m [38;5;238m│[0m [38;2;248;248;242m [0m[38;2;248;248;242m)[0m[38;2;248;248;242m;[0m
[38;5;238m 363[0m [38;5;238m│[0m [38;2;248;248;242m}[0m
[38;5;238m───────┴────────────────────────────────────────────────────────────────────────[0m
ansi-to-tui-6.0.0/ascii/text.ascii 0000644 0000000 0000000 00000000073 00726746425 0015116 0 ustar 0000000 0000000 [31;42mAAAA[32;41mBBBB
[0;38;2;123;223;23mTRUECOLOR[0m
ansi-to-tui-6.0.0/benches/parsing.rs 0000644 0000000 0000000 00000002301 00726746425 0015444 0 ustar 0000000 0000000 pub use ansi_to_tui::IntoText;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
fn criterion_benchmark(c: &mut Criterion) {
const BASIC: &[u8] = include_bytes!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/ascii/archlinux.ascii"
));
#[cfg(feature = "zero-copy")]
c.bench_function("Parsing bench zero copy", |b| {
b.iter(|| {
let s = black_box(&BASIC);
black_box(s.to_text()).unwrap();
})
});
c.bench_function("Parsing bench", |b| {
b.iter(|| {
let s = black_box(&BASIC);
black_box(s.into_text()).unwrap();
})
});
const CODE: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/ascii/code.ascii"));
#[cfg(feature = "zero-copy")]
c.bench_function("Parsing bench zero copy code", |b| {
b.iter(|| {
let s = black_box(&CODE);
black_box(s.to_text()).unwrap();
})
});
c.bench_function("Parsing bench code", |b| {
b.iter(|| {
let s = black_box(&CODE);
black_box(s.into_text()).unwrap();
})
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
ansi-to-tui-6.0.0/flake.lock 0000644 0000000 0000000 00000004717 00726746425 0013775 0 ustar 0000000 0000000 {
"nodes": {
"crane": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1718730147,
"narHash": "sha256-QmD6B6FYpuoCqu6ZuPJH896ItNquDkn0ulQlOn4ykN8=",
"owner": "ipetkov",
"repo": "crane",
"rev": "32c21c29b034d0a93fdb2379d6fabc40fc3d0e6c",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1719241184,
"narHash": "sha256-fz3Yc6bMhqhhF/xVrLE44Kew0/M78Xkl7sKXCfeFcI4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b4a237a1b79ef60236afef7b85d78118f3874d1d",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"crane": "crane",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1719195554,
"narHash": "sha256-bFXHMjpYlEERexzXa1gLGJO/1l8dxaAtSNE56YALuTg=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "577ee84c69ba89894ac622d71a678a14d746b2f7",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
ansi-to-tui-6.0.0/flake.nix 0000644 0000000 0000000 00000007142 00726746425 0013636 0 ustar 0000000 0000000 {
description = "A simple rust flake using rust-overlay and craneLib";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
crane = {
url = "github:ipetkov/crane";
inputs.nixpkgs.follows = "nixpkgs";
};
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
crane,
flake-utils,
nixpkgs,
rust-overlay,
...
}:
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = import nixpkgs {
inherit system;
overlays = [rust-overlay.overlays.default];
};
inherit (pkgs) lib;
stableToolchain = pkgs.rust-bin.stable.latest.default;
stableToolchainWithRustAnalyzer = pkgs.rust-bin.stable.latest.default.override {
extensions = ["rust-src" "rust-analyzer" "llvm-tools"];
# Extra targets if required
# targets = [
# "x86_64-unknown-linux-gnu"
# "x86_64-unknown-linux-musl"
# "x86_64-apple-darwin"
# "aarch64-apple-darwin"
# ];
};
craneLib = (crane.mkLib pkgs).overrideToolchain stableToolchain;
craneLibLLvmTools = craneLib.overrideToolchain (pkgs.rust-bin.stable.latest.default.override {
extensions = [
"cargo"
"llvm-tools"
"rustc"
];
});
src = craneLib.path ./.;
commonArgs = {
inherit src;
buildInputs = with pkgs;
[]
++ pkgs.lib.optionals pkgs.stdenv.isDarwin [
libiconv
# pkgs.darwin.apple_sdk.frameworks.Security
# pkgs.darwin.apple_sdk.frameworks.CoreServices
# pkgs.darwin.apple_sdk.frameworks.SystemConfiguration
]; # Inputs required for the TARGET system
# nativeBuildInputs = []; # Intputs required for the HOST system
# This is often requird for any ffi based packages that use bindgen
# LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
# For using pkg-config that many libraries require
# PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" (with pkgs;[ openssl.dev zlib.dev ]);
};
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
in {
checks =
{
ansi-to-tui-clippy = craneLib.cargoClippy (commonArgs
// {
inherit cargoArtifacts;
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
});
ansi-to-tui-fmt = craneLib.cargoFmt {
inherit src;
};
ansi-to-tui-nextest = craneLib.cargoNextest (commonArgs
// {
inherit cargoArtifacts;
partitions = 1;
partitionType = "count";
});
}
// lib.optionalAttrs (!pkgs.stdenv.isDarwin) {
ansi-to-tui-llvm-coverage = craneLibLLvmTools.cargoLlvmCov (commonArgs
// {
inherit cargoArtifacts;
});
};
devShells.default = (craneLib.overrideToolchain stableToolchainWithRustAnalyzer).devShell (commonArgs
// {
buildInputs = [];
nativeBuildInputs = [];
packages = with pkgs;
[
cargo-nextest
cargo-criterion
cargo-outdated
cargo-mutants
]
++ lib.optionals pkgs.stdenv.isLinux [
cargo-llvm-cov
];
});
}
);
}
ansi-to-tui-6.0.0/src/code.rs 0000644 0000000 0000000 00000011674 00726746425 0014110 0 ustar 0000000 0000000 use tui::style::Color;
/// This enum stores most types of ansi escape sequences
///
/// You can turn an escape sequence to this enum variant using
/// AnsiCode::from(code: u8)
/// This doesn't support all of them but does support most of them.
#[derive(Debug, PartialEq, Clone)]
#[non_exhaustive]
pub enum AnsiCode {
/// Reset the terminal
Reset,
/// Set font to bold
Bold,
/// Set font to faint
Faint,
/// Set font to italic
Italic,
/// Set font to underline
Underline,
/// Set cursor to slowblink
SlowBlink,
/// Set cursor to rapidblink
RapidBlink,
/// Invert the colors
Reverse,
/// Conceal text
Conceal,
/// Display crossed out text
CrossedOut,
/// Choose primary font
PrimaryFont,
/// Choose alternate font
AlternateFont,
/// Choose alternate fonts 1-9
#[allow(dead_code)]
AlternateFonts(u8), // = 11..19, // from 11 to 19
/// Fraktur ? No clue
Fraktur,
/// Turn off bold
BoldOff,
/// Set text to normal
Normal,
/// Turn off Italic
NotItalic,
/// Turn off underline
UnderlineOff,
/// Turn off blinking
BlinkOff,
// 26 ?
/// Don't invert colors
InvertOff,
/// Reveal text
Reveal,
/// Turn off Crossedout text
CrossedOutOff,
/// Set foreground color (4-bit)
ForegroundColor(Color), //, 31..37//Issue 60553 https://github.com/rust-lang/rust/issues/60553
/// Set foreground color (8-bit and 24-bit)
SetForegroundColor,
/// Default foreground color
DefaultForegroundColor,
/// Set background color (4-bit)
BackgroundColor(Color), // 41..47
/// Set background color (8-bit and 24-bit)
SetBackgroundColor,
/// Default background color
DefaultBackgroundColor, // 49
/// Other / non supported escape codes
Code(Vec),
}
impl From for AnsiCode {
fn from(code: u8) -> Self {
match code {
0 => AnsiCode::Reset,
1 => AnsiCode::Bold,
2 => AnsiCode::Faint,
3 => AnsiCode::Italic,
4 => AnsiCode::Underline,
5 => AnsiCode::SlowBlink,
6 => AnsiCode::RapidBlink,
7 => AnsiCode::Reverse,
8 => AnsiCode::Conceal,
9 => AnsiCode::CrossedOut,
10 => AnsiCode::PrimaryFont,
11 => AnsiCode::AlternateFont,
// AnsiCode::// AlternateFont = 11..19, // from 11 to 19
20 => AnsiCode::Fraktur,
21 => AnsiCode::BoldOff,
22 => AnsiCode::Normal,
23 => AnsiCode::NotItalic,
24 => AnsiCode::UnderlineOff,
25 => AnsiCode::BlinkOff,
// 26 ?
27 => AnsiCode::InvertOff,
28 => AnsiCode::Reveal,
29 => AnsiCode::CrossedOutOff,
30 => AnsiCode::ForegroundColor(Color::Black),
31 => AnsiCode::ForegroundColor(Color::Red),
32 => AnsiCode::ForegroundColor(Color::Green),
33 => AnsiCode::ForegroundColor(Color::Yellow),
34 => AnsiCode::ForegroundColor(Color::Blue),
35 => AnsiCode::ForegroundColor(Color::Magenta),
36 => AnsiCode::ForegroundColor(Color::Cyan),
37 => AnsiCode::ForegroundColor(Color::Gray),
38 => AnsiCode::SetForegroundColor,
39 => AnsiCode::DefaultForegroundColor,
40 => AnsiCode::BackgroundColor(Color::Black),
41 => AnsiCode::BackgroundColor(Color::Red),
42 => AnsiCode::BackgroundColor(Color::Green),
43 => AnsiCode::BackgroundColor(Color::Yellow),
44 => AnsiCode::BackgroundColor(Color::Blue),
45 => AnsiCode::BackgroundColor(Color::Magenta),
46 => AnsiCode::BackgroundColor(Color::Cyan),
47 => AnsiCode::BackgroundColor(Color::Gray),
48 => AnsiCode::SetBackgroundColor,
49 => AnsiCode::DefaultBackgroundColor,
90 => AnsiCode::ForegroundColor(Color::DarkGray),
91 => AnsiCode::ForegroundColor(Color::LightRed),
92 => AnsiCode::ForegroundColor(Color::LightGreen),
93 => AnsiCode::ForegroundColor(Color::LightYellow),
94 => AnsiCode::ForegroundColor(Color::LightBlue),
95 => AnsiCode::ForegroundColor(Color::LightMagenta),
96 => AnsiCode::ForegroundColor(Color::LightCyan),
97 => AnsiCode::ForegroundColor(Color::White),
100 => AnsiCode::BackgroundColor(Color::DarkGray),
101 => AnsiCode::BackgroundColor(Color::LightRed),
102 => AnsiCode::BackgroundColor(Color::LightGreen),
103 => AnsiCode::BackgroundColor(Color::LightYellow),
104 => AnsiCode::BackgroundColor(Color::LightBlue),
105 => AnsiCode::BackgroundColor(Color::LightMagenta),
106 => AnsiCode::BackgroundColor(Color::LightCyan),
107 => AnsiCode::ForegroundColor(Color::White),
code => AnsiCode::Code(vec![code]),
}
}
}
ansi-to-tui-6.0.0/src/error.rs 0000644 0000000 0000000 00000001336 00726746425 0014321 0 ustar 0000000 0000000 /// This enum stores the error types
#[derive(Debug, thiserror::Error, PartialEq)]
pub enum Error {
/// Stack is empty (should never happen)
#[error("Nom Error")]
NomError(String),
/// Error parsing the input as utf-8
#[cfg(feature = "simdutf8")]
/// Cannot determine the foreground or background
#[error("{0:?}")]
Utf8Error(#[from] simdutf8::basic::Utf8Error),
#[cfg(not(feature = "simdutf8"))]
/// Cannot determine the foreground or background
#[error("{0:?}")]
Utf8Error(#[from] std::string::FromUtf8Error),
}
impl From>> for Error {
fn from(e: nom::Err>) -> Self {
Self::NomError(format!("{:?}", e))
}
}
ansi-to-tui-6.0.0/src/lib.rs 0000644 0000000 0000000 00000004103 00726746425 0013731 0 ustar 0000000 0000000 #![allow(unused_imports)]
#![warn(missing_docs)]
//! Parses a `Vec` as an byte sequence with ansi colors to
//! [`tui::text::Text`][Text].
//!
//! Invalid ansi colors / sequences will be ignored.
//!
//!
//! Supported features
//! - UTF-8 using `String::from_utf8` or [`simdutf8`][simdutf8].
//! - Most stuff like **Bold** / *Italic* / Underline / ~~Strikethrough~~.
//! - Supports 4-bit color palletes.
//! - Supports 8-bit color.
//! - Supports True color ( RGB / 24-bit color ).
//!
//!
//! ## Example
//! The argument to the function `ansi_to_text` implements `IntoIterator` so it will be consumed on
//! use.
//! ```rust
//! use ansi_to_tui::IntoText;
//! let bytes = b"\x1b[38;2;225;192;203mAAAAA\x1b[0m".to_owned().to_vec();
//! let text = bytes.into_text().unwrap();
//! ```
//! Example parsing from a file.
//! ```rust
//! use ansi_to_tui::IntoText;
//! let buffer = std::fs::read("ascii/text.ascii").unwrap();
//! let text = buffer.into_text().unwrap();
//! ```
//!
//! If you want to use [`simdutf8`][simdutf8] instead of `String::from_utf8()`
//! for parsing UTF-8 then enable optional feature `simd`
//!
//! [Text]: https://docs.rs/tui/0.15.0/tui/text/struct.Text.html
//! [ansi-to-tui]: https://github.com/uttarayan21/ansi-to-tui
//! [simdutf8]: https://github.com/rusticstuff/simdutf8
// mod ansi;
mod code;
mod error;
mod parser;
pub use error::Error;
use tui::text::Text;
/// IntoText will convert any type that has a AsRef<[u8]> to a Text.
pub trait IntoText {
/// Convert the type to a Text.
#[allow(clippy::wrong_self_convention)]
fn into_text(&self) -> Result, Error>;
/// Convert the type to a Text while trying to copy as less as possible
#[cfg(feature = "zero-copy")]
fn to_text(&self) -> Result, Error>;
}
impl IntoText for T
where
T: AsRef<[u8]>,
{
fn into_text(&self) -> Result, Error> {
Ok(crate::parser::text(self.as_ref())?.1)
}
#[cfg(feature = "zero-copy")]
fn to_text(&self) -> Result, Error> {
Ok(crate::parser::text_fast(self.as_ref())?.1)
}
}
ansi-to-tui-6.0.0/src/parser.rs 0000644 0000000 0000000 00000027304 00726746425 0014467 0 ustar 0000000 0000000 use crate::code::AnsiCode;
use nom::{
branch::alt,
bytes::complete::*,
character::complete::*,
character::is_alphabetic,
combinator::{map_res, opt, recognize, value},
error,
error::FromExternalError,
multi::*,
sequence::{delimited, preceded, terminated, tuple},
IResult, Parser,
};
use std::str::FromStr;
use tui::{
style::{Color, Modifier, Style},
text::{Line, Span, Text},
};
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
enum ColorType {
/// Eight Bit color
EightBit,
/// 24-bit color or true color
TrueColor,
}
#[derive(Debug, Clone, PartialEq)]
struct AnsiItem {
code: AnsiCode,
color: Option,
}
#[derive(Debug, Clone, PartialEq)]
struct AnsiStates {
pub items: smallvec::SmallVec<[AnsiItem; 2]>,
pub style: Style,
}
impl From for tui::style::Style {
fn from(states: AnsiStates) -> Self {
let mut style = states.style;
if states.items.is_empty() {
// https://github.com/uttarayan21/ansi-to-tui/issues/40
// [m should be treated as a reset as well
style = Style::reset();
}
for item in states.items {
match item.code {
AnsiCode::Reset => style = Style::reset(),
AnsiCode::Bold => style = style.add_modifier(Modifier::BOLD),
AnsiCode::Faint => style = style.add_modifier(Modifier::DIM),
AnsiCode::Italic => style = style.add_modifier(Modifier::ITALIC),
AnsiCode::Underline => style = style.add_modifier(Modifier::UNDERLINED),
AnsiCode::SlowBlink => style = style.add_modifier(Modifier::SLOW_BLINK),
AnsiCode::RapidBlink => style = style.add_modifier(Modifier::RAPID_BLINK),
AnsiCode::Reverse => style = style.add_modifier(Modifier::REVERSED),
AnsiCode::Conceal => style = style.add_modifier(Modifier::HIDDEN),
AnsiCode::CrossedOut => style = style.add_modifier(Modifier::CROSSED_OUT),
AnsiCode::DefaultForegroundColor => style = style.fg(Color::Reset),
AnsiCode::DefaultBackgroundColor => style = style.bg(Color::Reset),
AnsiCode::SetForegroundColor => {
if let Some(color) = item.color {
style = style.fg(color)
}
}
AnsiCode::SetBackgroundColor => {
if let Some(color) = item.color {
style = style.bg(color)
}
}
AnsiCode::ForegroundColor(color) => style = style.fg(color),
AnsiCode::BackgroundColor(color) => style = style.bg(color),
_ => (),
}
}
style
}
}
pub(crate) fn text(mut s: &[u8]) -> IResult<&[u8], Text<'static>> {
let mut lines = Vec::new();
let mut last = Style::new();
while let Ok((_s, (line, style))) = line(last)(s) {
lines.push(line);
last = style;
s = _s;
if s.is_empty() {
break;
}
}
Ok((s, Text::from(lines)))
}
#[cfg(feature = "zero-copy")]
pub(crate) fn text_fast(mut s: &[u8]) -> IResult<&[u8], Text<'_>> {
let mut lines = Vec::new();
let mut last = Style::new();
while let Ok((_s, (line, style))) = line_fast(last)(s) {
lines.push(line);
last = style;
s = _s;
if s.is_empty() {
break;
}
}
Ok((s, Text::from(lines)))
}
fn line(style: Style) -> impl Fn(&[u8]) -> IResult<&[u8], (Line<'static>, Style)> {
// let style_: Style = Default::default();
move |s: &[u8]| -> IResult<&[u8], (Line<'static>, Style)> {
let (s, mut text) = take_while(|c| c != b'\n')(s)?;
let (s, _) = opt(tag("\n"))(s)?;
let mut spans = Vec::new();
let mut last = style;
while let Ok((s, span)) = span(last)(text) {
// Since reset now tracks seperately we can skip the reset check
last = last.patch(span.style);
if !span.content.is_empty() {
spans.push(span);
}
text = s;
if text.is_empty() {
break;
}
}
Ok((s, (Line::from(spans), last)))
}
}
#[cfg(feature = "zero-copy")]
fn line_fast(style: Style) -> impl Fn(&[u8]) -> IResult<&[u8], (Line<'_>, Style)> {
// let style_: Style = Default::default();
move |s: &[u8]| -> IResult<&[u8], (Line<'_>, Style)> {
let (s, mut text) = take_while(|c| c != b'\n')(s)?;
let (s, _) = opt(tag("\n"))(s)?;
let mut spans = Vec::new();
let mut last = style;
while let Ok((s, span)) = span_fast(last)(text) {
last = last.patch(span.style);
// If the spans is empty then it might be possible that the style changes
// but there is no text change
if !span.content.is_empty() {
spans.push(span);
}
text = s;
if text.is_empty() {
break;
}
}
Ok((s, (Line::from(spans), last)))
}
}
// fn span(s: &[u8]) -> IResult<&[u8], tui::text::Span> {
fn span(last: Style) -> impl Fn(&[u8]) -> IResult<&[u8], Span<'static>, nom::error::Error<&[u8]>> {
move |s: &[u8]| -> IResult<&[u8], Span<'static>> {
let mut last = last;
let (s, style) = opt(style(last))(s)?;
#[cfg(feature = "simd")]
let (s, text) = map_res(take_while(|c| c != b'\x1b' && c != b'\n'), |t| {
simdutf8::basic::from_utf8(t)
})(s)?;
#[cfg(not(feature = "simd"))]
let (s, text) = map_res(take_while(|c| c != b'\x1b' && c != b'\n'), |t| {
std::str::from_utf8(t)
})(s)?;
if let Some(style) = style.flatten() {
last = last.patch(style);
}
Ok((s, Span::styled(text.to_owned(), last)))
}
}
#[cfg(feature = "zero-copy")]
fn span_fast(last: Style) -> impl Fn(&[u8]) -> IResult<&[u8], Span<'_>, nom::error::Error<&[u8]>> {
move |s: &[u8]| -> IResult<&[u8], Span<'_>> {
let mut last = last;
let (s, style) = opt(style(last))(s)?;
#[cfg(feature = "simd")]
let (s, text) = map_res(take_while(|c| c != b'\x1b' && c != b'\n'), |t| {
simdutf8::basic::from_utf8(t)
})(s)?;
#[cfg(not(feature = "simd"))]
let (s, text) = map_res(take_while(|c| c != b'\x1b' && c != b'\n'), |t| {
std::str::from_utf8(t)
})(s)?;
if let Some(style) = style.flatten() {
last = last.patch(style);
}
Ok((s, Span::styled(text, last)))
}
}
fn style(
style: Style,
) -> impl Fn(&[u8]) -> IResult<&[u8], Option