+4983
-12
Diff
round #0
+50
.config/config.kdl
+50
.config/config.kdl
···
1
+
scroll_offset 4
2
+
3
+
keybindings {
4
+
Explorer {
5
+
"<q>" Quit // Quit the application
6
+
"<Ctrl-d>" Quit // Another way to quit
7
+
"<Ctrl-c>" Quit // Yet another way to quit
8
+
"<Ctrl-z>" Suspend // Suspend the application
9
+
"<2>" switch-to="TodoList"
10
+
"<3>" switch-to="Inspector"
11
+
f ToggleShowFinished
12
+
x Delete
13
+
t NewTask
14
+
g NewSubGroup
15
+
"<Shift-g>" NewGroup
16
+
j MoveDown
17
+
k MoveUp
18
+
l MoveInto
19
+
h MoveOutOf
20
+
}
21
+
22
+
TodoList {
23
+
"<q>" Quit // Quit the application
24
+
"<Ctrl-d>" Quit // Another way to quit
25
+
"<Ctrl-c>" Quit // Yet another way to quit
26
+
"<Ctrl-z>" Suspend // Suspend the application
27
+
"<1>" switch-to="Explorer"
28
+
"<3>" switch-to="Inspector"
29
+
j MoveDown
30
+
k MoveUp
31
+
}
32
+
33
+
Inspector {
34
+
"<q>" Quit // Quit the application
35
+
"<Ctrl-d>" Quit // Another way to quit
36
+
"<Ctrl-c>" Quit // Yet another way to quit
37
+
"<Ctrl-z>" Suspend // Suspend the application
38
+
"<1>" switch-to="Explorer"
39
+
"<2>" switch-to="TodoList"
40
+
r RandomColor
41
+
n EditName
42
+
c EditColor
43
+
p EditPriority
44
+
u EditDue
45
+
d EditDescription
46
+
f ToggleFinishTask
47
+
t NewTask
48
+
g NewSubGroup
49
+
}
50
+
}
+6
.harper-dictionary.txt
+6
.harper-dictionary.txt
+3987
Cargo.lock
+3987
Cargo.lock
···
1
+
# This file is automatically @generated by Cargo.
2
+
# It is not intended for manual editing.
3
+
version = 4
4
+
5
+
[[package]]
6
+
name = "addr2line"
7
+
version = "0.25.1"
8
+
source = "registry+https://github.com/rust-lang/crates.io-index"
9
+
checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
10
+
dependencies = [
11
+
"gimli",
12
+
]
13
+
14
+
[[package]]
15
+
name = "adler2"
16
+
version = "2.0.1"
17
+
source = "registry+https://github.com/rust-lang/crates.io-index"
18
+
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
19
+
20
+
[[package]]
21
+
name = "aho-corasick"
22
+
version = "1.1.4"
23
+
source = "registry+https://github.com/rust-lang/crates.io-index"
24
+
checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
25
+
dependencies = [
26
+
"memchr",
27
+
]
28
+
29
+
[[package]]
30
+
name = "allocator-api2"
31
+
version = "0.2.21"
32
+
source = "registry+https://github.com/rust-lang/crates.io-index"
33
+
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
34
+
35
+
[[package]]
36
+
name = "anstream"
37
+
version = "0.6.21"
38
+
source = "registry+https://github.com/rust-lang/crates.io-index"
39
+
checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a"
40
+
dependencies = [
41
+
"anstyle",
42
+
"anstyle-parse",
43
+
"anstyle-query",
44
+
"anstyle-wincon",
45
+
"colorchoice",
46
+
"is_terminal_polyfill",
47
+
"utf8parse",
48
+
]
49
+
50
+
[[package]]
51
+
name = "anstyle"
52
+
version = "1.0.13"
53
+
source = "registry+https://github.com/rust-lang/crates.io-index"
54
+
checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78"
55
+
56
+
[[package]]
57
+
name = "anstyle-parse"
58
+
version = "0.2.7"
59
+
source = "registry+https://github.com/rust-lang/crates.io-index"
60
+
checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2"
61
+
dependencies = [
62
+
"utf8parse",
63
+
]
64
+
65
+
[[package]]
66
+
name = "anstyle-query"
67
+
version = "1.1.5"
68
+
source = "registry+https://github.com/rust-lang/crates.io-index"
69
+
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
70
+
dependencies = [
71
+
"windows-sys 0.61.2",
72
+
]
73
+
74
+
[[package]]
75
+
name = "anstyle-wincon"
76
+
version = "3.0.11"
77
+
source = "registry+https://github.com/rust-lang/crates.io-index"
78
+
checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
79
+
dependencies = [
80
+
"anstyle",
81
+
"once_cell_polyfill",
82
+
"windows-sys 0.61.2",
83
+
]
84
+
85
+
[[package]]
86
+
name = "anyhow"
87
+
version = "1.0.102"
88
+
source = "registry+https://github.com/rust-lang/crates.io-index"
89
+
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
90
+
91
+
[[package]]
92
+
name = "arc-swap"
93
+
version = "1.8.2"
94
+
source = "registry+https://github.com/rust-lang/crates.io-index"
95
+
checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5"
96
+
dependencies = [
97
+
"rustversion",
98
+
]
99
+
100
+
[[package]]
101
+
name = "atomic"
102
+
version = "0.6.1"
103
+
source = "registry+https://github.com/rust-lang/crates.io-index"
104
+
checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340"
105
+
dependencies = [
106
+
"bytemuck",
107
+
]
108
+
109
+
[[package]]
110
+
name = "autocfg"
111
+
version = "1.5.0"
112
+
source = "registry+https://github.com/rust-lang/crates.io-index"
113
+
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
114
+
115
+
[[package]]
116
+
name = "backtrace"
117
+
version = "0.3.76"
118
+
source = "registry+https://github.com/rust-lang/crates.io-index"
119
+
checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6"
120
+
dependencies = [
121
+
"addr2line",
122
+
"cfg-if",
123
+
"libc",
124
+
"miniz_oxide",
125
+
"object",
126
+
"rustc-demangle",
127
+
"windows-link 0.2.1",
128
+
]
129
+
130
+
[[package]]
131
+
name = "base64"
132
+
version = "0.22.1"
133
+
source = "registry+https://github.com/rust-lang/crates.io-index"
134
+
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
135
+
136
+
[[package]]
137
+
name = "better-panic"
138
+
version = "0.3.0"
139
+
source = "registry+https://github.com/rust-lang/crates.io-index"
140
+
checksum = "6fa9e1d11a268684cbd90ed36370d7577afb6c62d912ddff5c15fc34343e5036"
141
+
dependencies = [
142
+
"backtrace",
143
+
"console",
144
+
]
145
+
146
+
[[package]]
147
+
name = "bit-set"
148
+
version = "0.5.3"
149
+
source = "registry+https://github.com/rust-lang/crates.io-index"
150
+
checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
151
+
dependencies = [
152
+
"bit-vec",
153
+
]
154
+
155
+
[[package]]
156
+
name = "bit-vec"
157
+
version = "0.6.3"
158
+
source = "registry+https://github.com/rust-lang/crates.io-index"
159
+
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
160
+
161
+
[[package]]
162
+
name = "bitflags"
163
+
version = "1.3.2"
164
+
source = "registry+https://github.com/rust-lang/crates.io-index"
165
+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
166
+
167
+
[[package]]
168
+
name = "bitflags"
169
+
version = "2.11.0"
170
+
source = "registry+https://github.com/rust-lang/crates.io-index"
171
+
checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
172
+
173
+
[[package]]
174
+
name = "block-buffer"
175
+
version = "0.10.4"
176
+
source = "registry+https://github.com/rust-lang/crates.io-index"
177
+
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
178
+
dependencies = [
179
+
"generic-array",
180
+
]
181
+
182
+
[[package]]
183
+
name = "bstr"
184
+
version = "1.12.1"
185
+
source = "registry+https://github.com/rust-lang/crates.io-index"
186
+
checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"
187
+
dependencies = [
188
+
"memchr",
189
+
"regex-automata",
190
+
"serde",
191
+
]
192
+
193
+
[[package]]
194
+
name = "bumpalo"
195
+
version = "3.20.2"
196
+
source = "registry+https://github.com/rust-lang/crates.io-index"
197
+
checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
198
+
199
+
[[package]]
200
+
name = "bytemuck"
201
+
version = "1.25.0"
202
+
source = "registry+https://github.com/rust-lang/crates.io-index"
203
+
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
204
+
205
+
[[package]]
206
+
name = "byteorder"
207
+
version = "1.5.0"
208
+
source = "registry+https://github.com/rust-lang/crates.io-index"
209
+
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
210
+
211
+
[[package]]
212
+
name = "bytes"
213
+
version = "1.11.1"
214
+
source = "registry+https://github.com/rust-lang/crates.io-index"
215
+
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
216
+
217
+
[[package]]
218
+
name = "camino"
219
+
version = "1.2.2"
220
+
source = "registry+https://github.com/rust-lang/crates.io-index"
221
+
checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
222
+
dependencies = [
223
+
"serde_core",
224
+
]
225
+
226
+
[[package]]
227
+
name = "cargo-platform"
228
+
version = "0.3.2"
229
+
source = "registry+https://github.com/rust-lang/crates.io-index"
230
+
checksum = "87a0c0e6148f11f01f32650a2ea02d532b2ad4e81d8bd41e6e565b5adc5e6082"
231
+
dependencies = [
232
+
"serde",
233
+
"serde_core",
234
+
]
235
+
236
+
[[package]]
237
+
name = "cargo_metadata"
238
+
version = "0.23.1"
239
+
source = "registry+https://github.com/rust-lang/crates.io-index"
240
+
checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9"
241
+
dependencies = [
242
+
"camino",
243
+
"cargo-platform",
244
+
"semver",
245
+
"serde",
246
+
"serde_json",
247
+
"thiserror 2.0.18",
248
+
]
249
+
250
+
[[package]]
251
+
name = "castaway"
252
+
version = "0.2.4"
253
+
source = "registry+https://github.com/rust-lang/crates.io-index"
254
+
checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
255
+
dependencies = [
256
+
"rustversion",
257
+
]
258
+
259
+
[[package]]
260
+
name = "cfg-if"
261
+
version = "1.0.4"
262
+
source = "registry+https://github.com/rust-lang/crates.io-index"
263
+
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
264
+
265
+
[[package]]
266
+
name = "cfg_aliases"
267
+
version = "0.2.1"
268
+
source = "registry+https://github.com/rust-lang/crates.io-index"
269
+
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
270
+
271
+
[[package]]
272
+
name = "clap"
273
+
version = "4.5.60"
274
+
source = "registry+https://github.com/rust-lang/crates.io-index"
275
+
checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a"
276
+
dependencies = [
277
+
"clap_builder",
278
+
"clap_derive",
279
+
]
280
+
281
+
[[package]]
282
+
name = "clap_builder"
283
+
version = "4.5.60"
284
+
source = "registry+https://github.com/rust-lang/crates.io-index"
285
+
checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876"
286
+
dependencies = [
287
+
"anstream",
288
+
"anstyle",
289
+
"clap_lex",
290
+
"strsim",
291
+
"terminal_size",
292
+
"unicase",
293
+
"unicode-width",
294
+
]
295
+
296
+
[[package]]
297
+
name = "clap_derive"
298
+
version = "4.5.55"
299
+
source = "registry+https://github.com/rust-lang/crates.io-index"
300
+
checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5"
301
+
dependencies = [
302
+
"heck",
303
+
"proc-macro2",
304
+
"quote",
305
+
"syn 2.0.117",
306
+
]
307
+
308
+
[[package]]
309
+
name = "clap_lex"
310
+
version = "1.0.0"
311
+
source = "registry+https://github.com/rust-lang/crates.io-index"
312
+
checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831"
313
+
314
+
[[package]]
315
+
name = "clru"
316
+
version = "0.6.3"
317
+
source = "registry+https://github.com/rust-lang/crates.io-index"
318
+
checksum = "197fd99cb113a8d5d9b6376f3aa817f32c1078f2343b714fff7d2ca44fdf67d5"
319
+
dependencies = [
320
+
"hashbrown 0.16.1",
321
+
]
322
+
323
+
[[package]]
324
+
name = "color-eyre"
325
+
version = "0.6.5"
326
+
source = "registry+https://github.com/rust-lang/crates.io-index"
327
+
checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d"
328
+
dependencies = [
329
+
"backtrace",
330
+
"color-spantrace",
331
+
"eyre",
332
+
"indenter",
333
+
"once_cell",
334
+
"owo-colors",
335
+
"tracing-error",
336
+
]
337
+
338
+
[[package]]
339
+
name = "color-spantrace"
340
+
version = "0.3.0"
341
+
source = "registry+https://github.com/rust-lang/crates.io-index"
342
+
checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427"
343
+
dependencies = [
344
+
"once_cell",
345
+
"owo-colors",
346
+
"tracing-core",
347
+
"tracing-error",
348
+
]
349
+
350
+
[[package]]
351
+
name = "colorchoice"
352
+
version = "1.0.4"
353
+
source = "registry+https://github.com/rust-lang/crates.io-index"
354
+
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
355
+
356
+
[[package]]
357
+
name = "compact_str"
358
+
version = "0.9.0"
359
+
source = "registry+https://github.com/rust-lang/crates.io-index"
360
+
checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
361
+
dependencies = [
362
+
"castaway",
363
+
"cfg-if",
364
+
"itoa",
365
+
"rustversion",
366
+
"ryu",
367
+
"static_assertions",
368
+
]
369
+
370
+
[[package]]
371
+
name = "console"
372
+
version = "0.15.11"
373
+
source = "registry+https://github.com/rust-lang/crates.io-index"
374
+
checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
375
+
dependencies = [
376
+
"encode_unicode",
377
+
"libc",
378
+
"once_cell",
379
+
"windows-sys 0.59.0",
380
+
]
381
+
382
+
[[package]]
383
+
name = "convert_case"
384
+
version = "0.10.0"
385
+
source = "registry+https://github.com/rust-lang/crates.io-index"
386
+
checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"
387
+
dependencies = [
388
+
"unicode-segmentation",
389
+
]
390
+
391
+
[[package]]
392
+
name = "cpufeatures"
393
+
version = "0.2.17"
394
+
source = "registry+https://github.com/rust-lang/crates.io-index"
395
+
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
396
+
dependencies = [
397
+
"libc",
398
+
]
399
+
400
+
[[package]]
401
+
name = "crc32fast"
402
+
version = "1.5.0"
403
+
source = "registry+https://github.com/rust-lang/crates.io-index"
404
+
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
405
+
dependencies = [
406
+
"cfg-if",
407
+
]
408
+
409
+
[[package]]
410
+
name = "crossbeam-utils"
411
+
version = "0.8.21"
412
+
source = "registry+https://github.com/rust-lang/crates.io-index"
413
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
414
+
415
+
[[package]]
416
+
name = "crossterm"
417
+
version = "0.29.0"
418
+
source = "registry+https://github.com/rust-lang/crates.io-index"
419
+
checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
420
+
dependencies = [
421
+
"bitflags 2.11.0",
422
+
"crossterm_winapi",
423
+
"derive_more",
424
+
"document-features",
425
+
"futures-core",
426
+
"mio",
427
+
"parking_lot",
428
+
"rustix",
429
+
"signal-hook 0.3.18",
430
+
"signal-hook-mio",
431
+
"winapi",
432
+
]
433
+
434
+
[[package]]
435
+
name = "crossterm_winapi"
436
+
version = "0.9.1"
437
+
source = "registry+https://github.com/rust-lang/crates.io-index"
438
+
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
439
+
dependencies = [
440
+
"winapi",
441
+
]
442
+
443
+
[[package]]
444
+
name = "crypto-common"
445
+
version = "0.1.7"
446
+
source = "registry+https://github.com/rust-lang/crates.io-index"
447
+
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
448
+
dependencies = [
449
+
"generic-array",
450
+
"typenum",
451
+
]
452
+
453
+
[[package]]
454
+
name = "csscolorparser"
455
+
version = "0.6.2"
456
+
source = "registry+https://github.com/rust-lang/crates.io-index"
457
+
checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"
458
+
dependencies = [
459
+
"lab",
460
+
"phf",
461
+
]
462
+
463
+
[[package]]
464
+
name = "darling"
465
+
version = "0.20.11"
466
+
source = "registry+https://github.com/rust-lang/crates.io-index"
467
+
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
468
+
dependencies = [
469
+
"darling_core 0.20.11",
470
+
"darling_macro 0.20.11",
471
+
]
472
+
473
+
[[package]]
474
+
name = "darling"
475
+
version = "0.23.0"
476
+
source = "registry+https://github.com/rust-lang/crates.io-index"
477
+
checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
478
+
dependencies = [
479
+
"darling_core 0.23.0",
480
+
"darling_macro 0.23.0",
481
+
]
482
+
483
+
[[package]]
484
+
name = "darling_core"
485
+
version = "0.20.11"
486
+
source = "registry+https://github.com/rust-lang/crates.io-index"
487
+
checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
488
+
dependencies = [
489
+
"fnv",
490
+
"ident_case",
491
+
"proc-macro2",
492
+
"quote",
493
+
"strsim",
494
+
"syn 2.0.117",
495
+
]
496
+
497
+
[[package]]
498
+
name = "darling_core"
499
+
version = "0.23.0"
500
+
source = "registry+https://github.com/rust-lang/crates.io-index"
501
+
checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
502
+
dependencies = [
503
+
"ident_case",
504
+
"proc-macro2",
505
+
"quote",
506
+
"strsim",
507
+
"syn 2.0.117",
508
+
]
509
+
510
+
[[package]]
511
+
name = "darling_macro"
512
+
version = "0.20.11"
513
+
source = "registry+https://github.com/rust-lang/crates.io-index"
514
+
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
515
+
dependencies = [
516
+
"darling_core 0.20.11",
517
+
"quote",
518
+
"syn 2.0.117",
519
+
]
520
+
521
+
[[package]]
522
+
name = "darling_macro"
523
+
version = "0.23.0"
524
+
source = "registry+https://github.com/rust-lang/crates.io-index"
525
+
checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
526
+
dependencies = [
527
+
"darling_core 0.23.0",
528
+
"quote",
529
+
"syn 2.0.117",
530
+
]
531
+
532
+
[[package]]
533
+
name = "dashmap"
534
+
version = "6.1.0"
535
+
source = "registry+https://github.com/rust-lang/crates.io-index"
536
+
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
537
+
dependencies = [
538
+
"cfg-if",
539
+
"crossbeam-utils",
540
+
"hashbrown 0.14.5",
541
+
"lock_api",
542
+
"once_cell",
543
+
"parking_lot_core",
544
+
]
545
+
546
+
[[package]]
547
+
name = "deltae"
548
+
version = "0.3.2"
549
+
source = "registry+https://github.com/rust-lang/crates.io-index"
550
+
checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"
551
+
552
+
[[package]]
553
+
name = "deranged"
554
+
version = "0.5.8"
555
+
source = "registry+https://github.com/rust-lang/crates.io-index"
556
+
checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
557
+
dependencies = [
558
+
"powerfmt",
559
+
]
560
+
561
+
[[package]]
562
+
name = "derive_builder"
563
+
version = "0.20.2"
564
+
source = "registry+https://github.com/rust-lang/crates.io-index"
565
+
checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"
566
+
dependencies = [
567
+
"derive_builder_macro",
568
+
]
569
+
570
+
[[package]]
571
+
name = "derive_builder_core"
572
+
version = "0.20.2"
573
+
source = "registry+https://github.com/rust-lang/crates.io-index"
574
+
checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"
575
+
dependencies = [
576
+
"darling 0.20.11",
577
+
"proc-macro2",
578
+
"quote",
579
+
"syn 2.0.117",
580
+
]
581
+
582
+
[[package]]
583
+
name = "derive_builder_macro"
584
+
version = "0.20.2"
585
+
source = "registry+https://github.com/rust-lang/crates.io-index"
586
+
checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"
587
+
dependencies = [
588
+
"derive_builder_core",
589
+
"syn 2.0.117",
590
+
]
591
+
592
+
[[package]]
593
+
name = "derive_more"
594
+
version = "2.1.1"
595
+
source = "registry+https://github.com/rust-lang/crates.io-index"
596
+
checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
597
+
dependencies = [
598
+
"derive_more-impl",
599
+
]
600
+
601
+
[[package]]
602
+
name = "derive_more-impl"
603
+
version = "2.1.1"
604
+
source = "registry+https://github.com/rust-lang/crates.io-index"
605
+
checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
606
+
dependencies = [
607
+
"convert_case",
608
+
"proc-macro2",
609
+
"quote",
610
+
"rustc_version",
611
+
"syn 2.0.117",
612
+
]
613
+
614
+
[[package]]
615
+
name = "digest"
616
+
version = "0.10.7"
617
+
source = "registry+https://github.com/rust-lang/crates.io-index"
618
+
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
619
+
dependencies = [
620
+
"block-buffer",
621
+
"crypto-common",
622
+
]
623
+
624
+
[[package]]
625
+
name = "directories"
626
+
version = "6.0.0"
627
+
source = "registry+https://github.com/rust-lang/crates.io-index"
628
+
checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d"
629
+
dependencies = [
630
+
"dirs-sys",
631
+
]
632
+
633
+
[[package]]
634
+
name = "dirs-sys"
635
+
version = "0.5.0"
636
+
source = "registry+https://github.com/rust-lang/crates.io-index"
637
+
checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
638
+
dependencies = [
639
+
"libc",
640
+
"option-ext",
641
+
"redox_users",
642
+
"windows-sys 0.61.2",
643
+
]
644
+
645
+
[[package]]
646
+
name = "document-features"
647
+
version = "0.2.12"
648
+
source = "registry+https://github.com/rust-lang/crates.io-index"
649
+
checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
650
+
dependencies = [
651
+
"litrs",
652
+
]
653
+
654
+
[[package]]
655
+
name = "dunce"
656
+
version = "1.0.5"
657
+
source = "registry+https://github.com/rust-lang/crates.io-index"
658
+
checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
659
+
660
+
[[package]]
661
+
name = "either"
662
+
version = "1.15.0"
663
+
source = "registry+https://github.com/rust-lang/crates.io-index"
664
+
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
665
+
666
+
[[package]]
667
+
name = "encode_unicode"
668
+
version = "1.0.0"
669
+
source = "registry+https://github.com/rust-lang/crates.io-index"
670
+
checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
671
+
672
+
[[package]]
673
+
name = "encoding_rs"
674
+
version = "0.8.35"
675
+
source = "registry+https://github.com/rust-lang/crates.io-index"
676
+
checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
677
+
dependencies = [
678
+
"cfg-if",
679
+
]
680
+
681
+
[[package]]
682
+
name = "equivalent"
683
+
version = "1.0.2"
684
+
source = "registry+https://github.com/rust-lang/crates.io-index"
685
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
686
+
687
+
[[package]]
688
+
name = "errno"
689
+
version = "0.3.14"
690
+
source = "registry+https://github.com/rust-lang/crates.io-index"
691
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
692
+
dependencies = [
693
+
"libc",
694
+
"windows-sys 0.61.2",
695
+
]
696
+
697
+
[[package]]
698
+
name = "euclid"
699
+
version = "0.22.13"
700
+
source = "registry+https://github.com/rust-lang/crates.io-index"
701
+
checksum = "df61bf483e837f88d5c2291dcf55c67be7e676b3a51acc48db3a7b163b91ed63"
702
+
dependencies = [
703
+
"num-traits",
704
+
]
705
+
706
+
[[package]]
707
+
name = "eyre"
708
+
version = "0.6.12"
709
+
source = "registry+https://github.com/rust-lang/crates.io-index"
710
+
checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
711
+
dependencies = [
712
+
"indenter",
713
+
"once_cell",
714
+
]
715
+
716
+
[[package]]
717
+
name = "fancy-regex"
718
+
version = "0.11.0"
719
+
source = "registry+https://github.com/rust-lang/crates.io-index"
720
+
checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
721
+
dependencies = [
722
+
"bit-set",
723
+
"regex",
724
+
]
725
+
726
+
[[package]]
727
+
name = "faster-hex"
728
+
version = "0.10.0"
729
+
source = "registry+https://github.com/rust-lang/crates.io-index"
730
+
checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73"
731
+
dependencies = [
732
+
"heapless",
733
+
"serde",
734
+
]
735
+
736
+
[[package]]
737
+
name = "fastrand"
738
+
version = "2.3.0"
739
+
source = "registry+https://github.com/rust-lang/crates.io-index"
740
+
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
741
+
742
+
[[package]]
743
+
name = "filaments"
744
+
version = "0.1.0"
745
+
dependencies = [
746
+
"anyhow",
747
+
"better-panic",
748
+
"clap",
749
+
"color-eyre",
750
+
"crossterm",
751
+
"directories",
752
+
"futures",
753
+
"human-panic",
754
+
"ratatui",
755
+
"serde",
756
+
"signal-hook 0.4.3",
757
+
"strum 0.28.0",
758
+
"tokio",
759
+
"tokio-util",
760
+
"tracing",
761
+
"tracing-error",
762
+
"tracing-subscriber",
763
+
"vergen-gix",
764
+
]
765
+
766
+
[[package]]
767
+
name = "filedescriptor"
768
+
version = "0.8.3"
769
+
source = "registry+https://github.com/rust-lang/crates.io-index"
770
+
checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"
771
+
dependencies = [
772
+
"libc",
773
+
"thiserror 1.0.69",
774
+
"winapi",
775
+
]
776
+
777
+
[[package]]
778
+
name = "filetime"
779
+
version = "0.2.27"
780
+
source = "registry+https://github.com/rust-lang/crates.io-index"
781
+
checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
782
+
dependencies = [
783
+
"cfg-if",
784
+
"libc",
785
+
"libredox",
786
+
]
787
+
788
+
[[package]]
789
+
name = "finl_unicode"
790
+
version = "1.4.0"
791
+
source = "registry+https://github.com/rust-lang/crates.io-index"
792
+
checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5"
793
+
794
+
[[package]]
795
+
name = "fixedbitset"
796
+
version = "0.4.2"
797
+
source = "registry+https://github.com/rust-lang/crates.io-index"
798
+
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
799
+
800
+
[[package]]
801
+
name = "fnv"
802
+
version = "1.0.7"
803
+
source = "registry+https://github.com/rust-lang/crates.io-index"
804
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
805
+
806
+
[[package]]
807
+
name = "foldhash"
808
+
version = "0.1.5"
809
+
source = "registry+https://github.com/rust-lang/crates.io-index"
810
+
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
811
+
812
+
[[package]]
813
+
name = "foldhash"
814
+
version = "0.2.0"
815
+
source = "registry+https://github.com/rust-lang/crates.io-index"
816
+
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
817
+
818
+
[[package]]
819
+
name = "futures"
820
+
version = "0.3.32"
821
+
source = "registry+https://github.com/rust-lang/crates.io-index"
822
+
checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d"
823
+
dependencies = [
824
+
"futures-channel",
825
+
"futures-core",
826
+
"futures-executor",
827
+
"futures-io",
828
+
"futures-sink",
829
+
"futures-task",
830
+
"futures-util",
831
+
]
832
+
833
+
[[package]]
834
+
name = "futures-channel"
835
+
version = "0.3.32"
836
+
source = "registry+https://github.com/rust-lang/crates.io-index"
837
+
checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
838
+
dependencies = [
839
+
"futures-core",
840
+
"futures-sink",
841
+
]
842
+
843
+
[[package]]
844
+
name = "futures-core"
845
+
version = "0.3.32"
846
+
source = "registry+https://github.com/rust-lang/crates.io-index"
847
+
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
848
+
849
+
[[package]]
850
+
name = "futures-executor"
851
+
version = "0.3.32"
852
+
source = "registry+https://github.com/rust-lang/crates.io-index"
853
+
checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
854
+
dependencies = [
855
+
"futures-core",
856
+
"futures-task",
857
+
"futures-util",
858
+
]
859
+
860
+
[[package]]
861
+
name = "futures-io"
862
+
version = "0.3.32"
863
+
source = "registry+https://github.com/rust-lang/crates.io-index"
864
+
checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
865
+
866
+
[[package]]
867
+
name = "futures-macro"
868
+
version = "0.3.32"
869
+
source = "registry+https://github.com/rust-lang/crates.io-index"
870
+
checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
871
+
dependencies = [
872
+
"proc-macro2",
873
+
"quote",
874
+
"syn 2.0.117",
875
+
]
876
+
877
+
[[package]]
878
+
name = "futures-sink"
879
+
version = "0.3.32"
880
+
source = "registry+https://github.com/rust-lang/crates.io-index"
881
+
checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
882
+
883
+
[[package]]
884
+
name = "futures-task"
885
+
version = "0.3.32"
886
+
source = "registry+https://github.com/rust-lang/crates.io-index"
887
+
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
888
+
889
+
[[package]]
890
+
name = "futures-util"
891
+
version = "0.3.32"
892
+
source = "registry+https://github.com/rust-lang/crates.io-index"
893
+
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
894
+
dependencies = [
895
+
"futures-channel",
896
+
"futures-core",
897
+
"futures-io",
898
+
"futures-macro",
899
+
"futures-sink",
900
+
"futures-task",
901
+
"memchr",
902
+
"pin-project-lite",
903
+
"slab",
904
+
]
905
+
906
+
[[package]]
907
+
name = "generic-array"
908
+
version = "0.14.7"
909
+
source = "registry+https://github.com/rust-lang/crates.io-index"
910
+
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
911
+
dependencies = [
912
+
"typenum",
913
+
"version_check",
914
+
]
915
+
916
+
[[package]]
917
+
name = "getrandom"
918
+
version = "0.2.17"
919
+
source = "registry+https://github.com/rust-lang/crates.io-index"
920
+
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
921
+
dependencies = [
922
+
"cfg-if",
923
+
"libc",
924
+
"wasi",
925
+
]
926
+
927
+
[[package]]
928
+
name = "getrandom"
929
+
version = "0.3.4"
930
+
source = "registry+https://github.com/rust-lang/crates.io-index"
931
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
932
+
dependencies = [
933
+
"cfg-if",
934
+
"libc",
935
+
"r-efi 5.3.0",
936
+
"wasip2",
937
+
]
938
+
939
+
[[package]]
940
+
name = "getrandom"
941
+
version = "0.4.2"
942
+
source = "registry+https://github.com/rust-lang/crates.io-index"
943
+
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
944
+
dependencies = [
945
+
"cfg-if",
946
+
"libc",
947
+
"r-efi 6.0.0",
948
+
"wasip2",
949
+
"wasip3",
950
+
]
951
+
952
+
[[package]]
953
+
name = "gimli"
954
+
version = "0.32.3"
955
+
source = "registry+https://github.com/rust-lang/crates.io-index"
956
+
checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
957
+
958
+
[[package]]
959
+
name = "gix"
960
+
version = "0.77.0"
961
+
source = "registry+https://github.com/rust-lang/crates.io-index"
962
+
checksum = "3d8284d86a2f5c0987fbf7219a128815cc04af5a18f5fd7eec6a76d83c2b78cc"
963
+
dependencies = [
964
+
"gix-actor",
965
+
"gix-attributes",
966
+
"gix-command",
967
+
"gix-commitgraph",
968
+
"gix-config",
969
+
"gix-date",
970
+
"gix-diff",
971
+
"gix-dir",
972
+
"gix-discover",
973
+
"gix-features",
974
+
"gix-filter",
975
+
"gix-fs",
976
+
"gix-glob",
977
+
"gix-hash",
978
+
"gix-hashtable",
979
+
"gix-ignore",
980
+
"gix-index",
981
+
"gix-lock",
982
+
"gix-object",
983
+
"gix-odb",
984
+
"gix-pack",
985
+
"gix-path",
986
+
"gix-pathspec",
987
+
"gix-protocol",
988
+
"gix-ref",
989
+
"gix-refspec",
990
+
"gix-revision",
991
+
"gix-revwalk",
992
+
"gix-sec",
993
+
"gix-shallow",
994
+
"gix-status",
995
+
"gix-submodule",
996
+
"gix-tempfile",
997
+
"gix-trace",
998
+
"gix-traverse",
999
+
"gix-url",
1000
+
"gix-utils",
1001
+
"gix-validate",
1002
+
"gix-worktree",
1003
+
"parking_lot",
1004
+
"signal-hook 0.3.18",
1005
+
"smallvec",
1006
+
"thiserror 2.0.18",
1007
+
]
1008
+
1009
+
[[package]]
1010
+
name = "gix-actor"
1011
+
version = "0.37.1"
1012
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1013
+
checksum = "c345528d405eab51d20f505f5fe1a4680973953694e0292c6bbe97827daa55c4"
1014
+
dependencies = [
1015
+
"bstr",
1016
+
"gix-date",
1017
+
"gix-utils",
1018
+
"itoa",
1019
+
"thiserror 2.0.18",
1020
+
"winnow",
1021
+
]
1022
+
1023
+
[[package]]
1024
+
name = "gix-attributes"
1025
+
version = "0.29.0"
1026
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1027
+
checksum = "f47dabf8a50f1558c3a55d978440c7c4f22f87ac897bef03b4edbc96f6115966"
1028
+
dependencies = [
1029
+
"bstr",
1030
+
"gix-glob",
1031
+
"gix-path",
1032
+
"gix-quote",
1033
+
"gix-trace",
1034
+
"kstring",
1035
+
"smallvec",
1036
+
"thiserror 2.0.18",
1037
+
"unicode-bom",
1038
+
]
1039
+
1040
+
[[package]]
1041
+
name = "gix-bitmap"
1042
+
version = "0.2.16"
1043
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1044
+
checksum = "d982fc7ef0608e669851d0d2a6141dae74c60d5a27e8daa451f2a4857bbf41e2"
1045
+
dependencies = [
1046
+
"thiserror 2.0.18",
1047
+
]
1048
+
1049
+
[[package]]
1050
+
name = "gix-chunk"
1051
+
version = "0.4.12"
1052
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1053
+
checksum = "5c356b3825677cb6ff579551bb8311a81821e184453cbd105e2fc5311b288eeb"
1054
+
dependencies = [
1055
+
"thiserror 2.0.18",
1056
+
]
1057
+
1058
+
[[package]]
1059
+
name = "gix-command"
1060
+
version = "0.6.5"
1061
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1062
+
checksum = "46f9c425730a654835351e6da8c3c69ba1804f8b8d4e96d027254151138d5c64"
1063
+
dependencies = [
1064
+
"bstr",
1065
+
"gix-path",
1066
+
"gix-quote",
1067
+
"gix-trace",
1068
+
"shell-words",
1069
+
]
1070
+
1071
+
[[package]]
1072
+
name = "gix-commitgraph"
1073
+
version = "0.31.0"
1074
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1075
+
checksum = "efdcba8048045baf15225daf949d597c3e6183d130245e22a7fbd27084abe63a"
1076
+
dependencies = [
1077
+
"bstr",
1078
+
"gix-chunk",
1079
+
"gix-hash",
1080
+
"memmap2",
1081
+
"thiserror 2.0.18",
1082
+
]
1083
+
1084
+
[[package]]
1085
+
name = "gix-config"
1086
+
version = "0.50.0"
1087
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1088
+
checksum = "b58e2ff8eef96b71f2c5e260f02ca0475caff374027c5cc5a29bda69fac67404"
1089
+
dependencies = [
1090
+
"bstr",
1091
+
"gix-config-value",
1092
+
"gix-features",
1093
+
"gix-glob",
1094
+
"gix-path",
1095
+
"gix-ref",
1096
+
"gix-sec",
1097
+
"memchr",
1098
+
"smallvec",
1099
+
"thiserror 2.0.18",
1100
+
"unicode-bom",
1101
+
"winnow",
1102
+
]
1103
+
1104
+
[[package]]
1105
+
name = "gix-config-value"
1106
+
version = "0.16.0"
1107
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1108
+
checksum = "2409cffa4fe8b303847d5b6ba8df9da9ba65d302fc5ee474ea0cac5afde79840"
1109
+
dependencies = [
1110
+
"bitflags 2.11.0",
1111
+
"bstr",
1112
+
"gix-path",
1113
+
"libc",
1114
+
"thiserror 2.0.18",
1115
+
]
1116
+
1117
+
[[package]]
1118
+
name = "gix-date"
1119
+
version = "0.12.1"
1120
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1121
+
checksum = "fe4a31bab8159e233094fa70d2e5fd3ec6f19e593f67e6ae01281daa48f8d8e7"
1122
+
dependencies = [
1123
+
"bstr",
1124
+
"itoa",
1125
+
"jiff",
1126
+
"smallvec",
1127
+
"thiserror 2.0.18",
1128
+
]
1129
+
1130
+
[[package]]
1131
+
name = "gix-diff"
1132
+
version = "0.57.1"
1133
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1134
+
checksum = "3506936e63ce14cd54b5f28ed06c8e43b92ef9f41c2238cc0bc271a9259b4e90"
1135
+
dependencies = [
1136
+
"bstr",
1137
+
"gix-attributes",
1138
+
"gix-command",
1139
+
"gix-filter",
1140
+
"gix-fs",
1141
+
"gix-hash",
1142
+
"gix-index",
1143
+
"gix-object",
1144
+
"gix-path",
1145
+
"gix-pathspec",
1146
+
"gix-tempfile",
1147
+
"gix-trace",
1148
+
"gix-traverse",
1149
+
"gix-worktree",
1150
+
"imara-diff",
1151
+
"thiserror 2.0.18",
1152
+
]
1153
+
1154
+
[[package]]
1155
+
name = "gix-dir"
1156
+
version = "0.19.0"
1157
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1158
+
checksum = "709d9fad32d2eb8b0129850874246569e801b6d5877e0c41356c23e9e2501e06"
1159
+
dependencies = [
1160
+
"bstr",
1161
+
"gix-discover",
1162
+
"gix-fs",
1163
+
"gix-ignore",
1164
+
"gix-index",
1165
+
"gix-object",
1166
+
"gix-path",
1167
+
"gix-pathspec",
1168
+
"gix-trace",
1169
+
"gix-utils",
1170
+
"gix-worktree",
1171
+
"thiserror 2.0.18",
1172
+
]
1173
+
1174
+
[[package]]
1175
+
name = "gix-discover"
1176
+
version = "0.45.0"
1177
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1178
+
checksum = "42ce096dc132533802a09d6fd5d4008858f2038341dfe2e69e0d0239edb359de"
1179
+
dependencies = [
1180
+
"bstr",
1181
+
"dunce",
1182
+
"gix-fs",
1183
+
"gix-hash",
1184
+
"gix-path",
1185
+
"gix-ref",
1186
+
"gix-sec",
1187
+
"thiserror 2.0.18",
1188
+
]
1189
+
1190
+
[[package]]
1191
+
name = "gix-features"
1192
+
version = "0.45.2"
1193
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1194
+
checksum = "d56aad357ae016449434705033df644ac6253dfcf1281aad3af3af9e907560d1"
1195
+
dependencies = [
1196
+
"crc32fast",
1197
+
"gix-path",
1198
+
"gix-trace",
1199
+
"gix-utils",
1200
+
"libc",
1201
+
"once_cell",
1202
+
"prodash",
1203
+
"thiserror 2.0.18",
1204
+
"walkdir",
1205
+
"zlib-rs",
1206
+
]
1207
+
1208
+
[[package]]
1209
+
name = "gix-filter"
1210
+
version = "0.24.1"
1211
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1212
+
checksum = "10c02464962482570c1f94ad451a608c4391514f803e8074662d02c5629a25dc"
1213
+
dependencies = [
1214
+
"bstr",
1215
+
"encoding_rs",
1216
+
"gix-attributes",
1217
+
"gix-command",
1218
+
"gix-hash",
1219
+
"gix-object",
1220
+
"gix-packetline",
1221
+
"gix-path",
1222
+
"gix-quote",
1223
+
"gix-trace",
1224
+
"gix-utils",
1225
+
"smallvec",
1226
+
"thiserror 2.0.18",
1227
+
]
1228
+
1229
+
[[package]]
1230
+
name = "gix-fs"
1231
+
version = "0.18.2"
1232
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1233
+
checksum = "785b9c499e46bc78d7b81c148c21b3fca18655379ee729a856ed19ce50d359ec"
1234
+
dependencies = [
1235
+
"bstr",
1236
+
"fastrand",
1237
+
"gix-features",
1238
+
"gix-path",
1239
+
"gix-utils",
1240
+
"thiserror 2.0.18",
1241
+
]
1242
+
1243
+
[[package]]
1244
+
name = "gix-glob"
1245
+
version = "0.23.0"
1246
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1247
+
checksum = "e8546300aee4c65c5862c22a3e321124a69b654a61a8b60de546a9284812b7e2"
1248
+
dependencies = [
1249
+
"bitflags 2.11.0",
1250
+
"bstr",
1251
+
"gix-features",
1252
+
"gix-path",
1253
+
]
1254
+
1255
+
[[package]]
1256
+
name = "gix-hash"
1257
+
version = "0.21.2"
1258
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1259
+
checksum = "e153930f42ccdab8a3306b1027cd524879f6a8996cd0c474d18b0e56cae7714d"
1260
+
dependencies = [
1261
+
"faster-hex",
1262
+
"gix-features",
1263
+
"sha1-checked",
1264
+
"thiserror 2.0.18",
1265
+
]
1266
+
1267
+
[[package]]
1268
+
name = "gix-hashtable"
1269
+
version = "0.11.0"
1270
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1271
+
checksum = "222f7428636020bef272a87ed833ea48bf5fb3193f99852ae16fbb5a602bd2f0"
1272
+
dependencies = [
1273
+
"gix-hash",
1274
+
"hashbrown 0.16.1",
1275
+
"parking_lot",
1276
+
]
1277
+
1278
+
[[package]]
1279
+
name = "gix-ignore"
1280
+
version = "0.18.0"
1281
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1282
+
checksum = "dfa727fdf54fd9fb53fa3fbb1a5c17172d3073e8e336bf155f3cac3e25b81b21"
1283
+
dependencies = [
1284
+
"bstr",
1285
+
"gix-glob",
1286
+
"gix-path",
1287
+
"gix-trace",
1288
+
"unicode-bom",
1289
+
]
1290
+
1291
+
[[package]]
1292
+
name = "gix-index"
1293
+
version = "0.45.1"
1294
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1295
+
checksum = "9ea6d3e9e11647ba49f441dea0782494cc6d2875ff43fa4ad9094e6957f42051"
1296
+
dependencies = [
1297
+
"bitflags 2.11.0",
1298
+
"bstr",
1299
+
"filetime",
1300
+
"fnv",
1301
+
"gix-bitmap",
1302
+
"gix-features",
1303
+
"gix-fs",
1304
+
"gix-hash",
1305
+
"gix-lock",
1306
+
"gix-object",
1307
+
"gix-traverse",
1308
+
"gix-utils",
1309
+
"gix-validate",
1310
+
"hashbrown 0.16.1",
1311
+
"itoa",
1312
+
"libc",
1313
+
"memmap2",
1314
+
"rustix",
1315
+
"smallvec",
1316
+
"thiserror 2.0.18",
1317
+
]
1318
+
1319
+
[[package]]
1320
+
name = "gix-lock"
1321
+
version = "20.0.1"
1322
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1323
+
checksum = "115268ae5e3b3b7bc7fc77260eecee05acca458e45318ca45d35467fa81a3ac5"
1324
+
dependencies = [
1325
+
"gix-tempfile",
1326
+
"gix-utils",
1327
+
"thiserror 2.0.18",
1328
+
]
1329
+
1330
+
[[package]]
1331
+
name = "gix-object"
1332
+
version = "0.54.1"
1333
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1334
+
checksum = "363d6a879c52e4890180e0ffa7d8c9a364fd0b7e807caa368e860b80e8d0bc81"
1335
+
dependencies = [
1336
+
"bstr",
1337
+
"gix-actor",
1338
+
"gix-date",
1339
+
"gix-features",
1340
+
"gix-hash",
1341
+
"gix-hashtable",
1342
+
"gix-path",
1343
+
"gix-utils",
1344
+
"gix-validate",
1345
+
"itoa",
1346
+
"smallvec",
1347
+
"thiserror 2.0.18",
1348
+
"winnow",
1349
+
]
1350
+
1351
+
[[package]]
1352
+
name = "gix-odb"
1353
+
version = "0.74.0"
1354
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1355
+
checksum = "165a907df369a12ed4330faf8baf7ae597aadb08cfacb4ed8649f93d90bcc0c5"
1356
+
dependencies = [
1357
+
"arc-swap",
1358
+
"gix-date",
1359
+
"gix-features",
1360
+
"gix-fs",
1361
+
"gix-hash",
1362
+
"gix-hashtable",
1363
+
"gix-object",
1364
+
"gix-pack",
1365
+
"gix-path",
1366
+
"gix-quote",
1367
+
"parking_lot",
1368
+
"tempfile",
1369
+
"thiserror 2.0.18",
1370
+
]
1371
+
1372
+
[[package]]
1373
+
name = "gix-pack"
1374
+
version = "0.64.1"
1375
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1376
+
checksum = "b04a73d5ab07ea0faae55e2c0ae6f24e36e365ac8ce140394dee3a2c89cd4366"
1377
+
dependencies = [
1378
+
"clru",
1379
+
"gix-chunk",
1380
+
"gix-features",
1381
+
"gix-hash",
1382
+
"gix-hashtable",
1383
+
"gix-object",
1384
+
"gix-path",
1385
+
"memmap2",
1386
+
"smallvec",
1387
+
"thiserror 2.0.18",
1388
+
]
1389
+
1390
+
[[package]]
1391
+
name = "gix-packetline"
1392
+
version = "0.20.0"
1393
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1394
+
checksum = "fad0ffb982a289888087a165d3e849cbac724f2aa5431236b050dd2cb9c7de31"
1395
+
dependencies = [
1396
+
"bstr",
1397
+
"faster-hex",
1398
+
"gix-trace",
1399
+
"thiserror 2.0.18",
1400
+
]
1401
+
1402
+
[[package]]
1403
+
name = "gix-path"
1404
+
version = "0.10.22"
1405
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1406
+
checksum = "7cb06c3e4f8eed6e24fd915fa93145e28a511f4ea0e768bae16673e05ed3f366"
1407
+
dependencies = [
1408
+
"bstr",
1409
+
"gix-trace",
1410
+
"gix-validate",
1411
+
"thiserror 2.0.18",
1412
+
]
1413
+
1414
+
[[package]]
1415
+
name = "gix-pathspec"
1416
+
version = "0.14.0"
1417
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1418
+
checksum = "ed9e0c881933c37a7ef45288d6c5779c4a7b3ad240b4c37657e1d9829eb90085"
1419
+
dependencies = [
1420
+
"bitflags 2.11.0",
1421
+
"bstr",
1422
+
"gix-attributes",
1423
+
"gix-config-value",
1424
+
"gix-glob",
1425
+
"gix-path",
1426
+
"thiserror 2.0.18",
1427
+
]
1428
+
1429
+
[[package]]
1430
+
name = "gix-protocol"
1431
+
version = "0.55.0"
1432
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1433
+
checksum = "02c5dfd068789442c5709e702ef42d851765f2c09a11bf0a13749d24363f4d07"
1434
+
dependencies = [
1435
+
"bstr",
1436
+
"gix-date",
1437
+
"gix-features",
1438
+
"gix-hash",
1439
+
"gix-ref",
1440
+
"gix-shallow",
1441
+
"gix-transport",
1442
+
"gix-utils",
1443
+
"maybe-async",
1444
+
"thiserror 2.0.18",
1445
+
"winnow",
1446
+
]
1447
+
1448
+
[[package]]
1449
+
name = "gix-quote"
1450
+
version = "0.6.2"
1451
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1452
+
checksum = "96fc2ff2ec8cc0c92807f02eab1f00eb02619fc2810d13dc42679492fcc36757"
1453
+
dependencies = [
1454
+
"bstr",
1455
+
"gix-utils",
1456
+
"thiserror 2.0.18",
1457
+
]
1458
+
1459
+
[[package]]
1460
+
name = "gix-ref"
1461
+
version = "0.57.0"
1462
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1463
+
checksum = "ccb33aa97006e37e9e83fde233569a66b02ed16fd4b0406cdf35834b06cf8a63"
1464
+
dependencies = [
1465
+
"gix-actor",
1466
+
"gix-features",
1467
+
"gix-fs",
1468
+
"gix-hash",
1469
+
"gix-lock",
1470
+
"gix-object",
1471
+
"gix-path",
1472
+
"gix-tempfile",
1473
+
"gix-utils",
1474
+
"gix-validate",
1475
+
"memmap2",
1476
+
"thiserror 2.0.18",
1477
+
"winnow",
1478
+
]
1479
+
1480
+
[[package]]
1481
+
name = "gix-refspec"
1482
+
version = "0.35.0"
1483
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1484
+
checksum = "dcbba6ae5389f4021f73a2d62a4195aace7db1e8bb684b25521d3d685f57da02"
1485
+
dependencies = [
1486
+
"bstr",
1487
+
"gix-glob",
1488
+
"gix-hash",
1489
+
"gix-revision",
1490
+
"gix-validate",
1491
+
"smallvec",
1492
+
"thiserror 2.0.18",
1493
+
]
1494
+
1495
+
[[package]]
1496
+
name = "gix-revision"
1497
+
version = "0.39.0"
1498
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1499
+
checksum = "91898c83b18c635696f7355d171cfa74a52f38022ff89581f567768935ebc4c8"
1500
+
dependencies = [
1501
+
"bitflags 2.11.0",
1502
+
"bstr",
1503
+
"gix-commitgraph",
1504
+
"gix-date",
1505
+
"gix-hash",
1506
+
"gix-hashtable",
1507
+
"gix-object",
1508
+
"gix-revwalk",
1509
+
"gix-trace",
1510
+
"thiserror 2.0.18",
1511
+
]
1512
+
1513
+
[[package]]
1514
+
name = "gix-revwalk"
1515
+
version = "0.25.0"
1516
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1517
+
checksum = "0d063699278485016863d0d2bb0db7609fd2e8ba9a89379717bf06fd96949eb2"
1518
+
dependencies = [
1519
+
"gix-commitgraph",
1520
+
"gix-date",
1521
+
"gix-hash",
1522
+
"gix-hashtable",
1523
+
"gix-object",
1524
+
"smallvec",
1525
+
"thiserror 2.0.18",
1526
+
]
1527
+
1528
+
[[package]]
1529
+
name = "gix-sec"
1530
+
version = "0.12.2"
1531
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1532
+
checksum = "ea9962ed6d9114f7f100efe038752f41283c225bb507a2888903ac593dffa6be"
1533
+
dependencies = [
1534
+
"bitflags 2.11.0",
1535
+
"gix-path",
1536
+
"libc",
1537
+
"windows-sys 0.61.2",
1538
+
]
1539
+
1540
+
[[package]]
1541
+
name = "gix-shallow"
1542
+
version = "0.7.0"
1543
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1544
+
checksum = "9c1c467fb9f7ec1d33613c2ea5482de514bcb84b8222a793cdc4c71955832356"
1545
+
dependencies = [
1546
+
"bstr",
1547
+
"gix-hash",
1548
+
"gix-lock",
1549
+
"thiserror 2.0.18",
1550
+
]
1551
+
1552
+
[[package]]
1553
+
name = "gix-status"
1554
+
version = "0.24.0"
1555
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1556
+
checksum = "ed0d94c685a831c679ca5454c22f350e8c233f50dcf377ca00d858bcba9696d2"
1557
+
dependencies = [
1558
+
"bstr",
1559
+
"filetime",
1560
+
"gix-diff",
1561
+
"gix-dir",
1562
+
"gix-features",
1563
+
"gix-filter",
1564
+
"gix-fs",
1565
+
"gix-hash",
1566
+
"gix-index",
1567
+
"gix-object",
1568
+
"gix-path",
1569
+
"gix-pathspec",
1570
+
"gix-worktree",
1571
+
"portable-atomic",
1572
+
"thiserror 2.0.18",
1573
+
]
1574
+
1575
+
[[package]]
1576
+
name = "gix-submodule"
1577
+
version = "0.24.0"
1578
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1579
+
checksum = "efee2a61198413d80de10028aa507344537827d776ade781760130721bec2419"
1580
+
dependencies = [
1581
+
"bstr",
1582
+
"gix-config",
1583
+
"gix-path",
1584
+
"gix-pathspec",
1585
+
"gix-refspec",
1586
+
"gix-url",
1587
+
"thiserror 2.0.18",
1588
+
]
1589
+
1590
+
[[package]]
1591
+
name = "gix-tempfile"
1592
+
version = "20.0.1"
1593
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1594
+
checksum = "ad89218e74850f42d364ed3877c7291f0474c8533502df91bb877ecc5cb0dd40"
1595
+
dependencies = [
1596
+
"dashmap",
1597
+
"gix-fs",
1598
+
"libc",
1599
+
"parking_lot",
1600
+
"signal-hook 0.4.3",
1601
+
"signal-hook-registry",
1602
+
"tempfile",
1603
+
]
1604
+
1605
+
[[package]]
1606
+
name = "gix-trace"
1607
+
version = "0.1.18"
1608
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1609
+
checksum = "f69a13643b8437d4ca6845e08143e847a36ca82903eed13303475d0ae8b162e0"
1610
+
1611
+
[[package]]
1612
+
name = "gix-transport"
1613
+
version = "0.52.1"
1614
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1615
+
checksum = "a4d4ed02a2ebe771a26111896ecda0b98b58ed35e1d9c0ccf07251c1abb4918d"
1616
+
dependencies = [
1617
+
"bstr",
1618
+
"gix-command",
1619
+
"gix-features",
1620
+
"gix-packetline",
1621
+
"gix-quote",
1622
+
"gix-sec",
1623
+
"gix-url",
1624
+
"thiserror 2.0.18",
1625
+
]
1626
+
1627
+
[[package]]
1628
+
name = "gix-traverse"
1629
+
version = "0.51.1"
1630
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1631
+
checksum = "d052b83d1d1744be95ac6448ac02f95f370a8f6720e466be9ce57146e39f5280"
1632
+
dependencies = [
1633
+
"bitflags 2.11.0",
1634
+
"gix-commitgraph",
1635
+
"gix-date",
1636
+
"gix-hash",
1637
+
"gix-hashtable",
1638
+
"gix-object",
1639
+
"gix-revwalk",
1640
+
"smallvec",
1641
+
"thiserror 2.0.18",
1642
+
]
1643
+
1644
+
[[package]]
1645
+
name = "gix-url"
1646
+
version = "0.34.0"
1647
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1648
+
checksum = "cff1996dfb9430b3699d89224c674169c1ae355eacc52bf30a03c0b8bffe73d9"
1649
+
dependencies = [
1650
+
"bstr",
1651
+
"gix-features",
1652
+
"gix-path",
1653
+
"percent-encoding",
1654
+
"thiserror 2.0.18",
1655
+
]
1656
+
1657
+
[[package]]
1658
+
name = "gix-utils"
1659
+
version = "0.3.1"
1660
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1661
+
checksum = "befcdbdfb1238d2854591f760a48711bed85e72d80a10e8f2f93f656746ef7c5"
1662
+
dependencies = [
1663
+
"bstr",
1664
+
"fastrand",
1665
+
"unicode-normalization",
1666
+
]
1667
+
1668
+
[[package]]
1669
+
name = "gix-validate"
1670
+
version = "0.10.1"
1671
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1672
+
checksum = "5b1e63a5b516e970a594f870ed4571a8fdcb8a344e7bd407a20db8bd61dbfde4"
1673
+
dependencies = [
1674
+
"bstr",
1675
+
"thiserror 2.0.18",
1676
+
]
1677
+
1678
+
[[package]]
1679
+
name = "gix-worktree"
1680
+
version = "0.46.0"
1681
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1682
+
checksum = "1cfb7ce8cdbfe06117d335d1ad329351468d20331e0aafd108ceb647c1326aca"
1683
+
dependencies = [
1684
+
"bstr",
1685
+
"gix-attributes",
1686
+
"gix-features",
1687
+
"gix-fs",
1688
+
"gix-glob",
1689
+
"gix-hash",
1690
+
"gix-ignore",
1691
+
"gix-index",
1692
+
"gix-object",
1693
+
"gix-path",
1694
+
"gix-validate",
1695
+
]
1696
+
1697
+
[[package]]
1698
+
name = "hash32"
1699
+
version = "0.3.1"
1700
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1701
+
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
1702
+
dependencies = [
1703
+
"byteorder",
1704
+
]
1705
+
1706
+
[[package]]
1707
+
name = "hashbrown"
1708
+
version = "0.14.5"
1709
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1710
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
1711
+
1712
+
[[package]]
1713
+
name = "hashbrown"
1714
+
version = "0.15.5"
1715
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1716
+
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
1717
+
dependencies = [
1718
+
"foldhash 0.1.5",
1719
+
]
1720
+
1721
+
[[package]]
1722
+
name = "hashbrown"
1723
+
version = "0.16.1"
1724
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1725
+
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
1726
+
dependencies = [
1727
+
"allocator-api2",
1728
+
"equivalent",
1729
+
"foldhash 0.2.0",
1730
+
]
1731
+
1732
+
[[package]]
1733
+
name = "heapless"
1734
+
version = "0.8.0"
1735
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1736
+
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
1737
+
dependencies = [
1738
+
"hash32",
1739
+
"stable_deref_trait",
1740
+
]
1741
+
1742
+
[[package]]
1743
+
name = "heck"
1744
+
version = "0.5.0"
1745
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1746
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
1747
+
1748
+
[[package]]
1749
+
name = "hex"
1750
+
version = "0.4.3"
1751
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1752
+
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1753
+
1754
+
[[package]]
1755
+
name = "human-panic"
1756
+
version = "2.0.6"
1757
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1758
+
checksum = "075e8747af11abcff07d55d98297c9c6c70eb5d6365b25e7b12f02e484935191"
1759
+
dependencies = [
1760
+
"anstream",
1761
+
"anstyle",
1762
+
"backtrace",
1763
+
"serde",
1764
+
"serde_derive",
1765
+
"sysinfo",
1766
+
"toml",
1767
+
"uuid",
1768
+
]
1769
+
1770
+
[[package]]
1771
+
name = "id-arena"
1772
+
version = "2.3.0"
1773
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1774
+
checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
1775
+
1776
+
[[package]]
1777
+
name = "ident_case"
1778
+
version = "1.0.1"
1779
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1780
+
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
1781
+
1782
+
[[package]]
1783
+
name = "imara-diff"
1784
+
version = "0.1.8"
1785
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1786
+
checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2"
1787
+
dependencies = [
1788
+
"hashbrown 0.15.5",
1789
+
]
1790
+
1791
+
[[package]]
1792
+
name = "indenter"
1793
+
version = "0.3.4"
1794
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1795
+
checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5"
1796
+
1797
+
[[package]]
1798
+
name = "indexmap"
1799
+
version = "2.13.0"
1800
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1801
+
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
1802
+
dependencies = [
1803
+
"equivalent",
1804
+
"hashbrown 0.16.1",
1805
+
"serde",
1806
+
"serde_core",
1807
+
]
1808
+
1809
+
[[package]]
1810
+
name = "indoc"
1811
+
version = "2.0.7"
1812
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1813
+
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
1814
+
dependencies = [
1815
+
"rustversion",
1816
+
]
1817
+
1818
+
[[package]]
1819
+
name = "instability"
1820
+
version = "0.3.11"
1821
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1822
+
checksum = "357b7205c6cd18dd2c86ed312d1e70add149aea98e7ef72b9fdf0270e555c11d"
1823
+
dependencies = [
1824
+
"darling 0.23.0",
1825
+
"indoc",
1826
+
"proc-macro2",
1827
+
"quote",
1828
+
"syn 2.0.117",
1829
+
]
1830
+
1831
+
[[package]]
1832
+
name = "is_terminal_polyfill"
1833
+
version = "1.70.2"
1834
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1835
+
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
1836
+
1837
+
[[package]]
1838
+
name = "itertools"
1839
+
version = "0.14.0"
1840
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1841
+
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
1842
+
dependencies = [
1843
+
"either",
1844
+
]
1845
+
1846
+
[[package]]
1847
+
name = "itoa"
1848
+
version = "1.0.17"
1849
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1850
+
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
1851
+
1852
+
[[package]]
1853
+
name = "jiff"
1854
+
version = "0.2.23"
1855
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1856
+
checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359"
1857
+
dependencies = [
1858
+
"jiff-static",
1859
+
"jiff-tzdb-platform",
1860
+
"log",
1861
+
"portable-atomic",
1862
+
"portable-atomic-util",
1863
+
"serde_core",
1864
+
"windows-sys 0.61.2",
1865
+
]
1866
+
1867
+
[[package]]
1868
+
name = "jiff-static"
1869
+
version = "0.2.23"
1870
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1871
+
checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4"
1872
+
dependencies = [
1873
+
"proc-macro2",
1874
+
"quote",
1875
+
"syn 2.0.117",
1876
+
]
1877
+
1878
+
[[package]]
1879
+
name = "jiff-tzdb"
1880
+
version = "0.1.6"
1881
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1882
+
checksum = "c900ef84826f1338a557697dc8fc601df9ca9af4ac137c7fb61d4c6f2dfd3076"
1883
+
1884
+
[[package]]
1885
+
name = "jiff-tzdb-platform"
1886
+
version = "0.1.3"
1887
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1888
+
checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
1889
+
dependencies = [
1890
+
"jiff-tzdb",
1891
+
]
1892
+
1893
+
[[package]]
1894
+
name = "js-sys"
1895
+
version = "0.3.91"
1896
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1897
+
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
1898
+
dependencies = [
1899
+
"once_cell",
1900
+
"wasm-bindgen",
1901
+
]
1902
+
1903
+
[[package]]
1904
+
name = "kasuari"
1905
+
version = "0.4.11"
1906
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1907
+
checksum = "8fe90c1150662e858c7d5f945089b7517b0a80d8bf7ba4b1b5ffc984e7230a5b"
1908
+
dependencies = [
1909
+
"hashbrown 0.16.1",
1910
+
"portable-atomic",
1911
+
"thiserror 2.0.18",
1912
+
]
1913
+
1914
+
[[package]]
1915
+
name = "kstring"
1916
+
version = "2.0.2"
1917
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1918
+
checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1"
1919
+
dependencies = [
1920
+
"static_assertions",
1921
+
]
1922
+
1923
+
[[package]]
1924
+
name = "lab"
1925
+
version = "0.11.0"
1926
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1927
+
checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f"
1928
+
1929
+
[[package]]
1930
+
name = "lazy_static"
1931
+
version = "1.5.0"
1932
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1933
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1934
+
1935
+
[[package]]
1936
+
name = "leb128fmt"
1937
+
version = "0.1.0"
1938
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1939
+
checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
1940
+
1941
+
[[package]]
1942
+
name = "libc"
1943
+
version = "0.2.182"
1944
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1945
+
checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
1946
+
1947
+
[[package]]
1948
+
name = "libredox"
1949
+
version = "0.1.14"
1950
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1951
+
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a"
1952
+
dependencies = [
1953
+
"bitflags 2.11.0",
1954
+
"libc",
1955
+
"plain",
1956
+
"redox_syscall 0.7.3",
1957
+
]
1958
+
1959
+
[[package]]
1960
+
name = "line-clipping"
1961
+
version = "0.3.5"
1962
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1963
+
checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a"
1964
+
dependencies = [
1965
+
"bitflags 2.11.0",
1966
+
]
1967
+
1968
+
[[package]]
1969
+
name = "linux-raw-sys"
1970
+
version = "0.12.1"
1971
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1972
+
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
1973
+
1974
+
[[package]]
1975
+
name = "litrs"
1976
+
version = "1.0.0"
1977
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1978
+
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
1979
+
1980
+
[[package]]
1981
+
name = "lock_api"
1982
+
version = "0.4.14"
1983
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1984
+
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
1985
+
dependencies = [
1986
+
"scopeguard",
1987
+
]
1988
+
1989
+
[[package]]
1990
+
name = "log"
1991
+
version = "0.4.29"
1992
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1993
+
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
1994
+
1995
+
[[package]]
1996
+
name = "lru"
1997
+
version = "0.16.3"
1998
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1999
+
checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
2000
+
dependencies = [
2001
+
"hashbrown 0.16.1",
2002
+
]
2003
+
2004
+
[[package]]
2005
+
name = "mac_address"
2006
+
version = "1.1.8"
2007
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2008
+
checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303"
2009
+
dependencies = [
2010
+
"nix",
2011
+
"winapi",
2012
+
]
2013
+
2014
+
[[package]]
2015
+
name = "matchers"
2016
+
version = "0.2.0"
2017
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2018
+
checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
2019
+
dependencies = [
2020
+
"regex-automata",
2021
+
]
2022
+
2023
+
[[package]]
2024
+
name = "maybe-async"
2025
+
version = "0.2.10"
2026
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2027
+
checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
2028
+
dependencies = [
2029
+
"proc-macro2",
2030
+
"quote",
2031
+
"syn 2.0.117",
2032
+
]
2033
+
2034
+
[[package]]
2035
+
name = "memchr"
2036
+
version = "2.8.0"
2037
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2038
+
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
2039
+
2040
+
[[package]]
2041
+
name = "memmap2"
2042
+
version = "0.9.10"
2043
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2044
+
checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3"
2045
+
dependencies = [
2046
+
"libc",
2047
+
]
2048
+
2049
+
[[package]]
2050
+
name = "memmem"
2051
+
version = "0.1.1"
2052
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2053
+
checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
2054
+
2055
+
[[package]]
2056
+
name = "memoffset"
2057
+
version = "0.9.1"
2058
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2059
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
2060
+
dependencies = [
2061
+
"autocfg",
2062
+
]
2063
+
2064
+
[[package]]
2065
+
name = "minimal-lexical"
2066
+
version = "0.2.1"
2067
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2068
+
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
2069
+
2070
+
[[package]]
2071
+
name = "miniz_oxide"
2072
+
version = "0.8.9"
2073
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2074
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
2075
+
dependencies = [
2076
+
"adler2",
2077
+
]
2078
+
2079
+
[[package]]
2080
+
name = "mio"
2081
+
version = "1.1.1"
2082
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2083
+
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
2084
+
dependencies = [
2085
+
"libc",
2086
+
"log",
2087
+
"wasi",
2088
+
"windows-sys 0.61.2",
2089
+
]
2090
+
2091
+
[[package]]
2092
+
name = "nix"
2093
+
version = "0.29.0"
2094
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2095
+
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
2096
+
dependencies = [
2097
+
"bitflags 2.11.0",
2098
+
"cfg-if",
2099
+
"cfg_aliases",
2100
+
"libc",
2101
+
"memoffset",
2102
+
]
2103
+
2104
+
[[package]]
2105
+
name = "nom"
2106
+
version = "7.1.3"
2107
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2108
+
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
2109
+
dependencies = [
2110
+
"memchr",
2111
+
"minimal-lexical",
2112
+
]
2113
+
2114
+
[[package]]
2115
+
name = "ntapi"
2116
+
version = "0.4.3"
2117
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2118
+
checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae"
2119
+
dependencies = [
2120
+
"winapi",
2121
+
]
2122
+
2123
+
[[package]]
2124
+
name = "nu-ansi-term"
2125
+
version = "0.50.3"
2126
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2127
+
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
2128
+
dependencies = [
2129
+
"windows-sys 0.61.2",
2130
+
]
2131
+
2132
+
[[package]]
2133
+
name = "num-conv"
2134
+
version = "0.2.0"
2135
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2136
+
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
2137
+
2138
+
[[package]]
2139
+
name = "num-derive"
2140
+
version = "0.4.2"
2141
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2142
+
checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
2143
+
dependencies = [
2144
+
"proc-macro2",
2145
+
"quote",
2146
+
"syn 2.0.117",
2147
+
]
2148
+
2149
+
[[package]]
2150
+
name = "num-traits"
2151
+
version = "0.2.19"
2152
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2153
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
2154
+
dependencies = [
2155
+
"autocfg",
2156
+
]
2157
+
2158
+
[[package]]
2159
+
name = "num_threads"
2160
+
version = "0.1.7"
2161
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2162
+
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
2163
+
dependencies = [
2164
+
"libc",
2165
+
]
2166
+
2167
+
[[package]]
2168
+
name = "objc2-core-foundation"
2169
+
version = "0.3.2"
2170
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2171
+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
2172
+
dependencies = [
2173
+
"bitflags 2.11.0",
2174
+
]
2175
+
2176
+
[[package]]
2177
+
name = "objc2-io-kit"
2178
+
version = "0.3.2"
2179
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2180
+
checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15"
2181
+
dependencies = [
2182
+
"libc",
2183
+
"objc2-core-foundation",
2184
+
]
2185
+
2186
+
[[package]]
2187
+
name = "object"
2188
+
version = "0.37.3"
2189
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2190
+
checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
2191
+
dependencies = [
2192
+
"memchr",
2193
+
]
2194
+
2195
+
[[package]]
2196
+
name = "once_cell"
2197
+
version = "1.21.3"
2198
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2199
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
2200
+
2201
+
[[package]]
2202
+
name = "once_cell_polyfill"
2203
+
version = "1.70.2"
2204
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2205
+
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
2206
+
2207
+
[[package]]
2208
+
name = "option-ext"
2209
+
version = "0.2.0"
2210
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2211
+
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
2212
+
2213
+
[[package]]
2214
+
name = "ordered-float"
2215
+
version = "4.6.0"
2216
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2217
+
checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
2218
+
dependencies = [
2219
+
"num-traits",
2220
+
]
2221
+
2222
+
[[package]]
2223
+
name = "owo-colors"
2224
+
version = "4.3.0"
2225
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2226
+
checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d"
2227
+
2228
+
[[package]]
2229
+
name = "parking_lot"
2230
+
version = "0.12.5"
2231
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2232
+
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
2233
+
dependencies = [
2234
+
"lock_api",
2235
+
"parking_lot_core",
2236
+
]
2237
+
2238
+
[[package]]
2239
+
name = "parking_lot_core"
2240
+
version = "0.9.12"
2241
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2242
+
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
2243
+
dependencies = [
2244
+
"cfg-if",
2245
+
"libc",
2246
+
"redox_syscall 0.5.18",
2247
+
"smallvec",
2248
+
"windows-link 0.2.1",
2249
+
]
2250
+
2251
+
[[package]]
2252
+
name = "percent-encoding"
2253
+
version = "2.3.2"
2254
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2255
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
2256
+
2257
+
[[package]]
2258
+
name = "pest"
2259
+
version = "2.8.6"
2260
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2261
+
checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662"
2262
+
dependencies = [
2263
+
"memchr",
2264
+
"ucd-trie",
2265
+
]
2266
+
2267
+
[[package]]
2268
+
name = "pest_derive"
2269
+
version = "2.8.6"
2270
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2271
+
checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77"
2272
+
dependencies = [
2273
+
"pest",
2274
+
"pest_generator",
2275
+
]
2276
+
2277
+
[[package]]
2278
+
name = "pest_generator"
2279
+
version = "2.8.6"
2280
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2281
+
checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f"
2282
+
dependencies = [
2283
+
"pest",
2284
+
"pest_meta",
2285
+
"proc-macro2",
2286
+
"quote",
2287
+
"syn 2.0.117",
2288
+
]
2289
+
2290
+
[[package]]
2291
+
name = "pest_meta"
2292
+
version = "2.8.6"
2293
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2294
+
checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220"
2295
+
dependencies = [
2296
+
"pest",
2297
+
"sha2",
2298
+
]
2299
+
2300
+
[[package]]
2301
+
name = "phf"
2302
+
version = "0.11.3"
2303
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2304
+
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
2305
+
dependencies = [
2306
+
"phf_macros",
2307
+
"phf_shared",
2308
+
]
2309
+
2310
+
[[package]]
2311
+
name = "phf_codegen"
2312
+
version = "0.11.3"
2313
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2314
+
checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
2315
+
dependencies = [
2316
+
"phf_generator",
2317
+
"phf_shared",
2318
+
]
2319
+
2320
+
[[package]]
2321
+
name = "phf_generator"
2322
+
version = "0.11.3"
2323
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2324
+
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
2325
+
dependencies = [
2326
+
"phf_shared",
2327
+
"rand",
2328
+
]
2329
+
2330
+
[[package]]
2331
+
name = "phf_macros"
2332
+
version = "0.11.3"
2333
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2334
+
checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
2335
+
dependencies = [
2336
+
"phf_generator",
2337
+
"phf_shared",
2338
+
"proc-macro2",
2339
+
"quote",
2340
+
"syn 2.0.117",
2341
+
]
2342
+
2343
+
[[package]]
2344
+
name = "phf_shared"
2345
+
version = "0.11.3"
2346
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2347
+
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
2348
+
dependencies = [
2349
+
"siphasher",
2350
+
]
2351
+
2352
+
[[package]]
2353
+
name = "pin-project-lite"
2354
+
version = "0.2.17"
2355
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2356
+
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
2357
+
2358
+
[[package]]
2359
+
name = "plain"
2360
+
version = "0.2.3"
2361
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2362
+
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
2363
+
2364
+
[[package]]
2365
+
name = "portable-atomic"
2366
+
version = "1.13.1"
2367
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2368
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
2369
+
2370
+
[[package]]
2371
+
name = "portable-atomic-util"
2372
+
version = "0.2.5"
2373
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2374
+
checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
2375
+
dependencies = [
2376
+
"portable-atomic",
2377
+
]
2378
+
2379
+
[[package]]
2380
+
name = "powerfmt"
2381
+
version = "0.2.0"
2382
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2383
+
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
2384
+
2385
+
[[package]]
2386
+
name = "prettyplease"
2387
+
version = "0.2.37"
2388
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2389
+
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
2390
+
dependencies = [
2391
+
"proc-macro2",
2392
+
"syn 2.0.117",
2393
+
]
2394
+
2395
+
[[package]]
2396
+
name = "proc-macro2"
2397
+
version = "1.0.106"
2398
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2399
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
2400
+
dependencies = [
2401
+
"unicode-ident",
2402
+
]
2403
+
2404
+
[[package]]
2405
+
name = "prodash"
2406
+
version = "30.0.1"
2407
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2408
+
checksum = "5a6efc566849d3d9d737c5cb06cc50e48950ebe3d3f9d70631490fff3a07b139"
2409
+
dependencies = [
2410
+
"parking_lot",
2411
+
]
2412
+
2413
+
[[package]]
2414
+
name = "quote"
2415
+
version = "1.0.45"
2416
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2417
+
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
2418
+
dependencies = [
2419
+
"proc-macro2",
2420
+
]
2421
+
2422
+
[[package]]
2423
+
name = "r-efi"
2424
+
version = "5.3.0"
2425
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2426
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
2427
+
2428
+
[[package]]
2429
+
name = "r-efi"
2430
+
version = "6.0.0"
2431
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2432
+
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
2433
+
2434
+
[[package]]
2435
+
name = "rand"
2436
+
version = "0.8.5"
2437
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2438
+
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
2439
+
dependencies = [
2440
+
"rand_core",
2441
+
]
2442
+
2443
+
[[package]]
2444
+
name = "rand_core"
2445
+
version = "0.6.4"
2446
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2447
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2448
+
2449
+
[[package]]
2450
+
name = "ratatui"
2451
+
version = "0.30.0"
2452
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2453
+
checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc"
2454
+
dependencies = [
2455
+
"instability",
2456
+
"ratatui-core",
2457
+
"ratatui-crossterm",
2458
+
"ratatui-macros",
2459
+
"ratatui-termwiz",
2460
+
"ratatui-widgets",
2461
+
]
2462
+
2463
+
[[package]]
2464
+
name = "ratatui-core"
2465
+
version = "0.1.0"
2466
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2467
+
checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293"
2468
+
dependencies = [
2469
+
"bitflags 2.11.0",
2470
+
"compact_str",
2471
+
"hashbrown 0.16.1",
2472
+
"indoc",
2473
+
"itertools",
2474
+
"kasuari",
2475
+
"lru",
2476
+
"strum 0.27.2",
2477
+
"thiserror 2.0.18",
2478
+
"unicode-segmentation",
2479
+
"unicode-truncate",
2480
+
"unicode-width",
2481
+
]
2482
+
2483
+
[[package]]
2484
+
name = "ratatui-crossterm"
2485
+
version = "0.1.0"
2486
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2487
+
checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3"
2488
+
dependencies = [
2489
+
"cfg-if",
2490
+
"crossterm",
2491
+
"instability",
2492
+
"ratatui-core",
2493
+
]
2494
+
2495
+
[[package]]
2496
+
name = "ratatui-macros"
2497
+
version = "0.7.0"
2498
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2499
+
checksum = "a7f1342a13e83e4bb9d0b793d0ea762be633f9582048c892ae9041ef39c936f4"
2500
+
dependencies = [
2501
+
"ratatui-core",
2502
+
"ratatui-widgets",
2503
+
]
2504
+
2505
+
[[package]]
2506
+
name = "ratatui-termwiz"
2507
+
version = "0.1.0"
2508
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2509
+
checksum = "0f76fe0bd0ed4295f0321b1676732e2454024c15a35d01904ddb315afd3d545c"
2510
+
dependencies = [
2511
+
"ratatui-core",
2512
+
"termwiz",
2513
+
]
2514
+
2515
+
[[package]]
2516
+
name = "ratatui-widgets"
2517
+
version = "0.3.0"
2518
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2519
+
checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db"
2520
+
dependencies = [
2521
+
"bitflags 2.11.0",
2522
+
"hashbrown 0.16.1",
2523
+
"indoc",
2524
+
"instability",
2525
+
"itertools",
2526
+
"line-clipping",
2527
+
"ratatui-core",
2528
+
"strum 0.27.2",
2529
+
"time",
2530
+
"unicode-segmentation",
2531
+
"unicode-width",
2532
+
]
2533
+
2534
+
[[package]]
2535
+
name = "redox_syscall"
2536
+
version = "0.5.18"
2537
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2538
+
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2539
+
dependencies = [
2540
+
"bitflags 2.11.0",
2541
+
]
2542
+
2543
+
[[package]]
2544
+
name = "redox_syscall"
2545
+
version = "0.7.3"
2546
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2547
+
checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16"
2548
+
dependencies = [
2549
+
"bitflags 2.11.0",
2550
+
]
2551
+
2552
+
[[package]]
2553
+
name = "redox_users"
2554
+
version = "0.5.2"
2555
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2556
+
checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
2557
+
dependencies = [
2558
+
"getrandom 0.2.17",
2559
+
"libredox",
2560
+
"thiserror 2.0.18",
2561
+
]
2562
+
2563
+
[[package]]
2564
+
name = "regex"
2565
+
version = "1.12.3"
2566
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2567
+
checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
2568
+
dependencies = [
2569
+
"aho-corasick",
2570
+
"memchr",
2571
+
"regex-automata",
2572
+
"regex-syntax",
2573
+
]
2574
+
2575
+
[[package]]
2576
+
name = "regex-automata"
2577
+
version = "0.4.14"
2578
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2579
+
checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
2580
+
dependencies = [
2581
+
"aho-corasick",
2582
+
"memchr",
2583
+
"regex-syntax",
2584
+
]
2585
+
2586
+
[[package]]
2587
+
name = "regex-syntax"
2588
+
version = "0.8.10"
2589
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2590
+
checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
2591
+
2592
+
[[package]]
2593
+
name = "rustc-demangle"
2594
+
version = "0.1.27"
2595
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2596
+
checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
2597
+
2598
+
[[package]]
2599
+
name = "rustc_version"
2600
+
version = "0.4.1"
2601
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2602
+
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
2603
+
dependencies = [
2604
+
"semver",
2605
+
]
2606
+
2607
+
[[package]]
2608
+
name = "rustix"
2609
+
version = "1.1.4"
2610
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2611
+
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
2612
+
dependencies = [
2613
+
"bitflags 2.11.0",
2614
+
"errno",
2615
+
"libc",
2616
+
"linux-raw-sys",
2617
+
"windows-sys 0.61.2",
2618
+
]
2619
+
2620
+
[[package]]
2621
+
name = "rustversion"
2622
+
version = "1.0.22"
2623
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2624
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
2625
+
2626
+
[[package]]
2627
+
name = "ryu"
2628
+
version = "1.0.23"
2629
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2630
+
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
2631
+
2632
+
[[package]]
2633
+
name = "same-file"
2634
+
version = "1.0.6"
2635
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2636
+
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
2637
+
dependencies = [
2638
+
"winapi-util",
2639
+
]
2640
+
2641
+
[[package]]
2642
+
name = "scopeguard"
2643
+
version = "1.2.0"
2644
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2645
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
2646
+
2647
+
[[package]]
2648
+
name = "semver"
2649
+
version = "1.0.27"
2650
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2651
+
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
2652
+
dependencies = [
2653
+
"serde",
2654
+
"serde_core",
2655
+
]
2656
+
2657
+
[[package]]
2658
+
name = "serde"
2659
+
version = "1.0.228"
2660
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2661
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
2662
+
dependencies = [
2663
+
"serde_core",
2664
+
"serde_derive",
2665
+
]
2666
+
2667
+
[[package]]
2668
+
name = "serde_core"
2669
+
version = "1.0.228"
2670
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2671
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
2672
+
dependencies = [
2673
+
"serde_derive",
2674
+
]
2675
+
2676
+
[[package]]
2677
+
name = "serde_derive"
2678
+
version = "1.0.228"
2679
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2680
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
2681
+
dependencies = [
2682
+
"proc-macro2",
2683
+
"quote",
2684
+
"syn 2.0.117",
2685
+
]
2686
+
2687
+
[[package]]
2688
+
name = "serde_json"
2689
+
version = "1.0.149"
2690
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2691
+
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
2692
+
dependencies = [
2693
+
"itoa",
2694
+
"memchr",
2695
+
"serde",
2696
+
"serde_core",
2697
+
"zmij",
2698
+
]
2699
+
2700
+
[[package]]
2701
+
name = "serde_spanned"
2702
+
version = "1.0.4"
2703
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2704
+
checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
2705
+
dependencies = [
2706
+
"serde_core",
2707
+
]
2708
+
2709
+
[[package]]
2710
+
name = "sha1"
2711
+
version = "0.10.6"
2712
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2713
+
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
2714
+
dependencies = [
2715
+
"cfg-if",
2716
+
"cpufeatures",
2717
+
"digest",
2718
+
]
2719
+
2720
+
[[package]]
2721
+
name = "sha1-checked"
2722
+
version = "0.10.0"
2723
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2724
+
checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423"
2725
+
dependencies = [
2726
+
"digest",
2727
+
"sha1",
2728
+
]
2729
+
2730
+
[[package]]
2731
+
name = "sha2"
2732
+
version = "0.10.9"
2733
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2734
+
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
2735
+
dependencies = [
2736
+
"cfg-if",
2737
+
"cpufeatures",
2738
+
"digest",
2739
+
]
2740
+
2741
+
[[package]]
2742
+
name = "sharded-slab"
2743
+
version = "0.1.7"
2744
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2745
+
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
2746
+
dependencies = [
2747
+
"lazy_static",
2748
+
]
2749
+
2750
+
[[package]]
2751
+
name = "shell-words"
2752
+
version = "1.1.1"
2753
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2754
+
checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77"
2755
+
2756
+
[[package]]
2757
+
name = "signal-hook"
2758
+
version = "0.3.18"
2759
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2760
+
checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
2761
+
dependencies = [
2762
+
"libc",
2763
+
"signal-hook-registry",
2764
+
]
2765
+
2766
+
[[package]]
2767
+
name = "signal-hook"
2768
+
version = "0.4.3"
2769
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2770
+
checksum = "3b57709da74f9ff9f4a27dce9526eec25ca8407c45a7887243b031a58935fb8e"
2771
+
dependencies = [
2772
+
"libc",
2773
+
"signal-hook-registry",
2774
+
]
2775
+
2776
+
[[package]]
2777
+
name = "signal-hook-mio"
2778
+
version = "0.2.5"
2779
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2780
+
checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
2781
+
dependencies = [
2782
+
"libc",
2783
+
"mio",
2784
+
"signal-hook 0.3.18",
2785
+
]
2786
+
2787
+
[[package]]
2788
+
name = "signal-hook-registry"
2789
+
version = "1.4.8"
2790
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2791
+
checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
2792
+
dependencies = [
2793
+
"errno",
2794
+
"libc",
2795
+
]
2796
+
2797
+
[[package]]
2798
+
name = "siphasher"
2799
+
version = "1.0.2"
2800
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2801
+
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
2802
+
2803
+
[[package]]
2804
+
name = "slab"
2805
+
version = "0.4.12"
2806
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2807
+
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
2808
+
2809
+
[[package]]
2810
+
name = "smallvec"
2811
+
version = "1.15.1"
2812
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2813
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
2814
+
2815
+
[[package]]
2816
+
name = "socket2"
2817
+
version = "0.6.2"
2818
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2819
+
checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0"
2820
+
dependencies = [
2821
+
"libc",
2822
+
"windows-sys 0.60.2",
2823
+
]
2824
+
2825
+
[[package]]
2826
+
name = "stable_deref_trait"
2827
+
version = "1.2.1"
2828
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2829
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
2830
+
2831
+
[[package]]
2832
+
name = "static_assertions"
2833
+
version = "1.1.0"
2834
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2835
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
2836
+
2837
+
[[package]]
2838
+
name = "strsim"
2839
+
version = "0.11.1"
2840
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2841
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
2842
+
2843
+
[[package]]
2844
+
name = "strum"
2845
+
version = "0.27.2"
2846
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2847
+
checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
2848
+
dependencies = [
2849
+
"strum_macros 0.27.2",
2850
+
]
2851
+
2852
+
[[package]]
2853
+
name = "strum"
2854
+
version = "0.28.0"
2855
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2856
+
checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd"
2857
+
dependencies = [
2858
+
"strum_macros 0.28.0",
2859
+
]
2860
+
2861
+
[[package]]
2862
+
name = "strum_macros"
2863
+
version = "0.27.2"
2864
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2865
+
checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
2866
+
dependencies = [
2867
+
"heck",
2868
+
"proc-macro2",
2869
+
"quote",
2870
+
"syn 2.0.117",
2871
+
]
2872
+
2873
+
[[package]]
2874
+
name = "strum_macros"
2875
+
version = "0.28.0"
2876
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2877
+
checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664"
2878
+
dependencies = [
2879
+
"heck",
2880
+
"proc-macro2",
2881
+
"quote",
2882
+
"syn 2.0.117",
2883
+
]
2884
+
2885
+
[[package]]
2886
+
name = "syn"
2887
+
version = "1.0.109"
2888
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2889
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
2890
+
dependencies = [
2891
+
"proc-macro2",
2892
+
"quote",
2893
+
"unicode-ident",
2894
+
]
2895
+
2896
+
[[package]]
2897
+
name = "syn"
2898
+
version = "2.0.117"
2899
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2900
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
2901
+
dependencies = [
2902
+
"proc-macro2",
2903
+
"quote",
2904
+
"unicode-ident",
2905
+
]
2906
+
2907
+
[[package]]
2908
+
name = "sysinfo"
2909
+
version = "0.37.2"
2910
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2911
+
checksum = "16607d5caffd1c07ce073528f9ed972d88db15dd44023fa57142963be3feb11f"
2912
+
dependencies = [
2913
+
"libc",
2914
+
"memchr",
2915
+
"ntapi",
2916
+
"objc2-core-foundation",
2917
+
"objc2-io-kit",
2918
+
"windows",
2919
+
]
2920
+
2921
+
[[package]]
2922
+
name = "tempfile"
2923
+
version = "3.26.0"
2924
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2925
+
checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0"
2926
+
dependencies = [
2927
+
"fastrand",
2928
+
"getrandom 0.4.2",
2929
+
"once_cell",
2930
+
"rustix",
2931
+
"windows-sys 0.61.2",
2932
+
]
2933
+
2934
+
[[package]]
2935
+
name = "terminal_size"
2936
+
version = "0.4.3"
2937
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2938
+
checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
2939
+
dependencies = [
2940
+
"rustix",
2941
+
"windows-sys 0.60.2",
2942
+
]
2943
+
2944
+
[[package]]
2945
+
name = "terminfo"
2946
+
version = "0.9.0"
2947
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2948
+
checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"
2949
+
dependencies = [
2950
+
"fnv",
2951
+
"nom",
2952
+
"phf",
2953
+
"phf_codegen",
2954
+
]
2955
+
2956
+
[[package]]
2957
+
name = "termios"
2958
+
version = "0.3.3"
2959
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2960
+
checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"
2961
+
dependencies = [
2962
+
"libc",
2963
+
]
2964
+
2965
+
[[package]]
2966
+
name = "termwiz"
2967
+
version = "0.23.3"
2968
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2969
+
checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"
2970
+
dependencies = [
2971
+
"anyhow",
2972
+
"base64",
2973
+
"bitflags 2.11.0",
2974
+
"fancy-regex",
2975
+
"filedescriptor",
2976
+
"finl_unicode",
2977
+
"fixedbitset",
2978
+
"hex",
2979
+
"lazy_static",
2980
+
"libc",
2981
+
"log",
2982
+
"memmem",
2983
+
"nix",
2984
+
"num-derive",
2985
+
"num-traits",
2986
+
"ordered-float",
2987
+
"pest",
2988
+
"pest_derive",
2989
+
"phf",
2990
+
"sha2",
2991
+
"signal-hook 0.3.18",
2992
+
"siphasher",
2993
+
"terminfo",
2994
+
"termios",
2995
+
"thiserror 1.0.69",
2996
+
"ucd-trie",
2997
+
"unicode-segmentation",
2998
+
"vtparse",
2999
+
"wezterm-bidi",
3000
+
"wezterm-blob-leases",
3001
+
"wezterm-color-types",
3002
+
"wezterm-dynamic",
3003
+
"wezterm-input-types",
3004
+
"winapi",
3005
+
]
3006
+
3007
+
[[package]]
3008
+
name = "thiserror"
3009
+
version = "1.0.69"
3010
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3011
+
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
3012
+
dependencies = [
3013
+
"thiserror-impl 1.0.69",
3014
+
]
3015
+
3016
+
[[package]]
3017
+
name = "thiserror"
3018
+
version = "2.0.18"
3019
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3020
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
3021
+
dependencies = [
3022
+
"thiserror-impl 2.0.18",
3023
+
]
3024
+
3025
+
[[package]]
3026
+
name = "thiserror-impl"
3027
+
version = "1.0.69"
3028
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3029
+
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3030
+
dependencies = [
3031
+
"proc-macro2",
3032
+
"quote",
3033
+
"syn 2.0.117",
3034
+
]
3035
+
3036
+
[[package]]
3037
+
name = "thiserror-impl"
3038
+
version = "2.0.18"
3039
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3040
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
3041
+
dependencies = [
3042
+
"proc-macro2",
3043
+
"quote",
3044
+
"syn 2.0.117",
3045
+
]
3046
+
3047
+
[[package]]
3048
+
name = "thread_local"
3049
+
version = "1.1.9"
3050
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3051
+
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
3052
+
dependencies = [
3053
+
"cfg-if",
3054
+
]
3055
+
3056
+
[[package]]
3057
+
name = "time"
3058
+
version = "0.3.47"
3059
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3060
+
checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
3061
+
dependencies = [
3062
+
"deranged",
3063
+
"itoa",
3064
+
"libc",
3065
+
"num-conv",
3066
+
"num_threads",
3067
+
"powerfmt",
3068
+
"serde_core",
3069
+
"time-core",
3070
+
"time-macros",
3071
+
]
3072
+
3073
+
[[package]]
3074
+
name = "time-core"
3075
+
version = "0.1.8"
3076
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3077
+
checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
3078
+
3079
+
[[package]]
3080
+
name = "time-macros"
3081
+
version = "0.2.27"
3082
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3083
+
checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
3084
+
dependencies = [
3085
+
"num-conv",
3086
+
"time-core",
3087
+
]
3088
+
3089
+
[[package]]
3090
+
name = "tinyvec"
3091
+
version = "1.10.0"
3092
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3093
+
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
3094
+
dependencies = [
3095
+
"tinyvec_macros",
3096
+
]
3097
+
3098
+
[[package]]
3099
+
name = "tinyvec_macros"
3100
+
version = "0.1.1"
3101
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3102
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
3103
+
3104
+
[[package]]
3105
+
name = "tokio"
3106
+
version = "1.50.0"
3107
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3108
+
checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d"
3109
+
dependencies = [
3110
+
"bytes",
3111
+
"libc",
3112
+
"mio",
3113
+
"parking_lot",
3114
+
"pin-project-lite",
3115
+
"signal-hook-registry",
3116
+
"socket2",
3117
+
"tokio-macros",
3118
+
"windows-sys 0.61.2",
3119
+
]
3120
+
3121
+
[[package]]
3122
+
name = "tokio-macros"
3123
+
version = "2.6.0"
3124
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3125
+
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
3126
+
dependencies = [
3127
+
"proc-macro2",
3128
+
"quote",
3129
+
"syn 2.0.117",
3130
+
]
3131
+
3132
+
[[package]]
3133
+
name = "tokio-util"
3134
+
version = "0.7.18"
3135
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3136
+
checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
3137
+
dependencies = [
3138
+
"bytes",
3139
+
"futures-core",
3140
+
"futures-sink",
3141
+
"pin-project-lite",
3142
+
"tokio",
3143
+
]
3144
+
3145
+
[[package]]
3146
+
name = "toml"
3147
+
version = "0.9.12+spec-1.1.0"
3148
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3149
+
checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863"
3150
+
dependencies = [
3151
+
"serde_core",
3152
+
"serde_spanned",
3153
+
"toml_datetime",
3154
+
"toml_writer",
3155
+
]
3156
+
3157
+
[[package]]
3158
+
name = "toml_datetime"
3159
+
version = "0.7.5+spec-1.1.0"
3160
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3161
+
checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
3162
+
dependencies = [
3163
+
"serde_core",
3164
+
]
3165
+
3166
+
[[package]]
3167
+
name = "toml_writer"
3168
+
version = "1.0.6+spec-1.1.0"
3169
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3170
+
checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
3171
+
3172
+
[[package]]
3173
+
name = "tracing"
3174
+
version = "0.1.44"
3175
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3176
+
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
3177
+
dependencies = [
3178
+
"pin-project-lite",
3179
+
"tracing-attributes",
3180
+
"tracing-core",
3181
+
]
3182
+
3183
+
[[package]]
3184
+
name = "tracing-attributes"
3185
+
version = "0.1.31"
3186
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3187
+
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
3188
+
dependencies = [
3189
+
"proc-macro2",
3190
+
"quote",
3191
+
"syn 2.0.117",
3192
+
]
3193
+
3194
+
[[package]]
3195
+
name = "tracing-core"
3196
+
version = "0.1.36"
3197
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3198
+
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
3199
+
dependencies = [
3200
+
"once_cell",
3201
+
"valuable",
3202
+
]
3203
+
3204
+
[[package]]
3205
+
name = "tracing-error"
3206
+
version = "0.2.1"
3207
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3208
+
checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db"
3209
+
dependencies = [
3210
+
"tracing",
3211
+
"tracing-subscriber",
3212
+
]
3213
+
3214
+
[[package]]
3215
+
name = "tracing-log"
3216
+
version = "0.2.0"
3217
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3218
+
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
3219
+
dependencies = [
3220
+
"log",
3221
+
"once_cell",
3222
+
"tracing-core",
3223
+
]
3224
+
3225
+
[[package]]
3226
+
name = "tracing-subscriber"
3227
+
version = "0.3.22"
3228
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3229
+
checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
3230
+
dependencies = [
3231
+
"matchers",
3232
+
"nu-ansi-term",
3233
+
"once_cell",
3234
+
"regex-automata",
3235
+
"sharded-slab",
3236
+
"smallvec",
3237
+
"thread_local",
3238
+
"tracing",
3239
+
"tracing-core",
3240
+
"tracing-log",
3241
+
]
3242
+
3243
+
[[package]]
3244
+
name = "typenum"
3245
+
version = "1.19.0"
3246
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3247
+
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
3248
+
3249
+
[[package]]
3250
+
name = "ucd-trie"
3251
+
version = "0.1.7"
3252
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3253
+
checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
3254
+
3255
+
[[package]]
3256
+
name = "unicase"
3257
+
version = "2.9.0"
3258
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3259
+
checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
3260
+
3261
+
[[package]]
3262
+
name = "unicode-bom"
3263
+
version = "2.0.3"
3264
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3265
+
checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
3266
+
3267
+
[[package]]
3268
+
name = "unicode-ident"
3269
+
version = "1.0.24"
3270
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3271
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
3272
+
3273
+
[[package]]
3274
+
name = "unicode-normalization"
3275
+
version = "0.1.25"
3276
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3277
+
checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
3278
+
dependencies = [
3279
+
"tinyvec",
3280
+
]
3281
+
3282
+
[[package]]
3283
+
name = "unicode-segmentation"
3284
+
version = "1.12.0"
3285
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3286
+
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
3287
+
3288
+
[[package]]
3289
+
name = "unicode-truncate"
3290
+
version = "2.0.1"
3291
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3292
+
checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5"
3293
+
dependencies = [
3294
+
"itertools",
3295
+
"unicode-segmentation",
3296
+
"unicode-width",
3297
+
]
3298
+
3299
+
[[package]]
3300
+
name = "unicode-width"
3301
+
version = "0.2.2"
3302
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3303
+
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
3304
+
3305
+
[[package]]
3306
+
name = "unicode-xid"
3307
+
version = "0.2.6"
3308
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3309
+
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
3310
+
3311
+
[[package]]
3312
+
name = "utf8parse"
3313
+
version = "0.2.2"
3314
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3315
+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
3316
+
3317
+
[[package]]
3318
+
name = "uuid"
3319
+
version = "1.21.0"
3320
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3321
+
checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb"
3322
+
dependencies = [
3323
+
"atomic",
3324
+
"getrandom 0.4.2",
3325
+
"js-sys",
3326
+
"wasm-bindgen",
3327
+
]
3328
+
3329
+
[[package]]
3330
+
name = "valuable"
3331
+
version = "0.1.1"
3332
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3333
+
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
3334
+
3335
+
[[package]]
3336
+
name = "vergen"
3337
+
version = "9.1.0"
3338
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3339
+
checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75"
3340
+
dependencies = [
3341
+
"anyhow",
3342
+
"cargo_metadata",
3343
+
"derive_builder",
3344
+
"regex",
3345
+
"rustversion",
3346
+
"time",
3347
+
"vergen-lib",
3348
+
]
3349
+
3350
+
[[package]]
3351
+
name = "vergen-gix"
3352
+
version = "9.1.0"
3353
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3354
+
checksum = "24433912be6b84c6f8f41907edfaad852deaa666f59da5f46621b0ef58b644f0"
3355
+
dependencies = [
3356
+
"anyhow",
3357
+
"derive_builder",
3358
+
"gix",
3359
+
"rustversion",
3360
+
"time",
3361
+
"vergen",
3362
+
"vergen-lib",
3363
+
]
3364
+
3365
+
[[package]]
3366
+
name = "vergen-lib"
3367
+
version = "9.1.0"
3368
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3369
+
checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569"
3370
+
dependencies = [
3371
+
"anyhow",
3372
+
"derive_builder",
3373
+
"rustversion",
3374
+
]
3375
+
3376
+
[[package]]
3377
+
name = "version_check"
3378
+
version = "0.9.5"
3379
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3380
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
3381
+
3382
+
[[package]]
3383
+
name = "vtparse"
3384
+
version = "0.6.2"
3385
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3386
+
checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0"
3387
+
dependencies = [
3388
+
"utf8parse",
3389
+
]
3390
+
3391
+
[[package]]
3392
+
name = "walkdir"
3393
+
version = "2.5.0"
3394
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3395
+
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
3396
+
dependencies = [
3397
+
"same-file",
3398
+
"winapi-util",
3399
+
]
3400
+
3401
+
[[package]]
3402
+
name = "wasi"
3403
+
version = "0.11.1+wasi-snapshot-preview1"
3404
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3405
+
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
3406
+
3407
+
[[package]]
3408
+
name = "wasip2"
3409
+
version = "1.0.2+wasi-0.2.9"
3410
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3411
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
3412
+
dependencies = [
3413
+
"wit-bindgen",
3414
+
]
3415
+
3416
+
[[package]]
3417
+
name = "wasip3"
3418
+
version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
3419
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3420
+
checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
3421
+
dependencies = [
3422
+
"wit-bindgen",
3423
+
]
3424
+
3425
+
[[package]]
3426
+
name = "wasm-bindgen"
3427
+
version = "0.2.114"
3428
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3429
+
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
3430
+
dependencies = [
3431
+
"cfg-if",
3432
+
"once_cell",
3433
+
"rustversion",
3434
+
"wasm-bindgen-macro",
3435
+
"wasm-bindgen-shared",
3436
+
]
3437
+
3438
+
[[package]]
3439
+
name = "wasm-bindgen-macro"
3440
+
version = "0.2.114"
3441
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3442
+
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
3443
+
dependencies = [
3444
+
"quote",
3445
+
"wasm-bindgen-macro-support",
3446
+
]
3447
+
3448
+
[[package]]
3449
+
name = "wasm-bindgen-macro-support"
3450
+
version = "0.2.114"
3451
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3452
+
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
3453
+
dependencies = [
3454
+
"bumpalo",
3455
+
"proc-macro2",
3456
+
"quote",
3457
+
"syn 2.0.117",
3458
+
"wasm-bindgen-shared",
3459
+
]
3460
+
3461
+
[[package]]
3462
+
name = "wasm-bindgen-shared"
3463
+
version = "0.2.114"
3464
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3465
+
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
3466
+
dependencies = [
3467
+
"unicode-ident",
3468
+
]
3469
+
3470
+
[[package]]
3471
+
name = "wasm-encoder"
3472
+
version = "0.244.0"
3473
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3474
+
checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
3475
+
dependencies = [
3476
+
"leb128fmt",
3477
+
"wasmparser",
3478
+
]
3479
+
3480
+
[[package]]
3481
+
name = "wasm-metadata"
3482
+
version = "0.244.0"
3483
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3484
+
checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
3485
+
dependencies = [
3486
+
"anyhow",
3487
+
"indexmap",
3488
+
"wasm-encoder",
3489
+
"wasmparser",
3490
+
]
3491
+
3492
+
[[package]]
3493
+
name = "wasmparser"
3494
+
version = "0.244.0"
3495
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3496
+
checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
3497
+
dependencies = [
3498
+
"bitflags 2.11.0",
3499
+
"hashbrown 0.15.5",
3500
+
"indexmap",
3501
+
"semver",
3502
+
]
3503
+
3504
+
[[package]]
3505
+
name = "wezterm-bidi"
3506
+
version = "0.2.3"
3507
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3508
+
checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec"
3509
+
dependencies = [
3510
+
"log",
3511
+
"wezterm-dynamic",
3512
+
]
3513
+
3514
+
[[package]]
3515
+
name = "wezterm-blob-leases"
3516
+
version = "0.1.1"
3517
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3518
+
checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7"
3519
+
dependencies = [
3520
+
"getrandom 0.3.4",
3521
+
"mac_address",
3522
+
"sha2",
3523
+
"thiserror 1.0.69",
3524
+
"uuid",
3525
+
]
3526
+
3527
+
[[package]]
3528
+
name = "wezterm-color-types"
3529
+
version = "0.3.0"
3530
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3531
+
checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296"
3532
+
dependencies = [
3533
+
"csscolorparser",
3534
+
"deltae",
3535
+
"lazy_static",
3536
+
"wezterm-dynamic",
3537
+
]
3538
+
3539
+
[[package]]
3540
+
name = "wezterm-dynamic"
3541
+
version = "0.2.1"
3542
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3543
+
checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac"
3544
+
dependencies = [
3545
+
"log",
3546
+
"ordered-float",
3547
+
"strsim",
3548
+
"thiserror 1.0.69",
3549
+
"wezterm-dynamic-derive",
3550
+
]
3551
+
3552
+
[[package]]
3553
+
name = "wezterm-dynamic-derive"
3554
+
version = "0.1.1"
3555
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3556
+
checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b"
3557
+
dependencies = [
3558
+
"proc-macro2",
3559
+
"quote",
3560
+
"syn 1.0.109",
3561
+
]
3562
+
3563
+
[[package]]
3564
+
name = "wezterm-input-types"
3565
+
version = "0.1.0"
3566
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3567
+
checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e"
3568
+
dependencies = [
3569
+
"bitflags 1.3.2",
3570
+
"euclid",
3571
+
"lazy_static",
3572
+
"serde",
3573
+
"wezterm-dynamic",
3574
+
]
3575
+
3576
+
[[package]]
3577
+
name = "winapi"
3578
+
version = "0.3.9"
3579
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3580
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
3581
+
dependencies = [
3582
+
"winapi-i686-pc-windows-gnu",
3583
+
"winapi-x86_64-pc-windows-gnu",
3584
+
]
3585
+
3586
+
[[package]]
3587
+
name = "winapi-i686-pc-windows-gnu"
3588
+
version = "0.4.0"
3589
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3590
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
3591
+
3592
+
[[package]]
3593
+
name = "winapi-util"
3594
+
version = "0.1.11"
3595
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3596
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
3597
+
dependencies = [
3598
+
"windows-sys 0.61.2",
3599
+
]
3600
+
3601
+
[[package]]
3602
+
name = "winapi-x86_64-pc-windows-gnu"
3603
+
version = "0.4.0"
3604
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3605
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
3606
+
3607
+
[[package]]
3608
+
name = "windows"
3609
+
version = "0.61.3"
3610
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3611
+
checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
3612
+
dependencies = [
3613
+
"windows-collections",
3614
+
"windows-core",
3615
+
"windows-future",
3616
+
"windows-link 0.1.3",
3617
+
"windows-numerics",
3618
+
]
3619
+
3620
+
[[package]]
3621
+
name = "windows-collections"
3622
+
version = "0.2.0"
3623
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3624
+
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
3625
+
dependencies = [
3626
+
"windows-core",
3627
+
]
3628
+
3629
+
[[package]]
3630
+
name = "windows-core"
3631
+
version = "0.61.2"
3632
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3633
+
checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
3634
+
dependencies = [
3635
+
"windows-implement",
3636
+
"windows-interface",
3637
+
"windows-link 0.1.3",
3638
+
"windows-result",
3639
+
"windows-strings",
3640
+
]
3641
+
3642
+
[[package]]
3643
+
name = "windows-future"
3644
+
version = "0.2.1"
3645
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3646
+
checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
3647
+
dependencies = [
3648
+
"windows-core",
3649
+
"windows-link 0.1.3",
3650
+
"windows-threading",
3651
+
]
3652
+
3653
+
[[package]]
3654
+
name = "windows-implement"
3655
+
version = "0.60.2"
3656
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3657
+
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
3658
+
dependencies = [
3659
+
"proc-macro2",
3660
+
"quote",
3661
+
"syn 2.0.117",
3662
+
]
3663
+
3664
+
[[package]]
3665
+
name = "windows-interface"
3666
+
version = "0.59.3"
3667
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3668
+
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
3669
+
dependencies = [
3670
+
"proc-macro2",
3671
+
"quote",
3672
+
"syn 2.0.117",
3673
+
]
3674
+
3675
+
[[package]]
3676
+
name = "windows-link"
3677
+
version = "0.1.3"
3678
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3679
+
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
3680
+
3681
+
[[package]]
3682
+
name = "windows-link"
3683
+
version = "0.2.1"
3684
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3685
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
3686
+
3687
+
[[package]]
3688
+
name = "windows-numerics"
3689
+
version = "0.2.0"
3690
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3691
+
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
3692
+
dependencies = [
3693
+
"windows-core",
3694
+
"windows-link 0.1.3",
3695
+
]
3696
+
3697
+
[[package]]
3698
+
name = "windows-result"
3699
+
version = "0.3.4"
3700
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3701
+
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
3702
+
dependencies = [
3703
+
"windows-link 0.1.3",
3704
+
]
3705
+
3706
+
[[package]]
3707
+
name = "windows-strings"
3708
+
version = "0.4.2"
3709
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3710
+
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
3711
+
dependencies = [
3712
+
"windows-link 0.1.3",
3713
+
]
3714
+
3715
+
[[package]]
3716
+
name = "windows-sys"
3717
+
version = "0.59.0"
3718
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3719
+
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
3720
+
dependencies = [
3721
+
"windows-targets 0.52.6",
3722
+
]
3723
+
3724
+
[[package]]
3725
+
name = "windows-sys"
3726
+
version = "0.60.2"
3727
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3728
+
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
3729
+
dependencies = [
3730
+
"windows-targets 0.53.5",
3731
+
]
3732
+
3733
+
[[package]]
3734
+
name = "windows-sys"
3735
+
version = "0.61.2"
3736
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3737
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
3738
+
dependencies = [
3739
+
"windows-link 0.2.1",
3740
+
]
3741
+
3742
+
[[package]]
3743
+
name = "windows-targets"
3744
+
version = "0.52.6"
3745
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3746
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
3747
+
dependencies = [
3748
+
"windows_aarch64_gnullvm 0.52.6",
3749
+
"windows_aarch64_msvc 0.52.6",
3750
+
"windows_i686_gnu 0.52.6",
3751
+
"windows_i686_gnullvm 0.52.6",
3752
+
"windows_i686_msvc 0.52.6",
3753
+
"windows_x86_64_gnu 0.52.6",
3754
+
"windows_x86_64_gnullvm 0.52.6",
3755
+
"windows_x86_64_msvc 0.52.6",
3756
+
]
3757
+
3758
+
[[package]]
3759
+
name = "windows-targets"
3760
+
version = "0.53.5"
3761
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3762
+
checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
3763
+
dependencies = [
3764
+
"windows-link 0.2.1",
3765
+
"windows_aarch64_gnullvm 0.53.1",
3766
+
"windows_aarch64_msvc 0.53.1",
3767
+
"windows_i686_gnu 0.53.1",
3768
+
"windows_i686_gnullvm 0.53.1",
3769
+
"windows_i686_msvc 0.53.1",
3770
+
"windows_x86_64_gnu 0.53.1",
3771
+
"windows_x86_64_gnullvm 0.53.1",
3772
+
"windows_x86_64_msvc 0.53.1",
3773
+
]
3774
+
3775
+
[[package]]
3776
+
name = "windows-threading"
3777
+
version = "0.1.0"
3778
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3779
+
checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
3780
+
dependencies = [
3781
+
"windows-link 0.1.3",
3782
+
]
3783
+
3784
+
[[package]]
3785
+
name = "windows_aarch64_gnullvm"
3786
+
version = "0.52.6"
3787
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3788
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
3789
+
3790
+
[[package]]
3791
+
name = "windows_aarch64_gnullvm"
3792
+
version = "0.53.1"
3793
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3794
+
checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
3795
+
3796
+
[[package]]
3797
+
name = "windows_aarch64_msvc"
3798
+
version = "0.52.6"
3799
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3800
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
3801
+
3802
+
[[package]]
3803
+
name = "windows_aarch64_msvc"
3804
+
version = "0.53.1"
3805
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3806
+
checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
3807
+
3808
+
[[package]]
3809
+
name = "windows_i686_gnu"
3810
+
version = "0.52.6"
3811
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3812
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
3813
+
3814
+
[[package]]
3815
+
name = "windows_i686_gnu"
3816
+
version = "0.53.1"
3817
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3818
+
checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
3819
+
3820
+
[[package]]
3821
+
name = "windows_i686_gnullvm"
3822
+
version = "0.52.6"
3823
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3824
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
3825
+
3826
+
[[package]]
3827
+
name = "windows_i686_gnullvm"
3828
+
version = "0.53.1"
3829
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3830
+
checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
3831
+
3832
+
[[package]]
3833
+
name = "windows_i686_msvc"
3834
+
version = "0.52.6"
3835
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3836
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
3837
+
3838
+
[[package]]
3839
+
name = "windows_i686_msvc"
3840
+
version = "0.53.1"
3841
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3842
+
checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
3843
+
3844
+
[[package]]
3845
+
name = "windows_x86_64_gnu"
3846
+
version = "0.52.6"
3847
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3848
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
3849
+
3850
+
[[package]]
3851
+
name = "windows_x86_64_gnu"
3852
+
version = "0.53.1"
3853
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3854
+
checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
3855
+
3856
+
[[package]]
3857
+
name = "windows_x86_64_gnullvm"
3858
+
version = "0.52.6"
3859
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3860
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
3861
+
3862
+
[[package]]
3863
+
name = "windows_x86_64_gnullvm"
3864
+
version = "0.53.1"
3865
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3866
+
checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
3867
+
3868
+
[[package]]
3869
+
name = "windows_x86_64_msvc"
3870
+
version = "0.52.6"
3871
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3872
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
3873
+
3874
+
[[package]]
3875
+
name = "windows_x86_64_msvc"
3876
+
version = "0.53.1"
3877
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3878
+
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
3879
+
3880
+
[[package]]
3881
+
name = "winnow"
3882
+
version = "0.7.15"
3883
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3884
+
checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
3885
+
dependencies = [
3886
+
"memchr",
3887
+
]
3888
+
3889
+
[[package]]
3890
+
name = "wit-bindgen"
3891
+
version = "0.51.0"
3892
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3893
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
3894
+
dependencies = [
3895
+
"wit-bindgen-rust-macro",
3896
+
]
3897
+
3898
+
[[package]]
3899
+
name = "wit-bindgen-core"
3900
+
version = "0.51.0"
3901
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3902
+
checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
3903
+
dependencies = [
3904
+
"anyhow",
3905
+
"heck",
3906
+
"wit-parser",
3907
+
]
3908
+
3909
+
[[package]]
3910
+
name = "wit-bindgen-rust"
3911
+
version = "0.51.0"
3912
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3913
+
checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
3914
+
dependencies = [
3915
+
"anyhow",
3916
+
"heck",
3917
+
"indexmap",
3918
+
"prettyplease",
3919
+
"syn 2.0.117",
3920
+
"wasm-metadata",
3921
+
"wit-bindgen-core",
3922
+
"wit-component",
3923
+
]
3924
+
3925
+
[[package]]
3926
+
name = "wit-bindgen-rust-macro"
3927
+
version = "0.51.0"
3928
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3929
+
checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
3930
+
dependencies = [
3931
+
"anyhow",
3932
+
"prettyplease",
3933
+
"proc-macro2",
3934
+
"quote",
3935
+
"syn 2.0.117",
3936
+
"wit-bindgen-core",
3937
+
"wit-bindgen-rust",
3938
+
]
3939
+
3940
+
[[package]]
3941
+
name = "wit-component"
3942
+
version = "0.244.0"
3943
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3944
+
checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
3945
+
dependencies = [
3946
+
"anyhow",
3947
+
"bitflags 2.11.0",
3948
+
"indexmap",
3949
+
"log",
3950
+
"serde",
3951
+
"serde_derive",
3952
+
"serde_json",
3953
+
"wasm-encoder",
3954
+
"wasm-metadata",
3955
+
"wasmparser",
3956
+
"wit-parser",
3957
+
]
3958
+
3959
+
[[package]]
3960
+
name = "wit-parser"
3961
+
version = "0.244.0"
3962
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3963
+
checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
3964
+
dependencies = [
3965
+
"anyhow",
3966
+
"id-arena",
3967
+
"indexmap",
3968
+
"log",
3969
+
"semver",
3970
+
"serde",
3971
+
"serde_derive",
3972
+
"serde_json",
3973
+
"unicode-xid",
3974
+
"wasmparser",
3975
+
]
3976
+
3977
+
[[package]]
3978
+
name = "zlib-rs"
3979
+
version = "0.5.5"
3980
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3981
+
checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
3982
+
3983
+
[[package]]
3984
+
name = "zmij"
3985
+
version = "1.0.21"
3986
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3987
+
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+29
-1
Cargo.toml
+29
-1
Cargo.toml
···
14
14
# documentation = ""
15
15
readme = "README.md"
16
16
keywords = ["PKS", "todo", "personal tools"]
17
+
rust-version = "1.94.0"
17
18
18
19
[workspace.lints.rust]
19
20
unsafe_code = "forbid"
···
24
25
nursery = "deny"
25
26
26
27
[workspace.dependencies]
27
-
28
+
snafu = "0.9.0"
29
+
tracing = "0.1.44"
28
30
29
31
[package]
30
32
name = "filaments"
···
43
45
workspace = true
44
46
45
47
[dependencies]
48
+
tracing.workspace = true
49
+
color-eyre = "0.6.5"
50
+
human-panic = "2.0.6"
51
+
better-panic = "0.3.0"
52
+
crossterm = { version = "0.29.0", features = ["event-stream"] }
53
+
futures = "0.3.32"
54
+
ratatui = "0.30.0"
55
+
serde = { version = "1.0.228", features = ["derive"] }
56
+
tokio = { version = "1.50.0", features = ["full"] }
57
+
tokio-util = "0.7.18"
58
+
signal-hook = "0.4.3"
59
+
strum = { version = "0.28.0", features = ["derive"] }
60
+
directories = "6.0.0"
61
+
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
62
+
tracing-error = "0.2.1"
63
+
clap = { version = "4.5.60", features = ["derive", "cargo", "wrap_help", "unicode", "string", "unstable-styles"] }
64
+
65
+
[build-dependencies]
66
+
anyhow = "1.0.102"
67
+
vergen-gix = {version = "9.1.0", features = ["build", "cargo"]}
68
+
69
+
[profile.release]
70
+
codegen-units = 1
71
+
lto = true
72
+
opt-level = "s"
73
+
strip = true
46
74
+16
build.rs
+16
build.rs
···
1
+
//! Build script for filaments
2
+
//! populates rustc environment variables with metadata about
3
+
//! the crate, such as author, commit, etc
4
+
use anyhow::Result;
5
+
use vergen_gix::{BuildBuilder, CargoBuilder, Emitter, GixBuilder};
6
+
7
+
fn main() -> Result<()> {
8
+
let build = BuildBuilder::all_build()?;
9
+
let gix = GixBuilder::all_git()?;
10
+
let cargo = CargoBuilder::all_cargo()?;
11
+
Emitter::default()
12
+
.add_instructions(&build)?
13
+
.add_instructions(&gix)?
14
+
.add_instructions(&cargo)?
15
+
.emit()
16
+
}
+5
-5
flake.lock
+5
-5
flake.lock
···
22
22
},
23
23
"nixpkgs": {
24
24
"locked": {
25
-
"lastModified": 1772542754,
26
-
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
27
-
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
28
-
"revCount": 957538,
25
+
"lastModified": 1772773019,
26
+
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
27
+
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
28
+
"revCount": 958961,
29
29
"type": "tarball",
30
-
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.957538%2Brev-8c809a146a140c5c8806f13399592dbcb1bb5dc4/019cb563-81c1-72cf-aec2-46679a968011/source.tar.gz"
30
+
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.958961%2Brev-aca4d95fce4914b3892661bcb80b8087293536c6/019cc7ad-65c5-7d4e-9860-842d09d8f4fa/source.tar.gz"
31
31
},
32
32
"original": {
33
33
"type": "tarball",
+1
-1
flake.nix
+1
-1
flake.nix
+14
-3
justfile
+14
-3
justfile
···
3
3
default:
4
4
@just --list
5
5
6
+
# release mode by default
7
+
mode := "debug"
8
+
9
+
_cargo_flags := if mode == "release" { "--release" } else { "" }
10
+
11
+
# Builds everything in the workspace
6
12
build:
7
-
cargo build
13
+
cargo build {{_cargo_flags}}
14
+
15
+
# Runs Filaments
16
+
run:
17
+
cargo run {{_cargo_flags}}
8
18
9
-
test:
10
-
cargo test
19
+
# Run all tests
20
+
test:
21
+
cargo test {{_cargo_flags}}
+191
src/app.rs
+191
src/app.rs
···
1
+
use color_eyre::eyre::Result;
2
+
use crossterm::event::KeyEvent;
3
+
use ratatui::layout::Rect;
4
+
use serde::{Deserialize, Serialize};
5
+
use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender};
6
+
use tracing::{debug, info};
7
+
8
+
use crate::{
9
+
components::Component,
10
+
config::Config,
11
+
signal::Signal,
12
+
tui::{Event, Tui},
13
+
};
14
+
15
+
pub struct App {
16
+
config: Config,
17
+
tick_rate: f64,
18
+
frame_rate: f64,
19
+
components: Vec<Box<dyn Component>>,
20
+
should_quit: bool,
21
+
should_suspend: bool,
22
+
#[allow(dead_code)]
23
+
region: Region,
24
+
last_tick_key_events: Vec<KeyEvent>,
25
+
signal_tx: UnboundedSender<Signal>,
26
+
signal_rx: UnboundedReceiver<Signal>,
27
+
}
28
+
29
+
/// The different regions of the application that the user can
30
+
/// be interacting with. Think of these kind of like the highest class of
31
+
/// components.
32
+
#[derive(Default, Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
33
+
pub enum Region {
34
+
#[default]
35
+
Home,
36
+
}
37
+
38
+
impl App {
39
+
/// Construct a new `App` instance.
40
+
pub fn new(tick_rate: f64, frame_rate: f64) -> Self {
41
+
let (signal_tx, signal_rx) = mpsc::unbounded_channel();
42
+
43
+
Self {
44
+
tick_rate,
45
+
frame_rate,
46
+
components: vec![],
47
+
should_quit: false,
48
+
should_suspend: false,
49
+
config: Config::new(),
50
+
region: Region::default(),
51
+
last_tick_key_events: Vec::new(),
52
+
signal_tx,
53
+
signal_rx,
54
+
}
55
+
}
56
+
57
+
pub async fn run(&mut self) -> Result<()> {
58
+
let mut tui = Tui::new()?
59
+
.with_tick_rate(self.tick_rate)
60
+
.with_frame_rate(self.frame_rate);
61
+
tui.enter()?;
62
+
63
+
for component in &mut self.components {
64
+
component.register_signal_handler(self.signal_tx.clone())?;
65
+
}
66
+
for component in &mut self.components {
67
+
component.register_config_handler(self.config.clone())?;
68
+
}
69
+
70
+
for component in &mut self.components {
71
+
component.init(tui.size()?)?;
72
+
}
73
+
74
+
let signal_tx = self.signal_tx.clone();
75
+
76
+
loop {
77
+
self.handle_events(&mut tui).await?;
78
+
79
+
self.handle_signals(&mut tui).await?;
80
+
if self.should_suspend {
81
+
tui.suspend()?;
82
+
83
+
// We are sending resume here because once its done suspending,
84
+
// it will continue execution here.
85
+
signal_tx.send(Signal::Resume)?;
86
+
signal_tx.send(Signal::ClearScreen)?;
87
+
tui.enter()?;
88
+
} else if self.should_quit {
89
+
tui.stop();
90
+
break;
91
+
}
92
+
}
93
+
94
+
tui.exit()?;
95
+
96
+
Ok(())
97
+
}
98
+
99
+
async fn handle_events(&mut self, tui: &mut Tui) -> Result<()> {
100
+
let Some(event) = tui.next_event().await else {
101
+
return Ok(());
102
+
};
103
+
104
+
let signal_tx = self.signal_tx.clone();
105
+
106
+
match event {
107
+
Event::Quit => signal_tx.send(Signal::Quit)?,
108
+
Event::Tick => signal_tx.send(Signal::Tick)?,
109
+
Event::Render => signal_tx.send(Signal::Render)?,
110
+
Event::Resize(x, y) => signal_tx.send(Signal::Resize(x, y))?,
111
+
Event::Key(key) => self.handle_key_event(key)?,
112
+
113
+
_ => {}
114
+
}
115
+
116
+
for component in &mut self.components {
117
+
if let Some(signal) = component.handle_events(Some(event.clone()))? {
118
+
signal_tx.send(signal)?;
119
+
}
120
+
}
121
+
122
+
Ok(())
123
+
}
124
+
125
+
// We are okay with this because we know that this is the function signature,
126
+
// we just haven't implemented the keyboard parsing logic just yet, revisit
127
+
// this later.
128
+
//
129
+
// DO NOT LET THIS MERGE INTO MAIN WITH THIS CLIPPY IGNORES
130
+
#[allow(clippy::needless_pass_by_ref_mut, clippy::unnecessary_wraps)]
131
+
fn handle_key_event(&mut self, key: KeyEvent) -> Result<()> {
132
+
let _signal_tx = self.signal_tx.clone();
133
+
134
+
info!("key received: {key:#?}");
135
+
136
+
Ok(())
137
+
}
138
+
139
+
async fn handle_signals(&mut self, tui: &mut Tui) -> Result<()> {
140
+
while let Some(signal) = self.signal_rx.recv().await {
141
+
if signal != Signal::Tick && signal != Signal::Render {
142
+
debug!("App: handling signal: {signal:?}");
143
+
}
144
+
145
+
match signal {
146
+
Signal::Tick => {
147
+
self.last_tick_key_events.drain(..);
148
+
}
149
+
150
+
Signal::Quit => self.should_quit = true,
151
+
152
+
Signal::Suspend => self.should_suspend = true,
153
+
154
+
Signal::Resume => self.should_suspend = false,
155
+
156
+
Signal::ClearScreen => tui.terminal.clear()?,
157
+
Signal::Resize(x, y) => self.handle_resize(tui, x, y)?,
158
+
Signal::Render => self.render(tui)?,
159
+
_ => {}
160
+
}
161
+
162
+
for component in &mut self.components {
163
+
if let Some(signal) = component.update(signal.clone())? {
164
+
self.signal_tx.send(signal)?;
165
+
}
166
+
}
167
+
}
168
+
Ok(())
169
+
}
170
+
171
+
fn handle_resize(&mut self, tui: &mut Tui, w: u16, h: u16) -> Result<()> {
172
+
tui.resize(Rect::new(0, 0, w, h))?;
173
+
174
+
self.render(tui)?;
175
+
Ok(())
176
+
}
177
+
178
+
fn render(&mut self, tui: &mut Tui) -> Result<()> {
179
+
tui.draw(|frame| {
180
+
for component in &mut self.components {
181
+
if let Err(err) = component.draw(frame, frame.area()) {
182
+
let _ = self
183
+
.signal_tx
184
+
.send(Signal::Error(format!("Failed to draw: {err:?}")));
185
+
}
186
+
}
187
+
})?;
188
+
189
+
Ok(())
190
+
}
191
+
}
+42
src/cli.rs
+42
src/cli.rs
···
1
+
use clap::Parser;
2
+
3
+
use crate::config::{get_config_dir, get_data_dir};
4
+
5
+
#[derive(Parser, Debug)]
6
+
#[command(author, version = version(), about)]
7
+
pub struct Cli {
8
+
/// Tick rate, i.e. number of ticks per second
9
+
#[arg(short, long, value_name = "FLOAT", default_value_t = 4.0)]
10
+
pub tick_rate: f64,
11
+
12
+
/// Frame rate, i.e. number of frames per second
13
+
#[arg(short, long, value_name = "FLOAT", default_value_t = 60.0)]
14
+
pub frame_rate: f64,
15
+
}
16
+
17
+
const VERSION_MESSAGE: &str = concat!(
18
+
env!("CARGO_PKG_VERSION"),
19
+
"-",
20
+
env!("VERGEN_GIT_DESCRIBE"),
21
+
" (",
22
+
env!("VERGEN_BUILD_DATE"),
23
+
")"
24
+
);
25
+
26
+
pub fn version() -> String {
27
+
let author = clap::crate_authors!();
28
+
29
+
// let current_exe_path = PathBuf::from(clap::crate_name!()).display().to_string();
30
+
let config_dir_path = get_config_dir().display().to_string();
31
+
let data_dir_path = get_data_dir().display().to_string();
32
+
33
+
format!(
34
+
"\
35
+
{VERSION_MESSAGE}
36
+
37
+
Authors: {author}
38
+
39
+
Config directory: {config_dir_path}
40
+
Data directory: {data_dir_path}"
41
+
)
42
+
}
+119
src/components/mod.rs
+119
src/components/mod.rs
···
1
+
use crossterm::event::{KeyEvent, MouseEvent};
2
+
use ratatui::{
3
+
Frame,
4
+
layout::{Rect, Size},
5
+
};
6
+
use tokio::sync::mpsc::UnboundedSender;
7
+
8
+
use crate::{config::Config, signal::Signal, tui::Event};
9
+
10
+
/// `Component` is a trait that represents a visual and interactive element of the user interface.
11
+
///
12
+
/// Implementers of this trait can be registered with the main application loop and will be able to
13
+
/// receive events, update state, and be rendered on the screen.
14
+
pub trait Component: Send {
15
+
/// Register a signal handler that can send signals for processing if necessary.
16
+
///
17
+
/// # Arguments
18
+
///
19
+
/// * `tx` - An unbounded sender that can send signals.
20
+
///
21
+
/// # Returns
22
+
///
23
+
/// * [`color_eyre::Result<()>`] - An Ok result or an error.
24
+
fn register_signal_handler(&mut self, tx: UnboundedSender<Signal>) -> color_eyre::Result<()> {
25
+
let _ = tx; // to appease clippy
26
+
Ok(())
27
+
}
28
+
/// Register a configuration handler that provides configuration settings if necessary.
29
+
///
30
+
/// # Arguments
31
+
///
32
+
/// * `config` - Configuration settings.
33
+
///
34
+
/// # Returns
35
+
///
36
+
/// * [`color_eyre::Result<()>`] - An Ok result or an error.
37
+
fn register_config_handler(&mut self, config: Config) -> color_eyre::Result<()> {
38
+
let _ = config; // to appease clippy
39
+
Ok(())
40
+
}
41
+
/// Initialize the component with a specified area if necessary.
42
+
///
43
+
/// # Arguments
44
+
///
45
+
/// * `area` - Rectangular area to initialize the component within.
46
+
///
47
+
/// # Returns
48
+
///
49
+
/// * [`color_eyre::Result<()>`] - An Ok result or an error.
50
+
fn init(&mut self, area: Size) -> color_eyre::Result<()> {
51
+
let _ = area; // to appease clippy
52
+
Ok(())
53
+
}
54
+
/// Handle incoming events and produce signals if necessary.
55
+
///
56
+
/// # Arguments
57
+
///
58
+
/// * `event` - An optional event to be processed.
59
+
///
60
+
/// # Returns
61
+
///
62
+
/// * [`color_eyre::Result<Option<signal>>`] - A signal to be processed or none.
63
+
fn handle_events(&mut self, event: Option<Event>) -> color_eyre::Result<Option<Signal>> {
64
+
let signal = match event {
65
+
Some(Event::Key(key_event)) => self.handle_key_event(key_event)?,
66
+
Some(Event::Mouse(mouse_event)) => self.handle_mouse_event(mouse_event)?,
67
+
_ => None,
68
+
};
69
+
Ok(signal)
70
+
}
71
+
/// Handle key events and produce signals if necessary.
72
+
///
73
+
/// # Arguments
74
+
///
75
+
/// * `key` - A key event to be processed.
76
+
///
77
+
/// # Returns
78
+
///
79
+
/// * [`color_eyre::Result<Option<signal>>`] - A signal to be processed or none.
80
+
fn handle_key_event(&mut self, key: KeyEvent) -> color_eyre::Result<Option<Signal>> {
81
+
let _ = key; // to appease clippy
82
+
Ok(None)
83
+
}
84
+
/// Handle mouse events and produce signals if necessary.
85
+
///
86
+
/// # Arguments
87
+
///
88
+
/// * `mouse` - A mouse event to be processed.
89
+
///
90
+
/// # Returns
91
+
///
92
+
/// * [`color_eyre::Result<Option<signal>>`] - A signal to be processed or none.
93
+
fn handle_mouse_event(&mut self, mouse: MouseEvent) -> color_eyre::Result<Option<Signal>> {
94
+
let _ = mouse; // to appease clippy
95
+
Ok(None)
96
+
}
97
+
/// Update the state of the component based on a received signal. (REQUIRED)
98
+
///
99
+
/// # Arguments
100
+
///
101
+
/// * `signal` - A signal that may modify the state of the component.
102
+
///
103
+
/// # Returns
104
+
///
105
+
/// * [`color_eyre::Result<Option<signal>>`] - A signal to be processed or none.
106
+
fn update(&mut self, signal: Signal) -> color_eyre::Result<Option<Signal>>;
107
+
108
+
/// Render the component on the screen. (REQUIRED)
109
+
///
110
+
/// # Arguments
111
+
///
112
+
/// * `f` - A frame used for rendering.
113
+
/// * `area` - The area in which the component should be drawn.
114
+
///
115
+
/// # Returns
116
+
///
117
+
/// * [`color_eyre::Result<()>`] - An Ok result or an error.
118
+
fn draw(&mut self, frame: &mut Frame, area: Rect) -> color_eyre::Result<()>;
119
+
}
+76
src/config.rs
+76
src/config.rs
···
1
+
use directories::ProjectDirs;
2
+
use serde::Deserialize;
3
+
use std::{env, path::PathBuf, sync::LazyLock};
4
+
5
+
/// Project Name: Filaments
6
+
pub static PROJECT_NAME: LazyLock<String> =
7
+
LazyLock::new(|| env!("CARGO_CRATE_NAME").to_uppercase());
8
+
9
+
/// The OS-agnostic data directory for the project.
10
+
pub static DATA_DIRECTORY: LazyLock<Option<PathBuf>> = LazyLock::new(|| {
11
+
env::var(format!("{}_DATA", PROJECT_NAME.clone()))
12
+
.ok()
13
+
.map(PathBuf::from)
14
+
});
15
+
16
+
/// The OS-agnostic config directory for the project.
17
+
pub static CONFIG_DIRECTORY: LazyLock<Option<PathBuf>> = LazyLock::new(|| {
18
+
env::var(format!("{}_CONFIG", PROJECT_NAME.clone()))
19
+
.ok()
20
+
.map(PathBuf::from)
21
+
});
22
+
23
+
/// The App Config and Data locations.
24
+
#[derive(Clone, Debug, Deserialize, Default)]
25
+
#[expect(dead_code)]
26
+
pub struct AppDirs {
27
+
#[serde(default)]
28
+
pub data_dir: PathBuf,
29
+
#[serde(default)]
30
+
pub config_dir: PathBuf,
31
+
}
32
+
33
+
/// Configuration for the App
34
+
#[expect(dead_code)]
35
+
#[derive(Debug, Clone)]
36
+
pub struct Config {
37
+
pub app_dirs: AppDirs, // pub data_dir: PathBuf,
38
+
// pub keybindings: KeyBindings,
39
+
40
+
// pub styles: Styles,
41
+
}
42
+
43
+
impl Config {
44
+
pub fn new() -> Self {
45
+
Self {
46
+
app_dirs: AppDirs {
47
+
data_dir: get_data_dir(),
48
+
config_dir: get_config_dir(),
49
+
},
50
+
}
51
+
}
52
+
}
53
+
54
+
/// Returns the path to the OS-agnostic data directory.
55
+
pub fn get_data_dir() -> PathBuf {
56
+
DATA_DIRECTORY.clone().unwrap_or_else(|| {
57
+
project_directory().map_or_else(
58
+
|| PathBuf::from(".").join(".data"),
59
+
|proj_dirs| proj_dirs.data_local_dir().to_path_buf(),
60
+
)
61
+
})
62
+
}
63
+
64
+
/// Returns the path to the OS-agnostic config directory.
65
+
pub fn get_config_dir() -> PathBuf {
66
+
CONFIG_DIRECTORY.clone().unwrap_or_else(|| {
67
+
project_directory().map_or_else(
68
+
|| PathBuf::from(".").join(".config"),
69
+
|proj_dirs| proj_dirs.config_local_dir().to_path_buf(),
70
+
)
71
+
})
72
+
}
73
+
74
+
fn project_directory() -> Option<ProjectDirs> {
75
+
ProjectDirs::from("com", "suri-codes", env!("CARGO_PKG_NAME"))
76
+
}
+74
src/errors.rs
+74
src/errors.rs
···
1
+
/// Sets the panic-hook to be customized color-eyre `panic_hook`.
2
+
///
3
+
/// Additionally the panic handler prints different information
4
+
/// based on debug / release builds.
5
+
pub fn init() -> color_eyre::Result<()> {
6
+
let (_panic_hook, eyre_hook) = color_eyre::config::HookBuilder::default()
7
+
.panic_section(format!(
8
+
"This is a bug. Please report it at {}",
9
+
env!("CARGO_PKG_REPOSITORY")
10
+
))
11
+
.capture_span_trace_by_default(false)
12
+
.display_location_section(false)
13
+
.display_env_section(false)
14
+
.into_hooks();
15
+
16
+
eyre_hook.install()?;
17
+
std::panic::set_hook(Box::new(move |panic_info| {
18
+
//TODO: exit from terminal if the app is in a terminal
19
+
20
+
// in release mode, do human_panic printing
21
+
#[cfg(not(debug_assertions))]
22
+
{
23
+
use human_panic::{handle_dump, metadata, print_msg};
24
+
let metadata = metadata!();
25
+
let file_path = handle_dump(&metadata, panic_info);
26
+
print_msg(file_path, &metadata)
27
+
.expect("human-panic: printing error message to console failed");
28
+
eprintln!("{}", _panic_hook.panic_report(panic_info));
29
+
}
30
+
31
+
// in debug mode do better panic printing
32
+
#[cfg(debug_assertions)]
33
+
{
34
+
better_panic::Settings::auto()
35
+
.most_recent_first(false)
36
+
.lineno_suffix(true)
37
+
.verbosity(better_panic::Verbosity::Full)
38
+
.create_panic_handler()(panic_info);
39
+
}
40
+
41
+
// 1 = failure
42
+
std::process::exit(1)
43
+
}));
44
+
45
+
Ok(())
46
+
}
47
+
48
+
/// Akin to `dbg!` macro, except that it generates `tracing::Event`s instead
49
+
/// of printing to standard error.
50
+
///
51
+
/// Can customize level by providing a `tracing::Level`, but its debug by default.
52
+
#[macro_export]
53
+
macro_rules! trace_dbg {
54
+
(target: $target:expr, level: $level:expr, $ex:expr) => {
55
+
{
56
+
match $ex {
57
+
value => {
58
+
tracing::event!(target: $target, $level, ?value, stringify!($ex));
59
+
value
60
+
}
61
+
}
62
+
}
63
+
};
64
+
(level: $level:expr, $ex:expr) => {
65
+
trace_dbg!(target: module_path!(), level: $level, $ex)
66
+
};
67
+
68
+
(target: $target:expr, $ex:expr) => {
69
+
trace_dbg!(target: $target, level: tracing::Level::DEBUG, $ex)
70
+
};
71
+
($ex:expr) => {
72
+
trace_dbg!(level: tracing::Level::DEBUG, $ex)
73
+
};
74
+
}
+52
src/logging.rs
+52
src/logging.rs
···
1
+
use std::{
2
+
fs::{File, create_dir_all},
3
+
sync::LazyLock,
4
+
};
5
+
6
+
use color_eyre::eyre::Result;
7
+
use tracing::Level;
8
+
use tracing_error::ErrorLayer;
9
+
use tracing_subscriber::{EnvFilter, Layer, fmt, layer::SubscriberExt, util::SubscriberInitExt};
10
+
11
+
use crate::config;
12
+
13
+
/// The user-set log level if it exists.
14
+
pub static LOG_LEVEL_ENV: LazyLock<String> =
15
+
LazyLock::new(|| format!("{}_LOG_LEVEL", config::PROJECT_NAME.clone()));
16
+
17
+
/// The logfile name set by our package name.
18
+
pub static LOG_FILE: LazyLock<String> = LazyLock::new(|| format!("{}.log", env!("CARGO_PKG_NAME")));
19
+
20
+
/// Initializes the logger, which writes logs to a `log_file` in the data dir.
21
+
///
22
+
/// NOTE: log level is configurable via the `RUST_LOG` env var or the
23
+
/// `FILAMENTS_LOG_LEVEL` env var
24
+
pub fn init() -> Result<()> {
25
+
let directory = config::get_data_dir();
26
+
27
+
create_dir_all(&directory)?;
28
+
29
+
let log_path = directory.join(LOG_FILE.clone());
30
+
let log_file = File::create(log_path)?;
31
+
32
+
let env_filter = EnvFilter::builder().with_default_directive(Level::INFO.into());
33
+
34
+
// If `RUST_LOG` is set, use that as default,, or use value of `LOG_ENV` variable.
35
+
let env_filter = env_filter
36
+
.try_from_env()
37
+
.or_else(|_| env_filter.with_env_var(LOG_LEVEL_ENV.clone()).from_env())?;
38
+
39
+
let file_subscriber = fmt::layer()
40
+
.with_file(true)
41
+
.with_line_number(true)
42
+
.with_writer(log_file)
43
+
.with_target(false)
44
+
.with_ansi(false)
45
+
.with_filter(env_filter);
46
+
tracing_subscriber::registry()
47
+
.with(file_subscriber)
48
+
.with(ErrorLayer::default())
49
+
.try_init()?;
50
+
51
+
Ok(())
52
+
}
+24
-2
src/main.rs
+24
-2
src/main.rs
···
2
2
//! My (suri.codes) personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities.
3
3
//!
4
4
5
-
fn main() {
6
-
println!("Hello, world!");
5
+
use clap::Parser;
6
+
7
+
use crate::{app::App, cli::Cli};
8
+
9
+
mod app;
10
+
mod cli;
11
+
mod components;
12
+
mod config;
13
+
mod errors;
14
+
mod logging;
15
+
mod signal;
16
+
mod tui;
17
+
18
+
#[tokio::main]
19
+
async fn main() -> color_eyre::Result<()> {
20
+
errors::init()?;
21
+
logging::init()?;
22
+
23
+
let args = Cli::parse();
24
+
let mut app = App::new(args.tick_rate, args.frame_rate);
25
+
26
+
app.run().await?;
27
+
28
+
Ok(())
7
29
}
+17
src/signal.rs
+17
src/signal.rs
···
1
+
use strum::Display;
2
+
3
+
use serde::{Deserialize, Serialize};
4
+
5
+
/// The varying signals that can be emitted.
6
+
#[derive(Debug, Clone, PartialEq, Eq, Display, Serialize, Deserialize)]
7
+
pub enum Signal {
8
+
Tick,
9
+
Render,
10
+
Resize(u16, u16),
11
+
Suspend,
12
+
Resume,
13
+
Quit,
14
+
ClearScreen,
15
+
Error(String),
16
+
Help,
17
+
}
+280
src/tui.rs
+280
src/tui.rs
···
1
+
use std::{
2
+
io::{Stdout, stdout},
3
+
ops::{Deref, DerefMut},
4
+
time::Duration,
5
+
};
6
+
7
+
use color_eyre::eyre::Result;
8
+
use crossterm::{
9
+
cursor,
10
+
event::{
11
+
DisableBracketedPaste, DisableMouseCapture, EnableBracketedPaste, EnableMouseCapture,
12
+
EventStream, KeyEvent, KeyEventKind, MouseEvent,
13
+
},
14
+
terminal::{EnterAlternateScreen, LeaveAlternateScreen, enable_raw_mode},
15
+
};
16
+
use futures::{FutureExt as _, StreamExt as _};
17
+
use ratatui::{Terminal, prelude::CrosstermBackend};
18
+
use tokio::{
19
+
sync::mpsc::{self, UnboundedReceiver, UnboundedSender},
20
+
task::JoinHandle,
21
+
time::interval,
22
+
};
23
+
use tokio_util::sync::CancellationToken;
24
+
use tracing::error;
25
+
26
+
/// Events processed by the whole application.
27
+
#[expect(dead_code)]
28
+
#[derive(Debug, Clone)]
29
+
pub enum Event {
30
+
/// Application initialized
31
+
Init,
32
+
33
+
/// Application quit
34
+
Quit,
35
+
36
+
/// Application error
37
+
Error,
38
+
39
+
/// Application closed
40
+
Closed,
41
+
42
+
/// Tick = input refresh rate
43
+
Tick,
44
+
45
+
/// Render application
46
+
Render,
47
+
48
+
/// User enters application
49
+
FocusGained,
50
+
51
+
/// User leaves application
52
+
FocusLost,
53
+
54
+
/// Paste buffer
55
+
Paste(String),
56
+
57
+
/// any key event
58
+
Key(KeyEvent),
59
+
60
+
/// any mouse event
61
+
Mouse(MouseEvent),
62
+
63
+
/// Application resize
64
+
Resize(u16, u16),
65
+
}
66
+
67
+
/// A TUI which supports the general things you would want out of a TUI abstraction.
68
+
pub struct Tui {
69
+
pub terminal: Terminal<CrosstermBackend<Stdout>>,
70
+
pub task: JoinHandle<()>,
71
+
pub cancellation_token: CancellationToken,
72
+
pub event_rx: UnboundedReceiver<Event>,
73
+
pub event_tx: UnboundedSender<Event>,
74
+
pub frame_rate: f64,
75
+
pub tick_rate: f64,
76
+
pub mouse_enabled: bool,
77
+
pub paste_enabled: bool,
78
+
}
79
+
80
+
#[expect(dead_code)]
81
+
impl Tui {
82
+
/// Creates a new TUI.
83
+
pub fn new() -> Result<Self> {
84
+
let (event_tx, event_rx) = mpsc::unbounded_channel();
85
+
Ok(Self {
86
+
terminal: Terminal::new(CrosstermBackend::new(stdout()))?,
87
+
task: tokio::spawn(async {}),
88
+
cancellation_token: CancellationToken::new(),
89
+
event_rx,
90
+
event_tx,
91
+
frame_rate: 60.0,
92
+
tick_rate: 4.0,
93
+
mouse_enabled: false,
94
+
paste_enabled: false,
95
+
})
96
+
}
97
+
98
+
/// Set the tick rate, which is how often the TUI should
99
+
/// source events per second.
100
+
pub const fn with_tick_rate(mut self, tick_rate: f64) -> Self {
101
+
self.tick_rate = tick_rate;
102
+
self
103
+
}
104
+
105
+
/// Set the frame rate.
106
+
pub const fn with_frame_rate(mut self, frame_rate: f64) -> Self {
107
+
self.frame_rate = frame_rate;
108
+
self
109
+
}
110
+
111
+
/// Enable mouse interactions.
112
+
pub const fn set_mouse_enable(mut self, mouse_enabled: bool) -> Self {
113
+
self.mouse_enabled = mouse_enabled;
114
+
self
115
+
}
116
+
117
+
/// Enable pasting into the TUI.
118
+
pub const fn set_paste_enabled(mut self, paste_enabled: bool) -> Self {
119
+
self.paste_enabled = paste_enabled;
120
+
self
121
+
}
122
+
123
+
/// Begin the TUI event loop
124
+
pub fn start(&mut self) {
125
+
self.cancel();
126
+
127
+
self.cancellation_token = CancellationToken::new();
128
+
let event_loop = Self::event_loop(
129
+
self.event_tx.clone(),
130
+
self.cancellation_token.clone(),
131
+
self.tick_rate,
132
+
self.frame_rate,
133
+
);
134
+
self.task = tokio::spawn(async {
135
+
event_loop.await;
136
+
});
137
+
}
138
+
139
+
/// The event-loop for the TUI which sources events from crossterm.
140
+
async fn event_loop(
141
+
event_tx: UnboundedSender<Event>,
142
+
cancellation_token: CancellationToken,
143
+
tick_rate: f64,
144
+
frame_rate: f64,
145
+
) {
146
+
use crossterm::event::Event as CrosstermEvent;
147
+
148
+
let mut event_stream = EventStream::new();
149
+
let mut tick_interval = interval(Duration::from_secs_f64(1.0 / tick_rate));
150
+
let mut render_interval = interval(Duration::from_secs_f64(1.0 / frame_rate));
151
+
152
+
event_tx
153
+
.send(Event::Init)
154
+
.expect("Tui::event_loop: Failed to send init event.");
155
+
loop {
156
+
let event = tokio::select! {
157
+
() = cancellation_token.cancelled() => {
158
+
break;
159
+
}
160
+
_ = tick_interval.tick() => Event::Tick,
161
+
_ = render_interval.tick() => Event::Render,
162
+
crossterm_event = event_stream.next().fuse() => match crossterm_event {
163
+
Some(Ok(event)) => match event {
164
+
// we only care about press down events,
165
+
// not doing anything related to up / down keypresses
166
+
CrosstermEvent::Key(key) if key.kind == KeyEventKind::Press => Event::Key(key),
167
+
CrosstermEvent::Key(_) => continue,
168
+
169
+
CrosstermEvent::Mouse(mouse) => Event::Mouse(mouse),
170
+
CrosstermEvent::Resize(x, y) => Event::Resize(x, y),
171
+
CrosstermEvent::FocusLost => {Event::FocusLost },
172
+
CrosstermEvent::FocusGained => {Event::FocusGained },
173
+
CrosstermEvent::Paste(s)=> {Event::Paste(s)},
174
+
175
+
}
176
+
Some(Err(_)) => Event::Error,
177
+
None => break,
178
+
}
179
+
};
180
+
if event_tx.send(event).is_err() {
181
+
// no more receiver
182
+
break;
183
+
}
184
+
}
185
+
186
+
cancellation_token.cancel();
187
+
}
188
+
189
+
/// Stops the TUI by canceling the event-loop.
190
+
pub fn stop(&self) {
191
+
self.cancel();
192
+
let mut counter = 0;
193
+
while !self.task.is_finished() {
194
+
std::thread::sleep(Duration::from_millis(1));
195
+
counter += 1;
196
+
if counter > 50 {
197
+
self.task.abort();
198
+
}
199
+
if counter > 100 {
200
+
error!("Failed to abort task in 100 milliseconds for some reason");
201
+
break;
202
+
}
203
+
}
204
+
}
205
+
206
+
// Enters into the TUI by enabling alternate screen and starting event-loop.
207
+
pub fn enter(&mut self) -> Result<()> {
208
+
enable_raw_mode()?;
209
+
crossterm::execute!(stdout(), EnterAlternateScreen, cursor::Hide)?;
210
+
if self.mouse_enabled {
211
+
crossterm::execute!(stdout(), EnableMouseCapture)?;
212
+
}
213
+
if self.paste_enabled {
214
+
crossterm::execute!(stdout(), EnableBracketedPaste)?;
215
+
}
216
+
self.start();
217
+
Ok(())
218
+
}
219
+
220
+
/// Exits the tui, by leaving alternate screen.
221
+
pub fn exit(&mut self) -> color_eyre::Result<()> {
222
+
self.stop();
223
+
if crossterm::terminal::is_raw_mode_enabled()? {
224
+
self.flush()?;
225
+
if self.paste_enabled {
226
+
crossterm::execute!(stdout(), DisableBracketedPaste)?;
227
+
}
228
+
if self.mouse_enabled {
229
+
crossterm::execute!(stdout(), DisableMouseCapture)?;
230
+
}
231
+
crossterm::execute!(stdout(), LeaveAlternateScreen, cursor::Show)?;
232
+
crossterm::terminal::disable_raw_mode()?;
233
+
}
234
+
Ok(())
235
+
}
236
+
237
+
/// Cancel the internal event-loop.
238
+
pub fn cancel(&self) {
239
+
self.cancellation_token.cancel();
240
+
}
241
+
242
+
/// Suspend the TUI.
243
+
pub fn suspend(&mut self) -> color_eyre::Result<()> {
244
+
self.exit()?;
245
+
#[cfg(not(windows))]
246
+
signal_hook::low_level::raise(signal_hook::consts::signal::SIGTSTP)?;
247
+
Ok(())
248
+
}
249
+
250
+
/// Resume the TUI.
251
+
pub fn resume(&mut self) -> color_eyre::Result<()> {
252
+
self.enter()?;
253
+
Ok(())
254
+
}
255
+
256
+
/// Get the next event.
257
+
pub async fn next_event(&mut self) -> Option<Event> {
258
+
self.event_rx.recv().await
259
+
}
260
+
}
261
+
262
+
impl Deref for Tui {
263
+
type Target = ratatui::Terminal<CrosstermBackend<Stdout>>;
264
+
265
+
fn deref(&self) -> &Self::Target {
266
+
&self.terminal
267
+
}
268
+
}
269
+
270
+
impl DerefMut for Tui {
271
+
fn deref_mut(&mut self) -> &mut Self::Target {
272
+
&mut self.terminal
273
+
}
274
+
}
275
+
276
+
impl Drop for Tui {
277
+
fn drop(&mut self) {
278
+
self.exit().unwrap();
279
+
}
280
+
}
History
3 rounds
2 comments
suri.codes
submitted
#2
9 commits
expand
collapse
feat: panic_handler
feat/tui: create TUI abstraction
feat/tui: signals + bare config
feat/tui: Component trait
feat/tui: init logging
feat/tui: init app
feat: add build.rs using vergen_gix for metadata
feat/tui: init cli & running tui
feat/config: Keymap + kdl config
2/2 success
expand
collapse
expand 0 comments
pull request successfully merged
suri.codes
submitted
#1
9 commits
expand
collapse
feat: panic_handler
feat/tui: create TUI abstraction
feat/tui: signals + bare config
feat/tui: Component trait
feat/tui: init logging
feat/tui: init app
feat: add build.rs using vergen_gix for metadata
feat/tui: init cli & running tui
feat/config: Keymap + kdl config
2/2 success
expand
collapse
expand 1 comment
suri.codes
submitted
#0
8 commits
expand
collapse
feat: panic_handler
feat/tui: create TUI abstraction
feat/tui: signals + bare config
feat/tui: Component trait
feat/tui: init logging
feat/tui: init app
feat: add build.rs using vergen_gix for metadata
feat/tui: init cli & running tui
expand 1 comment
actually have parsing of the config.kdl and interpret it as keybinds. remove all the unused bindings
app should not emit handling signal on debug