Compare commits
42 Commits
vhs-test
...
ratatui-ma
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbe6549d05 | ||
|
|
39cd313b3b | ||
|
|
db65aa0ef7 | ||
|
|
0a25bc166d | ||
|
|
3582052c30 | ||
|
|
12d3c78aa4 | ||
|
|
40d3116b2a | ||
|
|
d3017046b9 | ||
|
|
6e5d79747f | ||
|
|
f18154bcfe | ||
|
|
1e11ca4536 | ||
|
|
fa73ff095d | ||
|
|
efcc633f72 | ||
|
|
817895b554 | ||
|
|
8d715e2e51 | ||
|
|
934a54cd67 | ||
|
|
23ab1f5a68 | ||
|
|
f50fc86b84 | ||
|
|
71c6ad9de6 | ||
|
|
89a9fa1cfd | ||
|
|
b176d04e59 | ||
|
|
8e5151f83d | ||
|
|
f8b0594363 | ||
|
|
f764546ece | ||
|
|
281459aeae | ||
|
|
0ef33d1318 | ||
|
|
928ddee9f1 | ||
|
|
297d264c6b | ||
|
|
2b0a044ced | ||
|
|
cace1e099c | ||
|
|
200b217722 | ||
|
|
849f4badbf | ||
|
|
9a930a6e99 | ||
|
|
08afbeef39 | ||
|
|
424fcbf679 | ||
|
|
442fb54ace | ||
|
|
6fb2ec1753 | ||
|
|
8a5fbd3c58 | ||
|
|
887a6366e5 | ||
|
|
b2872fb53c | ||
|
|
837af96e98 | ||
|
|
34baaf1137 |
115
.cliffignore
Normal file
115
.cliffignore
Normal file
@@ -0,0 +1,115 @@
|
||||
# skip entries from <https://github.com/ratatui/ratatui/pull/1652>
|
||||
50af9a5d80ed5446f3e6cc554911f606580edde9
|
||||
272e9709c6eed45cd7e0c183624b7898f4e0ae69
|
||||
adc8fdc35aa57d6dad2ae8dd30ec2e9256576c09
|
||||
31711dbf82a4c7bb3b78692da34d9f469725dd6e
|
||||
b6356aa7a529a491d63dd6628b8985adae337f16
|
||||
885558b6f89df642317d39c5b44c94c742d1e0c8
|
||||
6440eb9d76379340953420629ab0a3d9039d6c48
|
||||
3870583ea868452191857f9bda97a3d5c35d0a4f
|
||||
487edc8399683fb8a9a66359729c015780d248f2
|
||||
250c222cc4aaab09184a28efc68f75ca03133794
|
||||
590a392ab11c1a215767614931036781f4cf6a29
|
||||
6443f7408af4a8834bc68cd35d2ba9be47e45f38
|
||||
8339cce10a51c9c951b3c9750d527d80168626eb
|
||||
ac342231c344e893f2f630ee38167aab28c736a6
|
||||
0fb103680028a6e26a1923f87b60bde51acaec4f
|
||||
4335a90a00aeeedb69a92442c7f2711727944017
|
||||
71480242a926f98e9081ed6e2dc8c381757b3a42
|
||||
e1a31db55913bd690bcaef380e9dbc3b6a5dc175
|
||||
38490ff8da6f11e309ba1bcb3e88a562f7c953c5
|
||||
a4bb143e4767137d6a9e9927d3da66562611f86f
|
||||
bc73f2dcbe5ea48fc4d1555a8e931f40d7b0e03f
|
||||
77dea441e5637b1c428c2aa71ea67fb3aac20c12
|
||||
06af14107e70e49a4cba3babb8ab0a0c57b4bdf8
|
||||
9acdab32df69517b93dd2b861b85586d47c71540
|
||||
2e684c6500be61fbe69744d183c8086564ac0051
|
||||
b7f8ec0ff9659473d936eae53a57cd9de38cec1f
|
||||
31a2c4548c304270a8c852f19baa7a4eaac5e75c
|
||||
57b681b053c019b66e0ed92959638997fea731b1
|
||||
131b9ec41751163d43d94564363247b60f031486
|
||||
8b32f82b4dd526580d00fa13f053bf507e8ea933
|
||||
76d1e5b1733d47a7f05acf563db26cb1a66b540d
|
||||
57a0a34f924e0d488c9e9f917900e677c3488dc4
|
||||
12aa58601ddd0704256c56019bd2c7139d41f7a2
|
||||
2dc81833c60951d16f9bd60f3da003edfc9a11f5
|
||||
20e41f1d1da6db8abbc2504814531d4d97bdf94b
|
||||
68b55a12a29e70ebfcc063c2d5d5845de3b5a27e
|
||||
693003314a25e792ffc5d53146b28bfb6a4582e3
|
||||
63441e259bc38b56e0369197bed14788b2cb3d54
|
||||
fa88152c808eeb6c9d9b3662361aab1e57e1b1bf
|
||||
30d9daa59b1843786cde00e25c3e69cfe818b80b
|
||||
92540b2f6ab25f3a5400aebb28af3c498ac793a4
|
||||
29edc3a7a38c512611a80cf5d8d42027558419b2
|
||||
819499d6ffc0e8453ed3220067645933a4882a74
|
||||
4756526829a4e849d9e256b6cf821eb66afe3ade
|
||||
8f35437d5ad78d31cd45c4af888f20f0b5ab4196
|
||||
39bd72b1f702dadb1ebbaf4e77ad2fada166ac49
|
||||
c6d2cee3e967c9234176c5229858512b0c79d6a9
|
||||
bd90e3d928e0f9f0b915933ebbc32c2256fe8cfa
|
||||
b820c0c7e4c576c1e39b5e482a8aac08076a039c
|
||||
74194759756bb111b4da3e9a5cdb968275a2fab0
|
||||
38b2f27efe0e1829bc503df7fd64b94b7bb80d97
|
||||
21aa3232d762d6e3f81f15fc5b66ba462385ac05
|
||||
903bb0ae32d22393783edfda96db900739864f0a
|
||||
5cee13ab6d9c49751cf9283d9099e37f0cc3632c
|
||||
0a0997702dd4cf2217160f5652f5c39cbd4a1010
|
||||
778f2f5ec511bef431b54157242b91d083ea9840
|
||||
7d23bd2ceaf96e81972b5f746fdcba0d17f6391f
|
||||
2c02a56bce31519386303571e0b66b7d4beb378e
|
||||
f33d51e7d9ccf9fe52ec3289d04d97c722d9ee17
|
||||
91cd81aaa032887bb2327bc3fe3cad6b3c9fbacf
|
||||
5d5a1ccb0b4e2f293f215ce026fba33f1c069689
|
||||
6b9417db5f2adbdc60e9dd8dc5acbbe2a1f77ba9
|
||||
dce1e4b138eb1333c9e773bacd579a8cdddd73fb
|
||||
b4aacb045e2200896b0d0136a2b8688b47828d73
|
||||
dcba0bcd5d5d6e33ddc1fa94ebb94819fdda600e
|
||||
6f52350ecfb62e3a5bac16f0824e74b757cc6cd2
|
||||
2c6f324b9aa5034771e00758b143fd8df94d859d
|
||||
bf0210602948f8d26ae323996fe7b22fb218a446
|
||||
07aff91b015b5e7e0504680c12edbce70d7dba1e
|
||||
f6d49dde14af73ed467d75d8f6ec0f502db2908f
|
||||
9a7467b30576d5cb7491ea6e09efcae97eadf9bb
|
||||
a0c35f1d7bcce10e092582b95f5b0a3f20ad7bf3
|
||||
d24747d46982192b575a40b8cc18d1c948fac3d7
|
||||
8060f7bc578b29dde6ca0c4c64569f9c73218f46
|
||||
0dc5b2d2e0aa6438ffc1b3965b1ab31c721adbcc
|
||||
8ecdd892f53d7db95bbb53a61700d36e3fcefdd4
|
||||
570c35868147a2400a13331e85d562d1ef96a011
|
||||
3855c3a84a77037aeee40dbe9e52454fb1f9afee
|
||||
93372f35c1669da0138ca776890f3ff3d38a6539
|
||||
6cf08d4a2f0398856fd593f50bf077fd59b08230
|
||||
f78d3bfec32d07c1124eee8d0249477ce3fb0884
|
||||
204307fa50aaaa373946342084f7fd3af39f3cd3
|
||||
c50b01d098e5ab405a50c3e14e858da27d606e8f
|
||||
f71d1ac73e8290f37d55a67d6a6507a3653ec174
|
||||
ae2868c0e0b1ac8b5126fd43269383fa533d87b5
|
||||
be8def963956c605bca28bcd8df673bd7ec3740b
|
||||
4ac4d9d3ab97176d71e287bcdd6d41e66f2f7ccb
|
||||
fafabb8dab84e9460a076199ea646262e51c855b
|
||||
2f97d35bd8618e8c0cc006cb1d4a9b151c1b9b4a
|
||||
39d5a745acbbd3510de707d4e7c471c17e02ae59
|
||||
a1acdcdc4c002390a76f01699cfa006a36cf3f56
|
||||
ad54cf29ad1a4335ba208fb94a8fc5dfbba260e3
|
||||
c7649575e7b199794be4252f79da80aaecdcee28
|
||||
8913e2ce1f40d451ddb4527f08ec75f198d5063c
|
||||
1b9e310300f22bfc72364f027a9caeddadf61a99
|
||||
89d7dd46031511f0556b2d29ab34035f42e3a24c
|
||||
ca4fa0b9bf5ba707aa0447ba7c38fbacdadb7eec
|
||||
8cecfdf2f6dd5b0de507f79b469517cc0fb42add
|
||||
7eeb6afb3dbc56e52f9387a74f826b186cd19137
|
||||
d0f75eb371a96f8d5f174e23de074efd840e9e44
|
||||
f8a70ea9da8e6df2bf7a5f74cce45615fc292afe
|
||||
f28b9730061bffadb9d87ad63edf7d10b245d2c1
|
||||
afc5cf2140f22fea6bd6933dd0f9c302229a1980
|
||||
b75df78cdca58d5dca0c51fb8e106067aa6cb752
|
||||
28f5a6dbd4091aa3efa86eed6767eeb44a655f0f
|
||||
345e6a1ebd853858463a33953585ce407a60378c
|
||||
c45a4de47c601554f6b981d211181468b4798e41
|
||||
bbaa9a5432ff6ad5518344123c3b56f349347e99
|
||||
f804c90f96221f334371ccd01b0e6df7b1cfc1e8
|
||||
16ba867c5877d8c97968987ecb5f8bff966d0a82
|
||||
38a1474ca12aa6a796afc1e277882d997a999e14
|
||||
92c4078413fc79fcc83f5d3d8708abb58696ff1a
|
||||
d4415204e1eb3aed2a74a722aeaaa274975dd2d7
|
||||
e48bcf5f21f14acb27996fdc02231c140f5b817c
|
||||
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
@@ -36,8 +36,8 @@ jobs:
|
||||
with:
|
||||
toolchain: nightly
|
||||
components: rustfmt
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: taplo-cli
|
||||
- run: cargo xtask format --check
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: crate-ci/typos@85f62a8a84f939ae994ab3763f01a0296d61a7ee # master
|
||||
- uses: crate-ci/typos@80c8a4945eec0f6d464eaf9e65ed98ef085283d1 # master
|
||||
|
||||
# Check for any disallowed dependencies in the codebase due to license / security issues.
|
||||
# See <https://github.com/EmbarkStudios/cargo-deny>
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: stable
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-deny
|
||||
- run: cargo deny --log-level info --all-features check
|
||||
@@ -102,8 +102,10 @@ jobs:
|
||||
with:
|
||||
toolchain: ${{ matrix.toolchain }}
|
||||
components: clippy
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask clippy
|
||||
env:
|
||||
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
|
||||
|
||||
# Run markdownlint on all markdown files in the repository.
|
||||
lint-markdown:
|
||||
@@ -132,10 +134,10 @@ jobs:
|
||||
with:
|
||||
toolchain: stable
|
||||
components: llvm-tools
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-llvm-cov
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask coverage
|
||||
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5
|
||||
with:
|
||||
@@ -158,11 +160,13 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: ${{ matrix.toolchain }}
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-hack
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask check --all-features
|
||||
env:
|
||||
RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}
|
||||
|
||||
build-no-std:
|
||||
name: Build No-Std
|
||||
@@ -175,7 +179,7 @@ jobs:
|
||||
with:
|
||||
toolchain: stable
|
||||
targets: x86_64-unknown-none
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
# This makes it easier to debug the exact versions of the dependencies
|
||||
- run: cargo tree --target x86_64-unknown-none -p ratatui-core
|
||||
- run: cargo tree --target x86_64-unknown-none -p ratatui-widgets
|
||||
@@ -194,8 +198,8 @@ jobs:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-rdme
|
||||
- run: cargo xtask readme --check
|
||||
@@ -217,10 +221,10 @@ jobs:
|
||||
- uses: dtolnay/install@74f735cdf643820234e37ae1c4089a08fd266d8a # master
|
||||
with:
|
||||
crate: cargo-docs-rs
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-hack
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask docs
|
||||
|
||||
# Run cargo test on the documentation of the crate. This will catch any code examples that don't
|
||||
@@ -235,10 +239,10 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: stable
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-hack
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask test-docs
|
||||
|
||||
# Run cargo test on the libraries of the crate.
|
||||
@@ -256,10 +260,10 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: stable
|
||||
- uses: taiki-e/install-action@4575ae687efd0e2c78240087f26013fb2484987f # v2
|
||||
- uses: taiki-e/install-action@c5b1b6f479c32f356cc6f4ba672a47f63853b13b # v2
|
||||
with:
|
||||
tool: cargo-hack
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask test-libs
|
||||
|
||||
# Run cargo test on all the backends.
|
||||
@@ -282,5 +286,5 @@ jobs:
|
||||
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: stable
|
||||
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2
|
||||
- uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2
|
||||
- run: cargo xtask test-backend ${{ matrix.backend }}
|
||||
|
||||
7
.github/workflows/release-plz.yml
vendored
7
.github/workflows/release-plz.yml
vendored
@@ -31,10 +31,10 @@ jobs:
|
||||
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: stable
|
||||
- uses: rust-lang/crates-io-auth-action@e919bc7605cde86df457cf5b93c5e103838bd879 # v1
|
||||
- uses: rust-lang/crates-io-auth-action@041cce5b4b821e6b0ebc9c9c38b58cac4e34dcc2 # v1
|
||||
id: auth
|
||||
- name: Run release-plz
|
||||
uses: release-plz/action@acb9246af4d59a270d1d4058a8b9af8c3f3a2559 # v0.5
|
||||
uses: release-plz/action@d529f731ae3e89610ada96eda34e5c6ba3b12214 # v0.5
|
||||
with:
|
||||
command: release
|
||||
env:
|
||||
@@ -46,6 +46,7 @@ jobs:
|
||||
name: Release-plz PR
|
||||
permissions:
|
||||
pull-requests: write
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.repository_owner == 'ratatui' }}
|
||||
concurrency:
|
||||
@@ -62,7 +63,7 @@ jobs:
|
||||
with:
|
||||
toolchain: stable
|
||||
- name: Run release-plz
|
||||
uses: release-plz/action@acb9246af4d59a270d1d4058a8b9af8c3f3a2559 # v0.5
|
||||
uses: release-plz/action@d529f731ae3e89610ada96eda34e5c6ba3b12214 # v0.5
|
||||
with:
|
||||
command: release-pr
|
||||
env:
|
||||
|
||||
35
.github/workflows/vhs-test.yml
vendored
35
.github/workflows/vhs-test.yml
vendored
@@ -1,35 +0,0 @@
|
||||
name: vhs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- vhs-test
|
||||
|
||||
jobs:
|
||||
vhs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921 # master
|
||||
with:
|
||||
toolchain: stable
|
||||
|
||||
- uses: FedericoCarboni/setup-ffmpeg@v3
|
||||
id: setup-ffmpeg
|
||||
|
||||
- uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version: "^1.13.1" # The Go version to download (if necessary) and use.
|
||||
|
||||
- run: |
|
||||
cargo build -p demo2
|
||||
sudo apt update
|
||||
sudo apt install -y ffmpeg ttyd
|
||||
go install github.com/charmbracelet/vhs@latest
|
||||
vhs ./examples/vhs/demo2.tape
|
||||
|
||||
- name: Upload GIF artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: demo2-gif
|
||||
path: ./target/demo2.gif
|
||||
3463
CHANGELOG.md
3463
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
194
Cargo.lock
generated
194
Cargo.lock
generated
@@ -79,9 +79,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "anstyle"
|
||||
version = "1.0.11"
|
||||
version = "1.0.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd"
|
||||
checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-parse"
|
||||
@@ -224,11 +224,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.9.4"
|
||||
version = "2.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
|
||||
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -341,7 +341,7 @@ dependencies = [
|
||||
"num-traits",
|
||||
"serde",
|
||||
"wasm-bindgen",
|
||||
"windows-link",
|
||||
"windows-link 0.1.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -373,9 +373,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.5.48"
|
||||
version = "4.5.50"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae"
|
||||
checksum = "0c2cfd7bf8a6017ddaa4e32ffe7403d547790db06bd171c1c53926faab501623"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
"clap_derive",
|
||||
@@ -393,9 +393,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.5.48"
|
||||
version = "4.5.50"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9"
|
||||
checksum = "0a4c05b9e80c5ccd3a7ef080ad7b6ba7d6fc00a985b8b157197075677c82c7a0"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
@@ -405,9 +405,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "clap_derive"
|
||||
version = "4.5.47"
|
||||
version = "4.5.49"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c"
|
||||
checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
@@ -626,7 +626,7 @@ version = "0.28.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"crossterm_winapi",
|
||||
"mio",
|
||||
"parking_lot",
|
||||
@@ -643,7 +643,7 @@ version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"crossterm_winapi",
|
||||
"derive_more",
|
||||
"document-features",
|
||||
@@ -836,9 +836,9 @@ checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921"
|
||||
|
||||
[[package]]
|
||||
name = "document-features"
|
||||
version = "0.2.11"
|
||||
version = "0.2.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d"
|
||||
checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
|
||||
dependencies = [
|
||||
"litrs",
|
||||
]
|
||||
@@ -963,12 +963,6 @@ version = "1.0.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
||||
|
||||
[[package]]
|
||||
name = "foldhash"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
|
||||
|
||||
[[package]]
|
||||
name = "foldhash"
|
||||
version = "0.2.0"
|
||||
@@ -1156,11 +1150,6 @@ name = "hashbrown"
|
||||
version = "0.15.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"equivalent",
|
||||
"foldhash 0.1.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
@@ -1170,7 +1159,7 @@ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"equivalent",
|
||||
"foldhash 0.2.0",
|
||||
"foldhash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1470,9 +1459,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "indoc"
|
||||
version = "2.0.6"
|
||||
version = "2.0.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
|
||||
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
|
||||
dependencies = [
|
||||
"rustversion",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "inline"
|
||||
@@ -1508,17 +1500,6 @@ dependencies = [
|
||||
"syn 2.0.106",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "io-uring"
|
||||
version = "0.7.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "iri-string"
|
||||
version = "0.7.8"
|
||||
@@ -1593,7 +1574,7 @@ dependencies = [
|
||||
"hashbrown 0.16.0",
|
||||
"portable-atomic",
|
||||
"portable-atomic-util",
|
||||
"thiserror 2.0.16",
|
||||
"thiserror 2.0.17",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1635,18 +1616,18 @@ version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"libc",
|
||||
"redox_syscall",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "line-clipping"
|
||||
version = "0.3.3"
|
||||
version = "0.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "51a1679740111eb63b7b4cb3c97b1d5d9f82e142292a25edcfdb4120a48b3880"
|
||||
checksum = "b9bd35dcd25f8578944c44cd75649d6487d74cf895002f6d86613164f2635b72"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1678,9 +1659,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
|
||||
|
||||
[[package]]
|
||||
name = "litrs"
|
||||
version = "0.4.2"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed"
|
||||
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
@@ -1700,11 +1681,11 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
|
||||
|
||||
[[package]]
|
||||
name = "lru"
|
||||
version = "0.16.0"
|
||||
version = "0.16.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86ea4e65087ff52f3862caff188d489f1fab49a0cb09e01b2e3f1a617b10aaed"
|
||||
checksum = "96051b46fc183dc9cd4a223960ef37b9af631b55191852a8274bfef064cda20f"
|
||||
dependencies = [
|
||||
"hashbrown 0.15.5",
|
||||
"hashbrown 0.16.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1809,7 +1790,7 @@ version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"cfg-if",
|
||||
"cfg_aliases",
|
||||
"libc",
|
||||
@@ -1907,9 +1888,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "octocrab"
|
||||
version = "0.44.1"
|
||||
version = "0.47.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "86996964f8b721067b6ed238aa0ccee56ecad6ee5e714468aa567992d05d2b91"
|
||||
checksum = "0860f9250b6db66c5a4b46e00b381f063c58ad06a90f95f9ef701dd8679bb2c6"
|
||||
dependencies = [
|
||||
"arc-swap",
|
||||
"async-trait",
|
||||
@@ -2073,7 +2054,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"thiserror 2.0.16",
|
||||
"thiserror 2.0.17",
|
||||
"ucd-trie",
|
||||
]
|
||||
|
||||
@@ -2523,7 +2504,7 @@ name = "ratatui-core"
|
||||
version = "0.1.0-beta.0"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"compact_str",
|
||||
"document-features",
|
||||
"hashbrown 0.16.0",
|
||||
@@ -2537,7 +2518,7 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_json",
|
||||
"strum",
|
||||
"thiserror 2.0.16",
|
||||
"thiserror 2.0.17",
|
||||
"unicode-segmentation",
|
||||
"unicode-truncate",
|
||||
"unicode-width",
|
||||
@@ -2600,7 +2581,7 @@ dependencies = [
|
||||
name = "ratatui-widgets"
|
||||
version = "0.3.0-beta.0"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"color-eyre",
|
||||
"crossterm 0.29.0",
|
||||
"document-features",
|
||||
@@ -2655,7 +2636,7 @@ version = "0.5.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2771,11 +2752,11 @@ version = "0.38.44"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys 0.4.15",
|
||||
"windows-sys 0.52.0",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2784,7 +2765,7 @@ version = "1.0.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys 0.9.4",
|
||||
@@ -2898,7 +2879,7 @@ version = "3.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"core-foundation",
|
||||
"core-foundation-sys",
|
||||
"libc",
|
||||
@@ -2923,18 +2904,28 @@ checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
|
||||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.219"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
|
||||
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
||||
dependencies = [
|
||||
"serde_core",
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_core"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.219"
|
||||
version = "1.0.228"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
|
||||
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -2943,14 +2934,15 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.143"
|
||||
version = "1.0.145"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
|
||||
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
"ryu",
|
||||
"serde",
|
||||
"serde_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3076,7 +3068,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb"
|
||||
dependencies = [
|
||||
"num-bigint",
|
||||
"num-traits",
|
||||
"thiserror 2.0.16",
|
||||
"thiserror 2.0.17",
|
||||
"time",
|
||||
]
|
||||
|
||||
@@ -3291,7 +3283,7 @@ checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"fancy-regex",
|
||||
"filedescriptor",
|
||||
"finl_unicode",
|
||||
@@ -3337,11 +3329,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "2.0.16"
|
||||
version = "2.0.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
|
||||
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
|
||||
dependencies = [
|
||||
"thiserror-impl 2.0.16",
|
||||
"thiserror-impl 2.0.17",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -3357,9 +3349,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "2.0.16"
|
||||
version = "2.0.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
|
||||
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -3439,26 +3431,23 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
version = "1.47.1"
|
||||
version = "1.48.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038"
|
||||
checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
"io-uring",
|
||||
"libc",
|
||||
"mio",
|
||||
"pin-project-lite",
|
||||
"slab",
|
||||
"socket2",
|
||||
"tokio-macros",
|
||||
"windows-sys 0.59.0",
|
||||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-macros"
|
||||
version = "2.5.0"
|
||||
version = "2.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
|
||||
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -3578,7 +3567,7 @@ version = "0.6.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"bytes",
|
||||
"futures-util",
|
||||
"http",
|
||||
@@ -3707,9 +3696,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
||||
|
||||
[[package]]
|
||||
name = "trybuild"
|
||||
version = "1.0.111"
|
||||
version = "1.0.112"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0ded9fdb81f30a5708920310bfcd9ea7482ff9cba5f54601f7a19a877d5c2392"
|
||||
checksum = "4d66678374d835fe847e0dc8348fde2ceb5be4a7ec204437d8367f0d8df266a5"
|
||||
dependencies = [
|
||||
"dissimilar",
|
||||
"glob",
|
||||
@@ -3758,9 +3747,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "unicode-width"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c"
|
||||
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
|
||||
|
||||
[[package]]
|
||||
name = "untrusted"
|
||||
@@ -4072,7 +4061,7 @@ version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
|
||||
dependencies = [
|
||||
"windows-sys 0.52.0",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -4089,7 +4078,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
|
||||
dependencies = [
|
||||
"windows-implement",
|
||||
"windows-interface",
|
||||
"windows-link",
|
||||
"windows-link 0.1.3",
|
||||
"windows-result",
|
||||
"windows-strings",
|
||||
]
|
||||
@@ -4122,13 +4111,19 @@ version = "0.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
|
||||
|
||||
[[package]]
|
||||
name = "windows-link"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
||||
|
||||
[[package]]
|
||||
name = "windows-result"
|
||||
version = "0.3.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
|
||||
dependencies = [
|
||||
"windows-link",
|
||||
"windows-link 0.1.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -4137,7 +4132,7 @@ version = "0.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
|
||||
dependencies = [
|
||||
"windows-link",
|
||||
"windows-link 0.1.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -4167,6 +4162,15 @@ dependencies = [
|
||||
"windows-targets 0.53.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.61.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
||||
dependencies = [
|
||||
"windows-link 0.2.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.52.6"
|
||||
@@ -4189,7 +4193,7 @@ version = "0.53.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91"
|
||||
dependencies = [
|
||||
"windows-link",
|
||||
"windows-link 0.1.3",
|
||||
"windows_aarch64_gnullvm 0.53.0",
|
||||
"windows_aarch64_msvc 0.53.0",
|
||||
"windows_i686_gnu 0.53.0",
|
||||
@@ -4311,7 +4315,7 @@ version = "0.39.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -29,7 +29,7 @@ rust-version = "1.85.0"
|
||||
|
||||
[workspace.dependencies]
|
||||
anstyle = "1"
|
||||
bitflags = "2.9"
|
||||
bitflags = "2.10"
|
||||
clap = { version = "4.5", features = ["derive"] }
|
||||
color-eyre = "0.6"
|
||||
compact_str = { version = "0.9", default-features = false }
|
||||
@@ -45,7 +45,7 @@ itertools = { version = "0.14", default-features = false, features = ["use_alloc
|
||||
kasuari = { version = "0.4", default-features = false }
|
||||
line-clipping = "0.3"
|
||||
lru = "0.16"
|
||||
octocrab = "0.44"
|
||||
octocrab = "0.47"
|
||||
palette = "0.7"
|
||||
pretty_assertions = "1"
|
||||
rand = "0.9"
|
||||
@@ -74,7 +74,7 @@ trybuild = "1"
|
||||
unicode-segmentation = "1"
|
||||
unicode-truncate = { version = "2", default-features = false }
|
||||
# See <https://github.com/ratatui/ratatui/issues/1271> for information about why we pin unicode-width
|
||||
unicode-width = ">=0.2.0, <=0.2.1"
|
||||
unicode-width = ">=0.2.0, <=0.2.2"
|
||||
|
||||
# Improve benchmark consistency
|
||||
[profile.bench]
|
||||
|
||||
@@ -5,7 +5,7 @@ This file documents current and past maintainers.
|
||||
- [orhun](https://github.com/orhun)
|
||||
- [joshka](https://github.com/joshka)
|
||||
- [kdheepak](https://github.com/kdheepak)
|
||||
- [Valentin271](https://github.com/Valentin271)
|
||||
- [j-g00da](https://github.com/j-g00da)
|
||||
|
||||
## Past Maintainers
|
||||
|
||||
@@ -13,3 +13,4 @@ This file documents current and past maintainers.
|
||||
- [mindoodoo](https://github.com/mindoodoo)
|
||||
- [sayanarijit](https://github.com/sayanarijit)
|
||||
- [EdJoPaTo](https://github.com/EdJoPaTo)
|
||||
- [Valentin271](https://github.com/Valentin271)
|
||||
|
||||
21
cliff.toml
21
cliff.toml
@@ -61,6 +61,18 @@ body = """
|
||||
{%- endfor -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if not release_link -%}
|
||||
{% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
|
||||
### New Contributors
|
||||
{%- endif %}\
|
||||
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
|
||||
* @{{ contributor.username }} made their first contribution
|
||||
{%- if contributor.pr_number %} in \
|
||||
[#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
|
||||
{%- endif %}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
{% if version %}
|
||||
{% if previous.version %}
|
||||
{%- if release_link -%}
|
||||
@@ -104,10 +116,15 @@ commit_preprocessors = [
|
||||
{ pattern = '(Clarify README.md)', replace = "docs(readme): ${1}" },
|
||||
{ pattern = '(Update README.md)', replace = "docs(readme): ${1}" },
|
||||
{ pattern = '(fix typos|Fix typos)', replace = "fix: ${1}" },
|
||||
# a small typo that squeaked through and which would otherwise trigger the typos linter.
|
||||
# Typos that squeaked through and which would otherwise trigger the typos linter.
|
||||
# Regex obsfucation is to avoid triggering the linter in this file until there's a per file config
|
||||
# See https://github.com/crate-ci/typos/issues/724
|
||||
{ pattern = '\<[d]eatil\>', replace = "detail" },
|
||||
{ pattern = '\<[f]eatuers\>', replace = "features" },
|
||||
{ pattern = '\<[s]pecically\>', replace = "specially" },
|
||||
{ pattern = '\<[g]ague\>', replace = "gauge" },
|
||||
{ pattern = '\<[i]ntructions\>', replace = "instructions" },
|
||||
{ pattern = '\<[i]mplementated\>', replace = "implemented" },
|
||||
]
|
||||
# regex for parsing and grouping commits
|
||||
commit_parsers = [
|
||||
@@ -121,12 +138,14 @@ commit_parsers = [
|
||||
{ message = "^style", group = "<!-- 05 -->Styling" },
|
||||
{ message = "^test", group = "<!-- 06 -->Testing" },
|
||||
{ message = "^chore\\(release\\): prepare for", skip = true },
|
||||
{ message = "^chore: release", skip = true },
|
||||
{ message = "^chore\\(pr\\)", skip = true },
|
||||
{ message = "^chore\\(pull\\)", skip = true },
|
||||
{ message = "^chore\\(deps\\)", skip = true },
|
||||
{ message = "^chore\\(changelog\\)", skip = true },
|
||||
{ message = "^[cC]hore", group = "<!-- 07 -->Miscellaneous Tasks" },
|
||||
{ message = "^build\\(deps\\)", skip = true },
|
||||
{ message = "^build\\(release\\)", skip = true },
|
||||
{ message = "^build", group = "<!-- 08 -->Build" },
|
||||
{ body = ".*security", group = "<!-- 09 -->Security" },
|
||||
{ message = "^ci", group = "<!-- 10 -->Continuous Integration" },
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# Examples
|
||||
|
||||
This folder contains examples that are more application focused.
|
||||
There are also [widget examples] in `ratatui-widgets`.
|
||||
|
||||
> [!TIP]
|
||||
> There are also [widget examples] in `ratatui-widgets`.
|
||||
|
||||
[widget examples]: ../ratatui-widgets/examples
|
||||
|
||||
@@ -11,8 +13,9 @@ You can run these examples using:
|
||||
cargo run -p example-name
|
||||
```
|
||||
|
||||
This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead
|
||||
of the `main` branch for code which is guaranteed to work with the released ratatui version.
|
||||
> [!NOTE]
|
||||
> This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead
|
||||
> of the `main` branch for code which is guaranteed to work with the released Ratatui version.
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
|
||||
@@ -130,7 +130,7 @@ impl From<i16> for Spacing {
|
||||
///
|
||||
/// When the layout is computed, the result is cached in a thread-local cache, so that subsequent
|
||||
/// calls with the same parameters are faster. The cache is a `LruCache`, and the size of the cache
|
||||
/// can be configured using [`Layout::init_cache()`].
|
||||
/// can be configured using [`Layout::init_cache()`] when the `layout-cache` feature is enabled.
|
||||
///
|
||||
/// # Construction
|
||||
///
|
||||
@@ -203,8 +203,8 @@ impl Layout {
|
||||
/// on my laptop's terminal (171+51 = 222) and doubling it for good measure and then adding a
|
||||
/// bit more to make it a round number. This gives enough entries to store a layout for every
|
||||
/// row and every column, twice over, which should be enough for most apps. For those that need
|
||||
/// more, the cache size can be set with [`Layout::init_cache()`].
|
||||
/// This const is unused if layout cache is disabled.
|
||||
/// more, the cache size can be set with `Layout::init_cache()` (requires the `layout-cache`
|
||||
/// feature).
|
||||
#[cfg(feature = "layout-cache")]
|
||||
pub const DEFAULT_CACHE_SIZE: usize = 500;
|
||||
|
||||
@@ -636,8 +636,8 @@ impl Layout {
|
||||
///
|
||||
/// This method stores the result of the computation in a thread-local cache keyed on the layout
|
||||
/// and area, so that subsequent calls with the same parameters are faster. The cache is a
|
||||
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default, if the cache
|
||||
/// is initialized with the [`Layout::init_cache()`] grows until the initialized cache size.
|
||||
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default. If the cache
|
||||
/// is initialized with [`Layout::init_cache()`], it grows until the initialized cache size.
|
||||
///
|
||||
/// There is a helper method that can be used to split the whole area into smaller ones based on
|
||||
/// the layout: [`Layout::areas()`]. That method is a shortcut for calling this method. It
|
||||
@@ -673,8 +673,8 @@ impl Layout {
|
||||
///
|
||||
/// This method stores the result of the computation in a thread-local cache keyed on the layout
|
||||
/// and area, so that subsequent calls with the same parameters are faster. The cache is a
|
||||
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default, if the cache
|
||||
/// is initialized with the [`Layout::init_cache()`] grows until the initialized cache size.
|
||||
/// `LruCache`, and grows until [`Self::DEFAULT_CACHE_SIZE`] is reached by default. If the cache
|
||||
/// is initialized with [`Layout::init_cache()`], it grows until the initialized cache size.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
||||
@@ -224,7 +224,7 @@ impl Rect {
|
||||
|
||||
/// Returns a new `Rect` outside the current one, with the given margin applied on each side.
|
||||
///
|
||||
/// If the margin causes the `Rect`'s bounds to outsdie the range of a `u16`, the `Rect` will
|
||||
/// If the margin causes the `Rect`'s bounds to be outside the range of a `u16`, the `Rect` will
|
||||
/// be truncated to keep the bounds within `u16`. This will cause the size of the `Rect` to
|
||||
/// change.
|
||||
///
|
||||
|
||||
@@ -655,8 +655,8 @@ mod tests {
|
||||
"abcdef0", // 7 chars is not a color
|
||||
" bcdefa", // doesn't start with a '#'
|
||||
"#abcdef00", // too many chars
|
||||
"#1🦀2", // len 7 but on char boundaries shouldnt panic
|
||||
"resett", // typo
|
||||
"#1🦀2", // len 7 but on char boundaries shouldn't panic
|
||||
"resets", // typo
|
||||
"lightblackk", // typo
|
||||
];
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ pub enum MergeStrategy {
|
||||
///
|
||||
/// The following diagram illustrates how this would apply to several overlapping blocks where
|
||||
/// the thick bordered blocks are rendered last, merging the previous symbols into a single
|
||||
/// composite character. All combindations of the plain and thick segments exist, so these
|
||||
/// composite character. All combinations of the plain and thick segments exist, so these
|
||||
/// symbols can be merged into a single character:
|
||||
///
|
||||
/// ```text
|
||||
@@ -264,7 +264,7 @@ pub enum MergeStrategy {
|
||||
/// assert_eq!(strategy.merge("┃", "═"), "╬");
|
||||
/// assert_eq!(strategy.merge("═", "┃"), "╋");
|
||||
///
|
||||
/// // combindations of double with plain that don't exist are merged based on the second symbol
|
||||
/// // combinations of double with plain that don't exist are merged based on the second symbol
|
||||
/// assert_eq!(strategy.merge("┐", "╔"), "╦");
|
||||
/// assert_eq!(strategy.merge("╔", "┐"), "┬");
|
||||
/// ```
|
||||
|
||||
@@ -203,6 +203,40 @@ where
|
||||
}
|
||||
|
||||
/// Get a Frame object which provides a consistent view into the terminal state for rendering.
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// This exists to support more advanced use cases. Most cases should be fine using
|
||||
/// [`Terminal::draw`].
|
||||
///
|
||||
/// [`Terminal::get_frame`] should be used when you need direct access to the frame buffer
|
||||
/// outside of draw closure, for example:
|
||||
///
|
||||
/// - Unit testing widgets
|
||||
/// - Buffer state inspection
|
||||
/// - Cursor manipulation
|
||||
/// - Multiple rendering passes/Buffer Manipulation
|
||||
/// - Custom frame lifecycle management
|
||||
/// - Buffer exporting
|
||||
///
|
||||
/// # Example
|
||||
///
|
||||
/// Getting the buffer and asserting on some cells after rendering a widget.
|
||||
///
|
||||
/// ```rust,ignore
|
||||
/// use ratatui::{backend::TestBackend, Terminal};
|
||||
/// use ratatui::widgets::Paragraph;
|
||||
/// let backend = TestBackend::new(30, 5);
|
||||
/// let mut terminal = Terminal::new(backend).unwrap();
|
||||
/// {
|
||||
/// let mut frame = terminal.get_frame();
|
||||
/// frame.render_widget(Paragraph::new("Hello"), frame.area());
|
||||
/// }
|
||||
/// // When not using `draw`, present the buffer manually:
|
||||
/// terminal.flush().unwrap();
|
||||
/// terminal.swap_buffers();
|
||||
/// terminal.backend_mut().flush().unwrap();
|
||||
/// ```
|
||||
pub const fn get_frame(&mut self) -> Frame<'_> {
|
||||
let count = self.frame_count;
|
||||
Frame {
|
||||
|
||||
148
ratatui-core/tests/rect.rs
Normal file
148
ratatui-core/tests/rect.rs
Normal file
@@ -0,0 +1,148 @@
|
||||
//! Integration tests for Rect operations visualized with buffers.
|
||||
|
||||
use ratatui_core::buffer::Buffer;
|
||||
use ratatui_core::layout::{Margin, Offset, Rect};
|
||||
use ratatui_core::widgets::Widget;
|
||||
|
||||
/// A minimal widget that fills its entire area with the given symbol.
|
||||
struct Filled<'a> {
|
||||
symbol: &'a str,
|
||||
}
|
||||
|
||||
impl Widget for Filled<'_> {
|
||||
fn render(self, area: Rect, buf: &mut Buffer) {
|
||||
for y in area.top()..area.bottom() {
|
||||
for x in area.left()..area.right() {
|
||||
if let Some(cell) = buf.cell_mut((x, y)) {
|
||||
cell.set_symbol(self.symbol);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn inner() {
|
||||
let base = Rect::new(2, 2, 10, 6);
|
||||
let inner = base.inner(Margin::new(2, 1));
|
||||
|
||||
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
|
||||
Filled { symbol: "█" }.render(base, &mut buf);
|
||||
Filled { symbol: "░" }.render(inner, &mut buf);
|
||||
|
||||
let expected = Buffer::with_lines([
|
||||
" ",
|
||||
" ",
|
||||
" ██████████ ",
|
||||
" ██░░░░░░██ ",
|
||||
" ██░░░░░░██ ",
|
||||
" ██░░░░░░██ ",
|
||||
" ██░░░░░░██ ",
|
||||
" ██████████ ",
|
||||
" ",
|
||||
" ",
|
||||
]);
|
||||
assert_eq!(buf, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn outer() {
|
||||
let base = Rect::new(4, 3, 6, 4);
|
||||
let outer = base.outer(Margin::new(2, 1));
|
||||
|
||||
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
|
||||
Filled { symbol: "░" }.render(outer, &mut buf);
|
||||
Filled { symbol: "█" }.render(base, &mut buf);
|
||||
|
||||
let expected = Buffer::with_lines([
|
||||
" ",
|
||||
" ",
|
||||
" ░░░░░░░░░░ ",
|
||||
" ░░██████░░ ",
|
||||
" ░░██████░░ ",
|
||||
" ░░██████░░ ",
|
||||
" ░░██████░░ ",
|
||||
" ░░░░░░░░░░ ",
|
||||
" ",
|
||||
" ",
|
||||
]);
|
||||
assert_eq!(buf, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn offset() {
|
||||
let base = Rect::new(2, 2, 5, 3);
|
||||
let moved = base.offset(Offset { x: 4, y: 2 });
|
||||
|
||||
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
|
||||
Filled { symbol: "░" }.render(base, &mut buf);
|
||||
Filled { symbol: "█" }.render(moved, &mut buf);
|
||||
|
||||
let expected = Buffer::with_lines([
|
||||
" ",
|
||||
" ",
|
||||
" ░░░░░ ",
|
||||
" ░░░░░ ",
|
||||
" ░░░░█████ ",
|
||||
" █████ ",
|
||||
" █████ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
]);
|
||||
assert_eq!(buf, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn intersection() {
|
||||
let a = Rect::new(2, 2, 6, 4);
|
||||
let b = Rect::new(5, 3, 6, 4);
|
||||
let inter = a.intersection(b);
|
||||
|
||||
let mut buf = Buffer::empty(Rect::new(0, 0, 15, 10));
|
||||
Filled { symbol: "░" }.render(a, &mut buf);
|
||||
Filled { symbol: "▒" }.render(b, &mut buf);
|
||||
Filled { symbol: "█" }.render(inter, &mut buf);
|
||||
|
||||
let expected = Buffer::with_lines([
|
||||
" ",
|
||||
" ",
|
||||
" ░░░░░░ ",
|
||||
" ░░░███▒▒▒ ",
|
||||
" ░░░███▒▒▒ ",
|
||||
" ░░░███▒▒▒ ",
|
||||
" ▒▒▒▒▒▒ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
]);
|
||||
assert_eq!(buf, expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn clamp() {
|
||||
let area = Rect::new(2, 2, 10, 6);
|
||||
let rect = Rect::new(8, 5, 8, 4);
|
||||
let clamped = rect.clamp(area);
|
||||
|
||||
let mut buf = Buffer::empty(Rect::new(0, 0, 20, 12));
|
||||
Filled { symbol: "█" }.render(area, &mut buf);
|
||||
Filled { symbol: "▒" }.render(rect, &mut buf);
|
||||
Filled { symbol: "░" }.render(clamped, &mut buf);
|
||||
|
||||
let expected = Buffer::with_lines([
|
||||
" ",
|
||||
" ",
|
||||
" ██████████ ",
|
||||
" ██████████ ",
|
||||
" ██░░░░░░░░ ",
|
||||
" ██░░░░░░░░▒▒▒▒ ",
|
||||
" ██░░░░░░░░▒▒▒▒ ",
|
||||
" ██░░░░░░░░▒▒▒▒ ",
|
||||
" ▒▒▒▒▒▒▒▒ ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
]);
|
||||
assert_eq!(buf, expected);
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
See the [top-level changelog](../CHANGELOG.md) for the latest changes.
|
||||
|
||||
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).
|
||||
This file is obsolete as of 0.30.0 release. [\*](https://github.com/ratatui/ratatui/pull/1652)
|
||||
|
||||
## [0.6.0](https://github.com/ratatui/ratatui-macros/compare/v0.5.0...v0.6.0) - 2024-10-21
|
||||
|
||||
|
||||
@@ -50,3 +50,8 @@ error: argument never used
|
||||
| ------- ^^^^^^^^^^^^^ argument never used
|
||||
| |
|
||||
| formatting specifier missing
|
||||
|
|
||||
help: format specifiers use curly braces, consider adding a format specifier
|
||||
|
|
||||
19 | let _ = span!("hello{}", "hello world");
|
||||
| ++
|
||||
|
||||
101
ratatui-widgets/examples/README.md
Normal file
101
ratatui-widgets/examples/README.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Widget Examples
|
||||
|
||||
This folder contains minimal examples for Ratatui widgets.
|
||||
There are meant to provide code snippets that can be copy-pasted into your
|
||||
application.
|
||||
|
||||
> [!TIP]
|
||||
> There are also [application examples] in the top-level `examples` folder.
|
||||
|
||||
[application examples]: ../../examples
|
||||
|
||||
You can run these examples using:
|
||||
|
||||
```shell
|
||||
cargo run -p ratatui-widgets --example example-name
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> This folder might use unreleased code. Consider viewing the examples in the `latest` branch instead
|
||||
> of the `main` branch for code which is guaranteed to work with the released Ratatui version.
|
||||
|
||||
## Barchart (grouped)
|
||||
|
||||
![Barchart (grouped)][barchart-grouped.gif]
|
||||
|
||||
## Barchart
|
||||
|
||||
![Barchart][barchart.gif]
|
||||
|
||||
## Block
|
||||
|
||||
![Block][block.gif]
|
||||
|
||||
## Calendar
|
||||
|
||||
![Calendar][calendar.gif]
|
||||
|
||||
## Canvas
|
||||
|
||||
![Canvas][canvas.gif]
|
||||
|
||||
## Chart
|
||||
|
||||
![Chart][chart.gif]
|
||||
|
||||
## Collapsed Borders
|
||||
|
||||
![Collapsed Borders][collapsed-borders.gif]
|
||||
|
||||
## Gauge
|
||||
|
||||
![Gauge][gauge.gif]
|
||||
|
||||
## Line Gauge
|
||||
|
||||
![Line Gauge][line-gauge.gif]
|
||||
|
||||
## List
|
||||
|
||||
![List][list.gif]
|
||||
|
||||
## Logo
|
||||
|
||||
![Logo][logo.gif]
|
||||
|
||||
## Paragraph
|
||||
|
||||
![Paragraph][paragraph.gif]
|
||||
|
||||
## Scrollbar
|
||||
|
||||
![Scrollbar][scrollbar.gif]
|
||||
|
||||
## Sparkline
|
||||
|
||||
![Sparkline][sparkline.gif]
|
||||
|
||||
## Table
|
||||
|
||||
![Table][table.gif]
|
||||
|
||||
## Tabs
|
||||
|
||||
![Tabs][tabs.gif]
|
||||
|
||||
[barchart-grouped.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/barchart-grouped.gif?raw=true
|
||||
[barchart.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/barchart.gif?raw=true
|
||||
[block.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/block.gif?raw=true
|
||||
[calendar.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/calendar.gif?raw=true
|
||||
[canvas.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/canvas.gif?raw=true
|
||||
[chart.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/chart.gif?raw=true
|
||||
[collapsed-borders.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/collapsed-borders.gif?raw=true
|
||||
[gauge.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/gauge.gif?raw=true
|
||||
[line-gauge.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/line-gauge.gif?raw=true
|
||||
[list.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/list.gif?raw=true
|
||||
[logo.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/logo.gif?raw=true
|
||||
[paragraph.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/paragraph.gif?raw=true
|
||||
[scrollbar.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/scrollbar.gif?raw=true
|
||||
[sparkline.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/sparkline.gif?raw=true
|
||||
[table.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/table.gif?raw=true
|
||||
[tabs.gif]: https://github.com/ratatui/ratatui/blob/images/widget-examples/tabs.gif?raw=true
|
||||
12
ratatui-widgets/examples/vhs/barchart-grouped.tape
Normal file
12
ratatui-widgets/examples/vhs/barchart-grouped.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/barchart-grouped.tape`
|
||||
Output "target/barchart-grouped.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 1000
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example barchart-grouped"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 1s
|
||||
12
ratatui-widgets/examples/vhs/barchart.tape
Normal file
12
ratatui-widgets/examples/vhs/barchart.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/barchart.tape`
|
||||
Output "target/barchart.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 600
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example barchart"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 1s
|
||||
12
ratatui-widgets/examples/vhs/block.tape
Normal file
12
ratatui-widgets/examples/vhs/block.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/block.tape`
|
||||
Output "target/block.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 1200
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example block"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Show
|
||||
Sleep 2s
|
||||
12
ratatui-widgets/examples/vhs/calendar.tape
Normal file
12
ratatui-widgets/examples/vhs/calendar.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/calendar.tape`
|
||||
Output "target/calendar.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 800
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example calendar"
|
||||
Enter
|
||||
Sleep 3s
|
||||
Show
|
||||
Sleep 5s
|
||||
13
ratatui-widgets/examples/vhs/canvas.tape
Normal file
13
ratatui-widgets/examples/vhs/canvas.tape
Normal file
@@ -0,0 +1,13 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/canvas.tape`
|
||||
Output "target/canvas.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set FontSize 12
|
||||
Set Width 1200
|
||||
Set Height 800
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example canvas"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Show
|
||||
Sleep 5s
|
||||
12
ratatui-widgets/examples/vhs/chart.tape
Normal file
12
ratatui-widgets/examples/vhs/chart.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/chart.tape`
|
||||
Output "target/chart.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 800
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example chart"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 5s
|
||||
@@ -1,5 +1,5 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./examples/vhs/gauge.tape`
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/collapsed-borders.tape`
|
||||
Output "target/collapsed-borders.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
|
||||
12
ratatui-widgets/examples/vhs/gauge.tape
Normal file
12
ratatui-widgets/examples/vhs/gauge.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/gauge.tape`
|
||||
Output "target/gauge.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 850
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example gauge"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Show
|
||||
Sleep 5s
|
||||
12
ratatui-widgets/examples/vhs/line-gauge.tape
Normal file
12
ratatui-widgets/examples/vhs/line-gauge.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/line-gauge.tape`
|
||||
Output "target/line-gauge.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 850
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example line-gauge"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Show
|
||||
Sleep 5s
|
||||
20
ratatui-widgets/examples/vhs/list.tape
Normal file
20
ratatui-widgets/examples/vhs/list.tape
Normal file
@@ -0,0 +1,20 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/list.tape`
|
||||
Output "target/list.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 612
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example list"
|
||||
Enter
|
||||
Sleep 10s
|
||||
Show
|
||||
Sleep 2s
|
||||
Down@1.5s 3
|
||||
Sleep 1.5s
|
||||
Down@1.5s 3
|
||||
Sleep 1.5s
|
||||
Up@1s 1
|
||||
Sleep 1s
|
||||
Up@1s 4
|
||||
Sleep 2s
|
||||
14
ratatui-widgets/examples/vhs/logo.tape
Normal file
14
ratatui-widgets/examples/vhs/logo.tape
Normal file
@@ -0,0 +1,14 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/logo.tape`
|
||||
Output "target/logo.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 550
|
||||
Set Height 220
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example logo"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Show
|
||||
Sleep 2s
|
||||
Hide
|
||||
Escape
|
||||
12
ratatui-widgets/examples/vhs/paragraph.tape
Normal file
12
ratatui-widgets/examples/vhs/paragraph.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/paragraph.tape`
|
||||
Output "target/paragraph.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 600
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example paragraph"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 5s
|
||||
17
ratatui-widgets/examples/vhs/scrollbar.tape
Normal file
17
ratatui-widgets/examples/vhs/scrollbar.tape
Normal file
@@ -0,0 +1,17 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/scrollbar.tape`
|
||||
Output "target/scrollbar.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 600
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example scrollbar"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 2s
|
||||
Right@1s 4
|
||||
Sleep 1s
|
||||
Left@1s 1
|
||||
Down@1s 3
|
||||
Sleep 2s
|
||||
12
ratatui-widgets/examples/vhs/sparkline.tape
Normal file
12
ratatui-widgets/examples/vhs/sparkline.tape
Normal file
@@ -0,0 +1,12 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/sparkline.tape`
|
||||
Output "target/sparkline.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 600
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example sparkline"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 5s
|
||||
17
ratatui-widgets/examples/vhs/table.tape
Normal file
17
ratatui-widgets/examples/vhs/table.tape
Normal file
@@ -0,0 +1,17 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/table.tape`
|
||||
Output "target/table.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1400
|
||||
Set Height 768
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example table"
|
||||
Enter
|
||||
Sleep 1s
|
||||
Show
|
||||
Sleep 2s
|
||||
Set TypingSpeed 1s
|
||||
Down 3
|
||||
Sleep 1s
|
||||
Right 3
|
||||
Sleep 2s
|
||||
15
ratatui-widgets/examples/vhs/tabs.tape
Normal file
15
ratatui-widgets/examples/vhs/tabs.tape
Normal file
@@ -0,0 +1,15 @@
|
||||
# This is a vhs script. See https://github.com/charmbracelet/vhs for more info.
|
||||
# To run this script, install vhs and run `vhs ./ratatui-widgets/examples/vhs/tabs.tape`
|
||||
Output "target/tabs.gif"
|
||||
Set Theme "Aardvark Blue"
|
||||
Set Width 1200
|
||||
Set Height 368
|
||||
Hide
|
||||
Type "cargo run -p ratatui-widgets --example tabs"
|
||||
Enter
|
||||
Sleep 2s
|
||||
Show
|
||||
Sleep 1s
|
||||
Right@2.5s 3
|
||||
Left@2.5s 3
|
||||
Sleep 2s
|
||||
@@ -9,6 +9,7 @@ pub mod main {
|
||||
pub mod rect;
|
||||
pub mod sparkline;
|
||||
pub mod table;
|
||||
pub mod text;
|
||||
}
|
||||
pub use main::*;
|
||||
|
||||
@@ -22,5 +23,6 @@ criterion::criterion_main!(
|
||||
rect::benches,
|
||||
sparkline::benches,
|
||||
table::benches,
|
||||
text::benches,
|
||||
constraints::benches,
|
||||
);
|
||||
|
||||
63
ratatui/benches/main/text.rs
Normal file
63
ratatui/benches/main/text.rs
Normal file
@@ -0,0 +1,63 @@
|
||||
use criterion::{BatchSize, Bencher, Criterion, criterion_group};
|
||||
use ratatui::buffer::Buffer;
|
||||
use ratatui::layout::Rect;
|
||||
use ratatui::style::Stylize;
|
||||
use ratatui::text::{Line, Text};
|
||||
use ratatui::widgets::Widget;
|
||||
|
||||
/// Benchmark for rendering a text.
|
||||
fn text(c: &mut Criterion) {
|
||||
let mut group = c.benchmark_group("text");
|
||||
for (width, height) in [
|
||||
(200, 50), // 1080p fullscreen area with medium font.
|
||||
(1, u16::MAX), // Heavily vertically skewed area.
|
||||
(u16::MAX, 1), // Heavily horizontally skewed area.
|
||||
(4096, 4096), // Max sized area for benchmarking (~sqrt(u16::MAX) * 16, ~768 MB buffer).
|
||||
] {
|
||||
let buffer_size = Rect::new(0, 0, width, height);
|
||||
|
||||
// Generates sample text content scaled to the given rendering area.
|
||||
// The number of repeated text blocks is roughly proportional to the area size.
|
||||
// - Small areas produce a few lines (at least 5 x 1 lines).
|
||||
// - Large areas produce many lines (up to ~5 x 1000 lines).
|
||||
let make_text = |height: u16| {
|
||||
let repeat = (height as usize / 5).clamp(1, 1000);
|
||||
Text::from(
|
||||
(0..repeat)
|
||||
.flat_map(|_| {
|
||||
vec![
|
||||
Line::from("The quick brown fox jumps over the lazy dog. Pack my box with five dozen liquor jugs."),
|
||||
Line::from("🦀 Rustaceans unite! 東京・İstanbul・Sydney・San Francisco・Warsaw 🌏 RustConf連携中!").bold(),
|
||||
Line::from("naïve cafés ☕ serve résumé-ready developers 👩💻🧑🏾💻 testing text rendering engines.").green(),
|
||||
Line::from("ゼロ幅スペース\u{200B}、結合絵文字👨👩👧👦、全角文字ABC、半角abcが混在。").blue(),
|
||||
Line::from("Emoji test: 🙂😇🤖👩🏻🎨🧑🚀 — wrapped in a buffer for layout & clipping check.").italic(),
|
||||
]
|
||||
})
|
||||
.collect::<Vec<_>>(),
|
||||
)
|
||||
};
|
||||
|
||||
group.bench_with_input(
|
||||
format!("render/{width}x{height}"),
|
||||
&make_text(height),
|
||||
|b, text| render(b, text, buffer_size),
|
||||
);
|
||||
}
|
||||
group.finish();
|
||||
}
|
||||
|
||||
/// Renders the text into a buffer of the given `size`
|
||||
fn render(bencher: &mut Bencher, text: &Text, size: Rect) {
|
||||
let mut buffer = Buffer::empty(size);
|
||||
// We use `iter_batched` to clone the value in the setup function.
|
||||
// See https://github.com/ratatui/ratatui/pull/377.
|
||||
bencher.iter_batched(
|
||||
|| text.to_owned(),
|
||||
|bench_text| {
|
||||
bench_text.render(buffer.area, &mut buffer);
|
||||
},
|
||||
BatchSize::SmallInput,
|
||||
);
|
||||
}
|
||||
|
||||
criterion_group!(benches, text);
|
||||
Reference in New Issue
Block a user