-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathCargo.toml
More file actions
68 lines (61 loc) · 2.49 KB
/
Copy pathCargo.toml
File metadata and controls
68 lines (61 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# termlens workspace.
#
# `crates/` holds publishable members; `fixtures/` holds deterministic test
# programs that the integration suite spawns inside real PTYs (publish = false).
[workspace]
resolver = "2"
members = ["crates/termlens", "crates/termlens-cli", "fixtures/*"]
[workspace.package]
version = "0.10.1"
edition = "2021"
# Minimum supported Rust version. Checked by the `msrv` CI job, which reads
# this field; bumping it is a minor (not patch) change per our SemVer policy.
#
# 1.85 is dictated by the default `insta` feature's tree (insta -> tempfile ->
# getrandom 0.4). The core library itself only needs what portable-pty/vt100
# need (~1.70); we declare what CI can actually verify with the lockfile.
rust-version = "1.85"
license = "MIT OR Apache-2.0"
repository = "https://github.com/vyncint/termlens"
authors = ["Vyncint Ng <vyncint@icloud.com>"]
[workspace.dependencies]
portable-pty = "0.9"
vt100 = "0.16"
thiserror = "2"
unicode-width = "0.2"
# Needle matching folds both sides to NFC. Terminals draw NFC and NFD
# identically, so without this a test author's needle silently misses text
# the application happened to normalize the other way — a false negative
# invisible in the terminal, in the failure output, and in the diff.
unicode-normalization = "0.1"
# Already in the tree transitively (portable-pty); used directly for one
# kill(2) call behind Terminal::signal.
libc = "0.2"
# zlib, for the `decode` feature: kitty transmits `o=z` compressed, so an
# image cannot be read back off the wire without inflating it first.
miniz_oxide = "0.9"
# The `regex` feature: a pattern over a row of the screen, for the
# expect-style wait and for masking volatile content by shape.
regex = "1"
# The `serde` feature: a Screen as JSON, and back. `rc` because the grid and
# the out-of-band state live behind `Arc`s so a snapshot stays cheap.
serde = { version = "1", features = ["derive", "rc"] }
serde_json = "1"
# Dev / fixture dependencies.
insta = { version = "1.48", features = ["json"] }
anyhow = "1"
crossterm = "0.29"
# The ratatui fixture: the same draw function through the PTY and through
# TestBackend, diffed. 0.30 needs Rust 1.88; the library's MSRV stays 1.85
# and the msrv CI job excludes that one fixture.
ratatui = "0.30"
[workspace.lints.rust]
rust_2018_idioms = { level = "warn", priority = -1 }
unsafe_code = "warn"
unreachable_pub = "warn"
missing_debug_implementations = "warn"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
dbg_macro = "warn"
todo = "warn"
unimplemented = "warn"