+5349
-12
Diff
round #2
+8
.config/config.kdl
+8
.config/config.kdl
+50
.config/config_old.kdl
+50
.config/config_old.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
+4088
Cargo.lock
+4088
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 0.2.2",
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
+
"kdl",
755
+
"ratatui",
756
+
"serde",
757
+
"signal-hook 0.4.3",
758
+
"strum 0.28.0",
759
+
"tokio",
760
+
"tokio-util",
761
+
"tracing",
762
+
"tracing-error",
763
+
"tracing-subscriber",
764
+
"vergen-gix",
765
+
]
766
+
767
+
[[package]]
768
+
name = "filedescriptor"
769
+
version = "0.8.3"
770
+
source = "registry+https://github.com/rust-lang/crates.io-index"
771
+
checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"
772
+
dependencies = [
773
+
"libc",
774
+
"thiserror 1.0.69",
775
+
"winapi",
776
+
]
777
+
778
+
[[package]]
779
+
name = "filetime"
780
+
version = "0.2.27"
781
+
source = "registry+https://github.com/rust-lang/crates.io-index"
782
+
checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db"
783
+
dependencies = [
784
+
"cfg-if",
785
+
"libc",
786
+
"libredox",
787
+
]
788
+
789
+
[[package]]
790
+
name = "finl_unicode"
791
+
version = "1.4.0"
792
+
source = "registry+https://github.com/rust-lang/crates.io-index"
793
+
checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5"
794
+
795
+
[[package]]
796
+
name = "fixedbitset"
797
+
version = "0.4.2"
798
+
source = "registry+https://github.com/rust-lang/crates.io-index"
799
+
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
800
+
801
+
[[package]]
802
+
name = "fnv"
803
+
version = "1.0.7"
804
+
source = "registry+https://github.com/rust-lang/crates.io-index"
805
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
806
+
807
+
[[package]]
808
+
name = "foldhash"
809
+
version = "0.1.5"
810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
811
+
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
812
+
813
+
[[package]]
814
+
name = "foldhash"
815
+
version = "0.2.0"
816
+
source = "registry+https://github.com/rust-lang/crates.io-index"
817
+
checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
818
+
819
+
[[package]]
820
+
name = "futures"
821
+
version = "0.3.32"
822
+
source = "registry+https://github.com/rust-lang/crates.io-index"
823
+
checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d"
824
+
dependencies = [
825
+
"futures-channel",
826
+
"futures-core",
827
+
"futures-executor",
828
+
"futures-io",
829
+
"futures-sink",
830
+
"futures-task",
831
+
"futures-util",
832
+
]
833
+
834
+
[[package]]
835
+
name = "futures-channel"
836
+
version = "0.3.32"
837
+
source = "registry+https://github.com/rust-lang/crates.io-index"
838
+
checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
839
+
dependencies = [
840
+
"futures-core",
841
+
"futures-sink",
842
+
]
843
+
844
+
[[package]]
845
+
name = "futures-core"
846
+
version = "0.3.32"
847
+
source = "registry+https://github.com/rust-lang/crates.io-index"
848
+
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
849
+
850
+
[[package]]
851
+
name = "futures-executor"
852
+
version = "0.3.32"
853
+
source = "registry+https://github.com/rust-lang/crates.io-index"
854
+
checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d"
855
+
dependencies = [
856
+
"futures-core",
857
+
"futures-task",
858
+
"futures-util",
859
+
]
860
+
861
+
[[package]]
862
+
name = "futures-io"
863
+
version = "0.3.32"
864
+
source = "registry+https://github.com/rust-lang/crates.io-index"
865
+
checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
866
+
867
+
[[package]]
868
+
name = "futures-macro"
869
+
version = "0.3.32"
870
+
source = "registry+https://github.com/rust-lang/crates.io-index"
871
+
checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b"
872
+
dependencies = [
873
+
"proc-macro2",
874
+
"quote",
875
+
"syn 2.0.117",
876
+
]
877
+
878
+
[[package]]
879
+
name = "futures-sink"
880
+
version = "0.3.32"
881
+
source = "registry+https://github.com/rust-lang/crates.io-index"
882
+
checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
883
+
884
+
[[package]]
885
+
name = "futures-task"
886
+
version = "0.3.32"
887
+
source = "registry+https://github.com/rust-lang/crates.io-index"
888
+
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
889
+
890
+
[[package]]
891
+
name = "futures-util"
892
+
version = "0.3.32"
893
+
source = "registry+https://github.com/rust-lang/crates.io-index"
894
+
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
895
+
dependencies = [
896
+
"futures-channel",
897
+
"futures-core",
898
+
"futures-io",
899
+
"futures-macro",
900
+
"futures-sink",
901
+
"futures-task",
902
+
"memchr",
903
+
"pin-project-lite",
904
+
"slab",
905
+
]
906
+
907
+
[[package]]
908
+
name = "generic-array"
909
+
version = "0.14.7"
910
+
source = "registry+https://github.com/rust-lang/crates.io-index"
911
+
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
912
+
dependencies = [
913
+
"typenum",
914
+
"version_check",
915
+
]
916
+
917
+
[[package]]
918
+
name = "getrandom"
919
+
version = "0.2.17"
920
+
source = "registry+https://github.com/rust-lang/crates.io-index"
921
+
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
922
+
dependencies = [
923
+
"cfg-if",
924
+
"libc",
925
+
"wasi",
926
+
]
927
+
928
+
[[package]]
929
+
name = "getrandom"
930
+
version = "0.3.4"
931
+
source = "registry+https://github.com/rust-lang/crates.io-index"
932
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
933
+
dependencies = [
934
+
"cfg-if",
935
+
"libc",
936
+
"r-efi 5.3.0",
937
+
"wasip2",
938
+
]
939
+
940
+
[[package]]
941
+
name = "getrandom"
942
+
version = "0.4.2"
943
+
source = "registry+https://github.com/rust-lang/crates.io-index"
944
+
checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
945
+
dependencies = [
946
+
"cfg-if",
947
+
"libc",
948
+
"r-efi 6.0.0",
949
+
"wasip2",
950
+
"wasip3",
951
+
]
952
+
953
+
[[package]]
954
+
name = "gimli"
955
+
version = "0.32.3"
956
+
source = "registry+https://github.com/rust-lang/crates.io-index"
957
+
checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
958
+
959
+
[[package]]
960
+
name = "gix"
961
+
version = "0.77.0"
962
+
source = "registry+https://github.com/rust-lang/crates.io-index"
963
+
checksum = "3d8284d86a2f5c0987fbf7219a128815cc04af5a18f5fd7eec6a76d83c2b78cc"
964
+
dependencies = [
965
+
"gix-actor",
966
+
"gix-attributes",
967
+
"gix-command",
968
+
"gix-commitgraph",
969
+
"gix-config",
970
+
"gix-date",
971
+
"gix-diff",
972
+
"gix-dir",
973
+
"gix-discover",
974
+
"gix-features",
975
+
"gix-filter",
976
+
"gix-fs",
977
+
"gix-glob",
978
+
"gix-hash",
979
+
"gix-hashtable",
980
+
"gix-ignore",
981
+
"gix-index",
982
+
"gix-lock",
983
+
"gix-object",
984
+
"gix-odb",
985
+
"gix-pack",
986
+
"gix-path",
987
+
"gix-pathspec",
988
+
"gix-protocol",
989
+
"gix-ref",
990
+
"gix-refspec",
991
+
"gix-revision",
992
+
"gix-revwalk",
993
+
"gix-sec",
994
+
"gix-shallow",
995
+
"gix-status",
996
+
"gix-submodule",
997
+
"gix-tempfile",
998
+
"gix-trace",
999
+
"gix-traverse",
1000
+
"gix-url",
1001
+
"gix-utils",
1002
+
"gix-validate",
1003
+
"gix-worktree",
1004
+
"parking_lot",
1005
+
"signal-hook 0.3.18",
1006
+
"smallvec",
1007
+
"thiserror 2.0.18",
1008
+
]
1009
+
1010
+
[[package]]
1011
+
name = "gix-actor"
1012
+
version = "0.37.1"
1013
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1014
+
checksum = "c345528d405eab51d20f505f5fe1a4680973953694e0292c6bbe97827daa55c4"
1015
+
dependencies = [
1016
+
"bstr",
1017
+
"gix-date",
1018
+
"gix-utils",
1019
+
"itoa",
1020
+
"thiserror 2.0.18",
1021
+
"winnow 0.7.15",
1022
+
]
1023
+
1024
+
[[package]]
1025
+
name = "gix-attributes"
1026
+
version = "0.29.0"
1027
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1028
+
checksum = "f47dabf8a50f1558c3a55d978440c7c4f22f87ac897bef03b4edbc96f6115966"
1029
+
dependencies = [
1030
+
"bstr",
1031
+
"gix-glob",
1032
+
"gix-path",
1033
+
"gix-quote",
1034
+
"gix-trace",
1035
+
"kstring",
1036
+
"smallvec",
1037
+
"thiserror 2.0.18",
1038
+
"unicode-bom",
1039
+
]
1040
+
1041
+
[[package]]
1042
+
name = "gix-bitmap"
1043
+
version = "0.2.16"
1044
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1045
+
checksum = "d982fc7ef0608e669851d0d2a6141dae74c60d5a27e8daa451f2a4857bbf41e2"
1046
+
dependencies = [
1047
+
"thiserror 2.0.18",
1048
+
]
1049
+
1050
+
[[package]]
1051
+
name = "gix-chunk"
1052
+
version = "0.4.12"
1053
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1054
+
checksum = "5c356b3825677cb6ff579551bb8311a81821e184453cbd105e2fc5311b288eeb"
1055
+
dependencies = [
1056
+
"thiserror 2.0.18",
1057
+
]
1058
+
1059
+
[[package]]
1060
+
name = "gix-command"
1061
+
version = "0.6.5"
1062
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1063
+
checksum = "46f9c425730a654835351e6da8c3c69ba1804f8b8d4e96d027254151138d5c64"
1064
+
dependencies = [
1065
+
"bstr",
1066
+
"gix-path",
1067
+
"gix-quote",
1068
+
"gix-trace",
1069
+
"shell-words",
1070
+
]
1071
+
1072
+
[[package]]
1073
+
name = "gix-commitgraph"
1074
+
version = "0.31.0"
1075
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1076
+
checksum = "efdcba8048045baf15225daf949d597c3e6183d130245e22a7fbd27084abe63a"
1077
+
dependencies = [
1078
+
"bstr",
1079
+
"gix-chunk",
1080
+
"gix-hash",
1081
+
"memmap2",
1082
+
"thiserror 2.0.18",
1083
+
]
1084
+
1085
+
[[package]]
1086
+
name = "gix-config"
1087
+
version = "0.50.0"
1088
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1089
+
checksum = "b58e2ff8eef96b71f2c5e260f02ca0475caff374027c5cc5a29bda69fac67404"
1090
+
dependencies = [
1091
+
"bstr",
1092
+
"gix-config-value",
1093
+
"gix-features",
1094
+
"gix-glob",
1095
+
"gix-path",
1096
+
"gix-ref",
1097
+
"gix-sec",
1098
+
"memchr",
1099
+
"smallvec",
1100
+
"thiserror 2.0.18",
1101
+
"unicode-bom",
1102
+
"winnow 0.7.15",
1103
+
]
1104
+
1105
+
[[package]]
1106
+
name = "gix-config-value"
1107
+
version = "0.16.0"
1108
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1109
+
checksum = "2409cffa4fe8b303847d5b6ba8df9da9ba65d302fc5ee474ea0cac5afde79840"
1110
+
dependencies = [
1111
+
"bitflags 2.11.0",
1112
+
"bstr",
1113
+
"gix-path",
1114
+
"libc",
1115
+
"thiserror 2.0.18",
1116
+
]
1117
+
1118
+
[[package]]
1119
+
name = "gix-date"
1120
+
version = "0.12.1"
1121
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1122
+
checksum = "fe4a31bab8159e233094fa70d2e5fd3ec6f19e593f67e6ae01281daa48f8d8e7"
1123
+
dependencies = [
1124
+
"bstr",
1125
+
"itoa",
1126
+
"jiff",
1127
+
"smallvec",
1128
+
"thiserror 2.0.18",
1129
+
]
1130
+
1131
+
[[package]]
1132
+
name = "gix-diff"
1133
+
version = "0.57.1"
1134
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1135
+
checksum = "3506936e63ce14cd54b5f28ed06c8e43b92ef9f41c2238cc0bc271a9259b4e90"
1136
+
dependencies = [
1137
+
"bstr",
1138
+
"gix-attributes",
1139
+
"gix-command",
1140
+
"gix-filter",
1141
+
"gix-fs",
1142
+
"gix-hash",
1143
+
"gix-index",
1144
+
"gix-object",
1145
+
"gix-path",
1146
+
"gix-pathspec",
1147
+
"gix-tempfile",
1148
+
"gix-trace",
1149
+
"gix-traverse",
1150
+
"gix-worktree",
1151
+
"imara-diff",
1152
+
"thiserror 2.0.18",
1153
+
]
1154
+
1155
+
[[package]]
1156
+
name = "gix-dir"
1157
+
version = "0.19.0"
1158
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1159
+
checksum = "709d9fad32d2eb8b0129850874246569e801b6d5877e0c41356c23e9e2501e06"
1160
+
dependencies = [
1161
+
"bstr",
1162
+
"gix-discover",
1163
+
"gix-fs",
1164
+
"gix-ignore",
1165
+
"gix-index",
1166
+
"gix-object",
1167
+
"gix-path",
1168
+
"gix-pathspec",
1169
+
"gix-trace",
1170
+
"gix-utils",
1171
+
"gix-worktree",
1172
+
"thiserror 2.0.18",
1173
+
]
1174
+
1175
+
[[package]]
1176
+
name = "gix-discover"
1177
+
version = "0.45.0"
1178
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1179
+
checksum = "42ce096dc132533802a09d6fd5d4008858f2038341dfe2e69e0d0239edb359de"
1180
+
dependencies = [
1181
+
"bstr",
1182
+
"dunce",
1183
+
"gix-fs",
1184
+
"gix-hash",
1185
+
"gix-path",
1186
+
"gix-ref",
1187
+
"gix-sec",
1188
+
"thiserror 2.0.18",
1189
+
]
1190
+
1191
+
[[package]]
1192
+
name = "gix-features"
1193
+
version = "0.45.2"
1194
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1195
+
checksum = "d56aad357ae016449434705033df644ac6253dfcf1281aad3af3af9e907560d1"
1196
+
dependencies = [
1197
+
"crc32fast",
1198
+
"gix-path",
1199
+
"gix-trace",
1200
+
"gix-utils",
1201
+
"libc",
1202
+
"once_cell",
1203
+
"prodash",
1204
+
"thiserror 2.0.18",
1205
+
"walkdir",
1206
+
"zlib-rs",
1207
+
]
1208
+
1209
+
[[package]]
1210
+
name = "gix-filter"
1211
+
version = "0.24.1"
1212
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1213
+
checksum = "10c02464962482570c1f94ad451a608c4391514f803e8074662d02c5629a25dc"
1214
+
dependencies = [
1215
+
"bstr",
1216
+
"encoding_rs",
1217
+
"gix-attributes",
1218
+
"gix-command",
1219
+
"gix-hash",
1220
+
"gix-object",
1221
+
"gix-packetline",
1222
+
"gix-path",
1223
+
"gix-quote",
1224
+
"gix-trace",
1225
+
"gix-utils",
1226
+
"smallvec",
1227
+
"thiserror 2.0.18",
1228
+
]
1229
+
1230
+
[[package]]
1231
+
name = "gix-fs"
1232
+
version = "0.18.2"
1233
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1234
+
checksum = "785b9c499e46bc78d7b81c148c21b3fca18655379ee729a856ed19ce50d359ec"
1235
+
dependencies = [
1236
+
"bstr",
1237
+
"fastrand",
1238
+
"gix-features",
1239
+
"gix-path",
1240
+
"gix-utils",
1241
+
"thiserror 2.0.18",
1242
+
]
1243
+
1244
+
[[package]]
1245
+
name = "gix-glob"
1246
+
version = "0.23.0"
1247
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1248
+
checksum = "e8546300aee4c65c5862c22a3e321124a69b654a61a8b60de546a9284812b7e2"
1249
+
dependencies = [
1250
+
"bitflags 2.11.0",
1251
+
"bstr",
1252
+
"gix-features",
1253
+
"gix-path",
1254
+
]
1255
+
1256
+
[[package]]
1257
+
name = "gix-hash"
1258
+
version = "0.21.2"
1259
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1260
+
checksum = "e153930f42ccdab8a3306b1027cd524879f6a8996cd0c474d18b0e56cae7714d"
1261
+
dependencies = [
1262
+
"faster-hex",
1263
+
"gix-features",
1264
+
"sha1-checked",
1265
+
"thiserror 2.0.18",
1266
+
]
1267
+
1268
+
[[package]]
1269
+
name = "gix-hashtable"
1270
+
version = "0.11.0"
1271
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1272
+
checksum = "222f7428636020bef272a87ed833ea48bf5fb3193f99852ae16fbb5a602bd2f0"
1273
+
dependencies = [
1274
+
"gix-hash",
1275
+
"hashbrown 0.16.1",
1276
+
"parking_lot",
1277
+
]
1278
+
1279
+
[[package]]
1280
+
name = "gix-ignore"
1281
+
version = "0.18.0"
1282
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1283
+
checksum = "dfa727fdf54fd9fb53fa3fbb1a5c17172d3073e8e336bf155f3cac3e25b81b21"
1284
+
dependencies = [
1285
+
"bstr",
1286
+
"gix-glob",
1287
+
"gix-path",
1288
+
"gix-trace",
1289
+
"unicode-bom",
1290
+
]
1291
+
1292
+
[[package]]
1293
+
name = "gix-index"
1294
+
version = "0.45.1"
1295
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1296
+
checksum = "9ea6d3e9e11647ba49f441dea0782494cc6d2875ff43fa4ad9094e6957f42051"
1297
+
dependencies = [
1298
+
"bitflags 2.11.0",
1299
+
"bstr",
1300
+
"filetime",
1301
+
"fnv",
1302
+
"gix-bitmap",
1303
+
"gix-features",
1304
+
"gix-fs",
1305
+
"gix-hash",
1306
+
"gix-lock",
1307
+
"gix-object",
1308
+
"gix-traverse",
1309
+
"gix-utils",
1310
+
"gix-validate",
1311
+
"hashbrown 0.16.1",
1312
+
"itoa",
1313
+
"libc",
1314
+
"memmap2",
1315
+
"rustix",
1316
+
"smallvec",
1317
+
"thiserror 2.0.18",
1318
+
]
1319
+
1320
+
[[package]]
1321
+
name = "gix-lock"
1322
+
version = "20.0.1"
1323
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1324
+
checksum = "115268ae5e3b3b7bc7fc77260eecee05acca458e45318ca45d35467fa81a3ac5"
1325
+
dependencies = [
1326
+
"gix-tempfile",
1327
+
"gix-utils",
1328
+
"thiserror 2.0.18",
1329
+
]
1330
+
1331
+
[[package]]
1332
+
name = "gix-object"
1333
+
version = "0.54.1"
1334
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1335
+
checksum = "363d6a879c52e4890180e0ffa7d8c9a364fd0b7e807caa368e860b80e8d0bc81"
1336
+
dependencies = [
1337
+
"bstr",
1338
+
"gix-actor",
1339
+
"gix-date",
1340
+
"gix-features",
1341
+
"gix-hash",
1342
+
"gix-hashtable",
1343
+
"gix-path",
1344
+
"gix-utils",
1345
+
"gix-validate",
1346
+
"itoa",
1347
+
"smallvec",
1348
+
"thiserror 2.0.18",
1349
+
"winnow 0.7.15",
1350
+
]
1351
+
1352
+
[[package]]
1353
+
name = "gix-odb"
1354
+
version = "0.74.0"
1355
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1356
+
checksum = "165a907df369a12ed4330faf8baf7ae597aadb08cfacb4ed8649f93d90bcc0c5"
1357
+
dependencies = [
1358
+
"arc-swap",
1359
+
"gix-date",
1360
+
"gix-features",
1361
+
"gix-fs",
1362
+
"gix-hash",
1363
+
"gix-hashtable",
1364
+
"gix-object",
1365
+
"gix-pack",
1366
+
"gix-path",
1367
+
"gix-quote",
1368
+
"parking_lot",
1369
+
"tempfile",
1370
+
"thiserror 2.0.18",
1371
+
]
1372
+
1373
+
[[package]]
1374
+
name = "gix-pack"
1375
+
version = "0.64.1"
1376
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1377
+
checksum = "b04a73d5ab07ea0faae55e2c0ae6f24e36e365ac8ce140394dee3a2c89cd4366"
1378
+
dependencies = [
1379
+
"clru",
1380
+
"gix-chunk",
1381
+
"gix-features",
1382
+
"gix-hash",
1383
+
"gix-hashtable",
1384
+
"gix-object",
1385
+
"gix-path",
1386
+
"memmap2",
1387
+
"smallvec",
1388
+
"thiserror 2.0.18",
1389
+
]
1390
+
1391
+
[[package]]
1392
+
name = "gix-packetline"
1393
+
version = "0.20.0"
1394
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1395
+
checksum = "fad0ffb982a289888087a165d3e849cbac724f2aa5431236b050dd2cb9c7de31"
1396
+
dependencies = [
1397
+
"bstr",
1398
+
"faster-hex",
1399
+
"gix-trace",
1400
+
"thiserror 2.0.18",
1401
+
]
1402
+
1403
+
[[package]]
1404
+
name = "gix-path"
1405
+
version = "0.10.22"
1406
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1407
+
checksum = "7cb06c3e4f8eed6e24fd915fa93145e28a511f4ea0e768bae16673e05ed3f366"
1408
+
dependencies = [
1409
+
"bstr",
1410
+
"gix-trace",
1411
+
"gix-validate",
1412
+
"thiserror 2.0.18",
1413
+
]
1414
+
1415
+
[[package]]
1416
+
name = "gix-pathspec"
1417
+
version = "0.14.0"
1418
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1419
+
checksum = "ed9e0c881933c37a7ef45288d6c5779c4a7b3ad240b4c37657e1d9829eb90085"
1420
+
dependencies = [
1421
+
"bitflags 2.11.0",
1422
+
"bstr",
1423
+
"gix-attributes",
1424
+
"gix-config-value",
1425
+
"gix-glob",
1426
+
"gix-path",
1427
+
"thiserror 2.0.18",
1428
+
]
1429
+
1430
+
[[package]]
1431
+
name = "gix-protocol"
1432
+
version = "0.55.0"
1433
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1434
+
checksum = "02c5dfd068789442c5709e702ef42d851765f2c09a11bf0a13749d24363f4d07"
1435
+
dependencies = [
1436
+
"bstr",
1437
+
"gix-date",
1438
+
"gix-features",
1439
+
"gix-hash",
1440
+
"gix-ref",
1441
+
"gix-shallow",
1442
+
"gix-transport",
1443
+
"gix-utils",
1444
+
"maybe-async",
1445
+
"thiserror 2.0.18",
1446
+
"winnow 0.7.15",
1447
+
]
1448
+
1449
+
[[package]]
1450
+
name = "gix-quote"
1451
+
version = "0.6.2"
1452
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1453
+
checksum = "96fc2ff2ec8cc0c92807f02eab1f00eb02619fc2810d13dc42679492fcc36757"
1454
+
dependencies = [
1455
+
"bstr",
1456
+
"gix-utils",
1457
+
"thiserror 2.0.18",
1458
+
]
1459
+
1460
+
[[package]]
1461
+
name = "gix-ref"
1462
+
version = "0.57.0"
1463
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1464
+
checksum = "ccb33aa97006e37e9e83fde233569a66b02ed16fd4b0406cdf35834b06cf8a63"
1465
+
dependencies = [
1466
+
"gix-actor",
1467
+
"gix-features",
1468
+
"gix-fs",
1469
+
"gix-hash",
1470
+
"gix-lock",
1471
+
"gix-object",
1472
+
"gix-path",
1473
+
"gix-tempfile",
1474
+
"gix-utils",
1475
+
"gix-validate",
1476
+
"memmap2",
1477
+
"thiserror 2.0.18",
1478
+
"winnow 0.7.15",
1479
+
]
1480
+
1481
+
[[package]]
1482
+
name = "gix-refspec"
1483
+
version = "0.35.0"
1484
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1485
+
checksum = "dcbba6ae5389f4021f73a2d62a4195aace7db1e8bb684b25521d3d685f57da02"
1486
+
dependencies = [
1487
+
"bstr",
1488
+
"gix-glob",
1489
+
"gix-hash",
1490
+
"gix-revision",
1491
+
"gix-validate",
1492
+
"smallvec",
1493
+
"thiserror 2.0.18",
1494
+
]
1495
+
1496
+
[[package]]
1497
+
name = "gix-revision"
1498
+
version = "0.39.0"
1499
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1500
+
checksum = "91898c83b18c635696f7355d171cfa74a52f38022ff89581f567768935ebc4c8"
1501
+
dependencies = [
1502
+
"bitflags 2.11.0",
1503
+
"bstr",
1504
+
"gix-commitgraph",
1505
+
"gix-date",
1506
+
"gix-hash",
1507
+
"gix-hashtable",
1508
+
"gix-object",
1509
+
"gix-revwalk",
1510
+
"gix-trace",
1511
+
"thiserror 2.0.18",
1512
+
]
1513
+
1514
+
[[package]]
1515
+
name = "gix-revwalk"
1516
+
version = "0.25.0"
1517
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1518
+
checksum = "0d063699278485016863d0d2bb0db7609fd2e8ba9a89379717bf06fd96949eb2"
1519
+
dependencies = [
1520
+
"gix-commitgraph",
1521
+
"gix-date",
1522
+
"gix-hash",
1523
+
"gix-hashtable",
1524
+
"gix-object",
1525
+
"smallvec",
1526
+
"thiserror 2.0.18",
1527
+
]
1528
+
1529
+
[[package]]
1530
+
name = "gix-sec"
1531
+
version = "0.12.2"
1532
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1533
+
checksum = "ea9962ed6d9114f7f100efe038752f41283c225bb507a2888903ac593dffa6be"
1534
+
dependencies = [
1535
+
"bitflags 2.11.0",
1536
+
"gix-path",
1537
+
"libc",
1538
+
"windows-sys 0.61.2",
1539
+
]
1540
+
1541
+
[[package]]
1542
+
name = "gix-shallow"
1543
+
version = "0.7.0"
1544
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1545
+
checksum = "9c1c467fb9f7ec1d33613c2ea5482de514bcb84b8222a793cdc4c71955832356"
1546
+
dependencies = [
1547
+
"bstr",
1548
+
"gix-hash",
1549
+
"gix-lock",
1550
+
"thiserror 2.0.18",
1551
+
]
1552
+
1553
+
[[package]]
1554
+
name = "gix-status"
1555
+
version = "0.24.0"
1556
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1557
+
checksum = "ed0d94c685a831c679ca5454c22f350e8c233f50dcf377ca00d858bcba9696d2"
1558
+
dependencies = [
1559
+
"bstr",
1560
+
"filetime",
1561
+
"gix-diff",
1562
+
"gix-dir",
1563
+
"gix-features",
1564
+
"gix-filter",
1565
+
"gix-fs",
1566
+
"gix-hash",
1567
+
"gix-index",
1568
+
"gix-object",
1569
+
"gix-path",
1570
+
"gix-pathspec",
1571
+
"gix-worktree",
1572
+
"portable-atomic",
1573
+
"thiserror 2.0.18",
1574
+
]
1575
+
1576
+
[[package]]
1577
+
name = "gix-submodule"
1578
+
version = "0.24.0"
1579
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1580
+
checksum = "efee2a61198413d80de10028aa507344537827d776ade781760130721bec2419"
1581
+
dependencies = [
1582
+
"bstr",
1583
+
"gix-config",
1584
+
"gix-path",
1585
+
"gix-pathspec",
1586
+
"gix-refspec",
1587
+
"gix-url",
1588
+
"thiserror 2.0.18",
1589
+
]
1590
+
1591
+
[[package]]
1592
+
name = "gix-tempfile"
1593
+
version = "20.0.1"
1594
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1595
+
checksum = "ad89218e74850f42d364ed3877c7291f0474c8533502df91bb877ecc5cb0dd40"
1596
+
dependencies = [
1597
+
"dashmap",
1598
+
"gix-fs",
1599
+
"libc",
1600
+
"parking_lot",
1601
+
"signal-hook 0.4.3",
1602
+
"signal-hook-registry",
1603
+
"tempfile",
1604
+
]
1605
+
1606
+
[[package]]
1607
+
name = "gix-trace"
1608
+
version = "0.1.18"
1609
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1610
+
checksum = "f69a13643b8437d4ca6845e08143e847a36ca82903eed13303475d0ae8b162e0"
1611
+
1612
+
[[package]]
1613
+
name = "gix-transport"
1614
+
version = "0.52.1"
1615
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1616
+
checksum = "a4d4ed02a2ebe771a26111896ecda0b98b58ed35e1d9c0ccf07251c1abb4918d"
1617
+
dependencies = [
1618
+
"bstr",
1619
+
"gix-command",
1620
+
"gix-features",
1621
+
"gix-packetline",
1622
+
"gix-quote",
1623
+
"gix-sec",
1624
+
"gix-url",
1625
+
"thiserror 2.0.18",
1626
+
]
1627
+
1628
+
[[package]]
1629
+
name = "gix-traverse"
1630
+
version = "0.51.1"
1631
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1632
+
checksum = "d052b83d1d1744be95ac6448ac02f95f370a8f6720e466be9ce57146e39f5280"
1633
+
dependencies = [
1634
+
"bitflags 2.11.0",
1635
+
"gix-commitgraph",
1636
+
"gix-date",
1637
+
"gix-hash",
1638
+
"gix-hashtable",
1639
+
"gix-object",
1640
+
"gix-revwalk",
1641
+
"smallvec",
1642
+
"thiserror 2.0.18",
1643
+
]
1644
+
1645
+
[[package]]
1646
+
name = "gix-url"
1647
+
version = "0.34.0"
1648
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1649
+
checksum = "cff1996dfb9430b3699d89224c674169c1ae355eacc52bf30a03c0b8bffe73d9"
1650
+
dependencies = [
1651
+
"bstr",
1652
+
"gix-features",
1653
+
"gix-path",
1654
+
"percent-encoding",
1655
+
"thiserror 2.0.18",
1656
+
]
1657
+
1658
+
[[package]]
1659
+
name = "gix-utils"
1660
+
version = "0.3.1"
1661
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1662
+
checksum = "befcdbdfb1238d2854591f760a48711bed85e72d80a10e8f2f93f656746ef7c5"
1663
+
dependencies = [
1664
+
"bstr",
1665
+
"fastrand",
1666
+
"unicode-normalization",
1667
+
]
1668
+
1669
+
[[package]]
1670
+
name = "gix-validate"
1671
+
version = "0.10.1"
1672
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1673
+
checksum = "5b1e63a5b516e970a594f870ed4571a8fdcb8a344e7bd407a20db8bd61dbfde4"
1674
+
dependencies = [
1675
+
"bstr",
1676
+
"thiserror 2.0.18",
1677
+
]
1678
+
1679
+
[[package]]
1680
+
name = "gix-worktree"
1681
+
version = "0.46.0"
1682
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1683
+
checksum = "1cfb7ce8cdbfe06117d335d1ad329351468d20331e0aafd108ceb647c1326aca"
1684
+
dependencies = [
1685
+
"bstr",
1686
+
"gix-attributes",
1687
+
"gix-features",
1688
+
"gix-fs",
1689
+
"gix-glob",
1690
+
"gix-hash",
1691
+
"gix-ignore",
1692
+
"gix-index",
1693
+
"gix-object",
1694
+
"gix-path",
1695
+
"gix-validate",
1696
+
]
1697
+
1698
+
[[package]]
1699
+
name = "hash32"
1700
+
version = "0.3.1"
1701
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1702
+
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
1703
+
dependencies = [
1704
+
"byteorder",
1705
+
]
1706
+
1707
+
[[package]]
1708
+
name = "hashbrown"
1709
+
version = "0.14.5"
1710
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1711
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
1712
+
1713
+
[[package]]
1714
+
name = "hashbrown"
1715
+
version = "0.15.5"
1716
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1717
+
checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
1718
+
dependencies = [
1719
+
"foldhash 0.1.5",
1720
+
]
1721
+
1722
+
[[package]]
1723
+
name = "hashbrown"
1724
+
version = "0.16.1"
1725
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1726
+
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
1727
+
dependencies = [
1728
+
"allocator-api2",
1729
+
"equivalent",
1730
+
"foldhash 0.2.0",
1731
+
]
1732
+
1733
+
[[package]]
1734
+
name = "heapless"
1735
+
version = "0.8.0"
1736
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1737
+
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
1738
+
dependencies = [
1739
+
"hash32",
1740
+
"stable_deref_trait",
1741
+
]
1742
+
1743
+
[[package]]
1744
+
name = "heck"
1745
+
version = "0.5.0"
1746
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1747
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
1748
+
1749
+
[[package]]
1750
+
name = "hex"
1751
+
version = "0.4.3"
1752
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1753
+
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
1754
+
1755
+
[[package]]
1756
+
name = "human-panic"
1757
+
version = "2.0.6"
1758
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1759
+
checksum = "075e8747af11abcff07d55d98297c9c6c70eb5d6365b25e7b12f02e484935191"
1760
+
dependencies = [
1761
+
"anstream",
1762
+
"anstyle",
1763
+
"backtrace",
1764
+
"serde",
1765
+
"serde_derive",
1766
+
"sysinfo",
1767
+
"toml",
1768
+
"uuid",
1769
+
]
1770
+
1771
+
[[package]]
1772
+
name = "id-arena"
1773
+
version = "2.3.0"
1774
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1775
+
checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
1776
+
1777
+
[[package]]
1778
+
name = "ident_case"
1779
+
version = "1.0.1"
1780
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1781
+
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
1782
+
1783
+
[[package]]
1784
+
name = "imara-diff"
1785
+
version = "0.1.8"
1786
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1787
+
checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2"
1788
+
dependencies = [
1789
+
"hashbrown 0.15.5",
1790
+
]
1791
+
1792
+
[[package]]
1793
+
name = "indenter"
1794
+
version = "0.3.4"
1795
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1796
+
checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5"
1797
+
1798
+
[[package]]
1799
+
name = "indexmap"
1800
+
version = "2.13.0"
1801
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1802
+
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
1803
+
dependencies = [
1804
+
"equivalent",
1805
+
"hashbrown 0.16.1",
1806
+
"serde",
1807
+
"serde_core",
1808
+
]
1809
+
1810
+
[[package]]
1811
+
name = "indoc"
1812
+
version = "2.0.7"
1813
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1814
+
checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
1815
+
dependencies = [
1816
+
"rustversion",
1817
+
]
1818
+
1819
+
[[package]]
1820
+
name = "instability"
1821
+
version = "0.3.11"
1822
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1823
+
checksum = "357b7205c6cd18dd2c86ed312d1e70add149aea98e7ef72b9fdf0270e555c11d"
1824
+
dependencies = [
1825
+
"darling 0.23.0",
1826
+
"indoc",
1827
+
"proc-macro2",
1828
+
"quote",
1829
+
"syn 2.0.117",
1830
+
]
1831
+
1832
+
[[package]]
1833
+
name = "is_terminal_polyfill"
1834
+
version = "1.70.2"
1835
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1836
+
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
1837
+
1838
+
[[package]]
1839
+
name = "itertools"
1840
+
version = "0.14.0"
1841
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1842
+
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
1843
+
dependencies = [
1844
+
"either",
1845
+
]
1846
+
1847
+
[[package]]
1848
+
name = "itoa"
1849
+
version = "1.0.17"
1850
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1851
+
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
1852
+
1853
+
[[package]]
1854
+
name = "jiff"
1855
+
version = "0.2.23"
1856
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1857
+
checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359"
1858
+
dependencies = [
1859
+
"jiff-static",
1860
+
"jiff-tzdb-platform",
1861
+
"log",
1862
+
"portable-atomic",
1863
+
"portable-atomic-util",
1864
+
"serde_core",
1865
+
"windows-sys 0.61.2",
1866
+
]
1867
+
1868
+
[[package]]
1869
+
name = "jiff-static"
1870
+
version = "0.2.23"
1871
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1872
+
checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4"
1873
+
dependencies = [
1874
+
"proc-macro2",
1875
+
"quote",
1876
+
"syn 2.0.117",
1877
+
]
1878
+
1879
+
[[package]]
1880
+
name = "jiff-tzdb"
1881
+
version = "0.1.6"
1882
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1883
+
checksum = "c900ef84826f1338a557697dc8fc601df9ca9af4ac137c7fb61d4c6f2dfd3076"
1884
+
1885
+
[[package]]
1886
+
name = "jiff-tzdb-platform"
1887
+
version = "0.1.3"
1888
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1889
+
checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
1890
+
dependencies = [
1891
+
"jiff-tzdb",
1892
+
]
1893
+
1894
+
[[package]]
1895
+
name = "js-sys"
1896
+
version = "0.3.91"
1897
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1898
+
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
1899
+
dependencies = [
1900
+
"once_cell",
1901
+
"wasm-bindgen",
1902
+
]
1903
+
1904
+
[[package]]
1905
+
name = "kasuari"
1906
+
version = "0.4.11"
1907
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1908
+
checksum = "8fe90c1150662e858c7d5f945089b7517b0a80d8bf7ba4b1b5ffc984e7230a5b"
1909
+
dependencies = [
1910
+
"hashbrown 0.16.1",
1911
+
"portable-atomic",
1912
+
"thiserror 2.0.18",
1913
+
]
1914
+
1915
+
[[package]]
1916
+
name = "kdl"
1917
+
version = "6.5.0"
1918
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1919
+
checksum = "81a29e7b50079ff44549f68c0becb1c73d7f6de2a4ea952da77966daf3d4761e"
1920
+
dependencies = [
1921
+
"miette",
1922
+
"num",
1923
+
"winnow 0.6.24",
1924
+
]
1925
+
1926
+
[[package]]
1927
+
name = "kstring"
1928
+
version = "2.0.2"
1929
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1930
+
checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1"
1931
+
dependencies = [
1932
+
"static_assertions",
1933
+
]
1934
+
1935
+
[[package]]
1936
+
name = "lab"
1937
+
version = "0.11.0"
1938
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1939
+
checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f"
1940
+
1941
+
[[package]]
1942
+
name = "lazy_static"
1943
+
version = "1.5.0"
1944
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1945
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1946
+
1947
+
[[package]]
1948
+
name = "leb128fmt"
1949
+
version = "0.1.0"
1950
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1951
+
checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
1952
+
1953
+
[[package]]
1954
+
name = "libc"
1955
+
version = "0.2.182"
1956
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1957
+
checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
1958
+
1959
+
[[package]]
1960
+
name = "libredox"
1961
+
version = "0.1.14"
1962
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1963
+
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a"
1964
+
dependencies = [
1965
+
"bitflags 2.11.0",
1966
+
"libc",
1967
+
"plain",
1968
+
"redox_syscall 0.7.3",
1969
+
]
1970
+
1971
+
[[package]]
1972
+
name = "line-clipping"
1973
+
version = "0.3.5"
1974
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1975
+
checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a"
1976
+
dependencies = [
1977
+
"bitflags 2.11.0",
1978
+
]
1979
+
1980
+
[[package]]
1981
+
name = "linux-raw-sys"
1982
+
version = "0.12.1"
1983
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1984
+
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
1985
+
1986
+
[[package]]
1987
+
name = "litrs"
1988
+
version = "1.0.0"
1989
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1990
+
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
1991
+
1992
+
[[package]]
1993
+
name = "lock_api"
1994
+
version = "0.4.14"
1995
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1996
+
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
1997
+
dependencies = [
1998
+
"scopeguard",
1999
+
]
2000
+
2001
+
[[package]]
2002
+
name = "log"
2003
+
version = "0.4.29"
2004
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2005
+
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
2006
+
2007
+
[[package]]
2008
+
name = "lru"
2009
+
version = "0.16.3"
2010
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2011
+
checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
2012
+
dependencies = [
2013
+
"hashbrown 0.16.1",
2014
+
]
2015
+
2016
+
[[package]]
2017
+
name = "mac_address"
2018
+
version = "1.1.8"
2019
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2020
+
checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303"
2021
+
dependencies = [
2022
+
"nix",
2023
+
"winapi",
2024
+
]
2025
+
2026
+
[[package]]
2027
+
name = "matchers"
2028
+
version = "0.2.0"
2029
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2030
+
checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
2031
+
dependencies = [
2032
+
"regex-automata",
2033
+
]
2034
+
2035
+
[[package]]
2036
+
name = "maybe-async"
2037
+
version = "0.2.10"
2038
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2039
+
checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
2040
+
dependencies = [
2041
+
"proc-macro2",
2042
+
"quote",
2043
+
"syn 2.0.117",
2044
+
]
2045
+
2046
+
[[package]]
2047
+
name = "memchr"
2048
+
version = "2.8.0"
2049
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2050
+
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
2051
+
2052
+
[[package]]
2053
+
name = "memmap2"
2054
+
version = "0.9.10"
2055
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2056
+
checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3"
2057
+
dependencies = [
2058
+
"libc",
2059
+
]
2060
+
2061
+
[[package]]
2062
+
name = "memmem"
2063
+
version = "0.1.1"
2064
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2065
+
checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
2066
+
2067
+
[[package]]
2068
+
name = "memoffset"
2069
+
version = "0.9.1"
2070
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2071
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
2072
+
dependencies = [
2073
+
"autocfg",
2074
+
]
2075
+
2076
+
[[package]]
2077
+
name = "miette"
2078
+
version = "7.6.0"
2079
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2080
+
checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7"
2081
+
dependencies = [
2082
+
"cfg-if",
2083
+
"unicode-width 0.1.14",
2084
+
]
2085
+
2086
+
[[package]]
2087
+
name = "minimal-lexical"
2088
+
version = "0.2.1"
2089
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2090
+
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
2091
+
2092
+
[[package]]
2093
+
name = "miniz_oxide"
2094
+
version = "0.8.9"
2095
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2096
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
2097
+
dependencies = [
2098
+
"adler2",
2099
+
]
2100
+
2101
+
[[package]]
2102
+
name = "mio"
2103
+
version = "1.1.1"
2104
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2105
+
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
2106
+
dependencies = [
2107
+
"libc",
2108
+
"log",
2109
+
"wasi",
2110
+
"windows-sys 0.61.2",
2111
+
]
2112
+
2113
+
[[package]]
2114
+
name = "nix"
2115
+
version = "0.29.0"
2116
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2117
+
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
2118
+
dependencies = [
2119
+
"bitflags 2.11.0",
2120
+
"cfg-if",
2121
+
"cfg_aliases",
2122
+
"libc",
2123
+
"memoffset",
2124
+
]
2125
+
2126
+
[[package]]
2127
+
name = "nom"
2128
+
version = "7.1.3"
2129
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2130
+
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
2131
+
dependencies = [
2132
+
"memchr",
2133
+
"minimal-lexical",
2134
+
]
2135
+
2136
+
[[package]]
2137
+
name = "ntapi"
2138
+
version = "0.4.3"
2139
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2140
+
checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae"
2141
+
dependencies = [
2142
+
"winapi",
2143
+
]
2144
+
2145
+
[[package]]
2146
+
name = "nu-ansi-term"
2147
+
version = "0.50.3"
2148
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2149
+
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
2150
+
dependencies = [
2151
+
"windows-sys 0.61.2",
2152
+
]
2153
+
2154
+
[[package]]
2155
+
name = "num"
2156
+
version = "0.4.3"
2157
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2158
+
checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
2159
+
dependencies = [
2160
+
"num-bigint",
2161
+
"num-complex",
2162
+
"num-integer",
2163
+
"num-iter",
2164
+
"num-rational",
2165
+
"num-traits",
2166
+
]
2167
+
2168
+
[[package]]
2169
+
name = "num-bigint"
2170
+
version = "0.4.6"
2171
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2172
+
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
2173
+
dependencies = [
2174
+
"num-integer",
2175
+
"num-traits",
2176
+
]
2177
+
2178
+
[[package]]
2179
+
name = "num-complex"
2180
+
version = "0.4.6"
2181
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2182
+
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
2183
+
dependencies = [
2184
+
"num-traits",
2185
+
]
2186
+
2187
+
[[package]]
2188
+
name = "num-conv"
2189
+
version = "0.2.0"
2190
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2191
+
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
2192
+
2193
+
[[package]]
2194
+
name = "num-derive"
2195
+
version = "0.4.2"
2196
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2197
+
checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
2198
+
dependencies = [
2199
+
"proc-macro2",
2200
+
"quote",
2201
+
"syn 2.0.117",
2202
+
]
2203
+
2204
+
[[package]]
2205
+
name = "num-integer"
2206
+
version = "0.1.46"
2207
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2208
+
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
2209
+
dependencies = [
2210
+
"num-traits",
2211
+
]
2212
+
2213
+
[[package]]
2214
+
name = "num-iter"
2215
+
version = "0.1.45"
2216
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2217
+
checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
2218
+
dependencies = [
2219
+
"autocfg",
2220
+
"num-integer",
2221
+
"num-traits",
2222
+
]
2223
+
2224
+
[[package]]
2225
+
name = "num-rational"
2226
+
version = "0.4.2"
2227
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2228
+
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
2229
+
dependencies = [
2230
+
"num-bigint",
2231
+
"num-integer",
2232
+
"num-traits",
2233
+
]
2234
+
2235
+
[[package]]
2236
+
name = "num-traits"
2237
+
version = "0.2.19"
2238
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2239
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
2240
+
dependencies = [
2241
+
"autocfg",
2242
+
]
2243
+
2244
+
[[package]]
2245
+
name = "num_threads"
2246
+
version = "0.1.7"
2247
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2248
+
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
2249
+
dependencies = [
2250
+
"libc",
2251
+
]
2252
+
2253
+
[[package]]
2254
+
name = "objc2-core-foundation"
2255
+
version = "0.3.2"
2256
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2257
+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
2258
+
dependencies = [
2259
+
"bitflags 2.11.0",
2260
+
]
2261
+
2262
+
[[package]]
2263
+
name = "objc2-io-kit"
2264
+
version = "0.3.2"
2265
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2266
+
checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15"
2267
+
dependencies = [
2268
+
"libc",
2269
+
"objc2-core-foundation",
2270
+
]
2271
+
2272
+
[[package]]
2273
+
name = "object"
2274
+
version = "0.37.3"
2275
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2276
+
checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe"
2277
+
dependencies = [
2278
+
"memchr",
2279
+
]
2280
+
2281
+
[[package]]
2282
+
name = "once_cell"
2283
+
version = "1.21.3"
2284
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2285
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
2286
+
2287
+
[[package]]
2288
+
name = "once_cell_polyfill"
2289
+
version = "1.70.2"
2290
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2291
+
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
2292
+
2293
+
[[package]]
2294
+
name = "option-ext"
2295
+
version = "0.2.0"
2296
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2297
+
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
2298
+
2299
+
[[package]]
2300
+
name = "ordered-float"
2301
+
version = "4.6.0"
2302
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2303
+
checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
2304
+
dependencies = [
2305
+
"num-traits",
2306
+
]
2307
+
2308
+
[[package]]
2309
+
name = "owo-colors"
2310
+
version = "4.3.0"
2311
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2312
+
checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d"
2313
+
2314
+
[[package]]
2315
+
name = "parking_lot"
2316
+
version = "0.12.5"
2317
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2318
+
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
2319
+
dependencies = [
2320
+
"lock_api",
2321
+
"parking_lot_core",
2322
+
]
2323
+
2324
+
[[package]]
2325
+
name = "parking_lot_core"
2326
+
version = "0.9.12"
2327
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2328
+
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
2329
+
dependencies = [
2330
+
"cfg-if",
2331
+
"libc",
2332
+
"redox_syscall 0.5.18",
2333
+
"smallvec",
2334
+
"windows-link 0.2.1",
2335
+
]
2336
+
2337
+
[[package]]
2338
+
name = "percent-encoding"
2339
+
version = "2.3.2"
2340
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2341
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
2342
+
2343
+
[[package]]
2344
+
name = "pest"
2345
+
version = "2.8.6"
2346
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2347
+
checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662"
2348
+
dependencies = [
2349
+
"memchr",
2350
+
"ucd-trie",
2351
+
]
2352
+
2353
+
[[package]]
2354
+
name = "pest_derive"
2355
+
version = "2.8.6"
2356
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2357
+
checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77"
2358
+
dependencies = [
2359
+
"pest",
2360
+
"pest_generator",
2361
+
]
2362
+
2363
+
[[package]]
2364
+
name = "pest_generator"
2365
+
version = "2.8.6"
2366
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2367
+
checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f"
2368
+
dependencies = [
2369
+
"pest",
2370
+
"pest_meta",
2371
+
"proc-macro2",
2372
+
"quote",
2373
+
"syn 2.0.117",
2374
+
]
2375
+
2376
+
[[package]]
2377
+
name = "pest_meta"
2378
+
version = "2.8.6"
2379
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2380
+
checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220"
2381
+
dependencies = [
2382
+
"pest",
2383
+
"sha2",
2384
+
]
2385
+
2386
+
[[package]]
2387
+
name = "phf"
2388
+
version = "0.11.3"
2389
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2390
+
checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
2391
+
dependencies = [
2392
+
"phf_macros",
2393
+
"phf_shared",
2394
+
]
2395
+
2396
+
[[package]]
2397
+
name = "phf_codegen"
2398
+
version = "0.11.3"
2399
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2400
+
checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
2401
+
dependencies = [
2402
+
"phf_generator",
2403
+
"phf_shared",
2404
+
]
2405
+
2406
+
[[package]]
2407
+
name = "phf_generator"
2408
+
version = "0.11.3"
2409
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2410
+
checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
2411
+
dependencies = [
2412
+
"phf_shared",
2413
+
"rand",
2414
+
]
2415
+
2416
+
[[package]]
2417
+
name = "phf_macros"
2418
+
version = "0.11.3"
2419
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2420
+
checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
2421
+
dependencies = [
2422
+
"phf_generator",
2423
+
"phf_shared",
2424
+
"proc-macro2",
2425
+
"quote",
2426
+
"syn 2.0.117",
2427
+
]
2428
+
2429
+
[[package]]
2430
+
name = "phf_shared"
2431
+
version = "0.11.3"
2432
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2433
+
checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
2434
+
dependencies = [
2435
+
"siphasher",
2436
+
]
2437
+
2438
+
[[package]]
2439
+
name = "pin-project-lite"
2440
+
version = "0.2.17"
2441
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2442
+
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
2443
+
2444
+
[[package]]
2445
+
name = "plain"
2446
+
version = "0.2.3"
2447
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2448
+
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
2449
+
2450
+
[[package]]
2451
+
name = "portable-atomic"
2452
+
version = "1.13.1"
2453
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2454
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
2455
+
2456
+
[[package]]
2457
+
name = "portable-atomic-util"
2458
+
version = "0.2.5"
2459
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2460
+
checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5"
2461
+
dependencies = [
2462
+
"portable-atomic",
2463
+
]
2464
+
2465
+
[[package]]
2466
+
name = "powerfmt"
2467
+
version = "0.2.0"
2468
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2469
+
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
2470
+
2471
+
[[package]]
2472
+
name = "prettyplease"
2473
+
version = "0.2.37"
2474
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2475
+
checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
2476
+
dependencies = [
2477
+
"proc-macro2",
2478
+
"syn 2.0.117",
2479
+
]
2480
+
2481
+
[[package]]
2482
+
name = "proc-macro2"
2483
+
version = "1.0.106"
2484
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2485
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
2486
+
dependencies = [
2487
+
"unicode-ident",
2488
+
]
2489
+
2490
+
[[package]]
2491
+
name = "prodash"
2492
+
version = "30.0.1"
2493
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2494
+
checksum = "5a6efc566849d3d9d737c5cb06cc50e48950ebe3d3f9d70631490fff3a07b139"
2495
+
dependencies = [
2496
+
"parking_lot",
2497
+
]
2498
+
2499
+
[[package]]
2500
+
name = "quote"
2501
+
version = "1.0.45"
2502
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2503
+
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
2504
+
dependencies = [
2505
+
"proc-macro2",
2506
+
]
2507
+
2508
+
[[package]]
2509
+
name = "r-efi"
2510
+
version = "5.3.0"
2511
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2512
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
2513
+
2514
+
[[package]]
2515
+
name = "r-efi"
2516
+
version = "6.0.0"
2517
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2518
+
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
2519
+
2520
+
[[package]]
2521
+
name = "rand"
2522
+
version = "0.8.5"
2523
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2524
+
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
2525
+
dependencies = [
2526
+
"rand_core",
2527
+
]
2528
+
2529
+
[[package]]
2530
+
name = "rand_core"
2531
+
version = "0.6.4"
2532
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2533
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
2534
+
2535
+
[[package]]
2536
+
name = "ratatui"
2537
+
version = "0.30.0"
2538
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2539
+
checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc"
2540
+
dependencies = [
2541
+
"instability",
2542
+
"ratatui-core",
2543
+
"ratatui-crossterm",
2544
+
"ratatui-macros",
2545
+
"ratatui-termwiz",
2546
+
"ratatui-widgets",
2547
+
]
2548
+
2549
+
[[package]]
2550
+
name = "ratatui-core"
2551
+
version = "0.1.0"
2552
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2553
+
checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293"
2554
+
dependencies = [
2555
+
"bitflags 2.11.0",
2556
+
"compact_str",
2557
+
"hashbrown 0.16.1",
2558
+
"indoc",
2559
+
"itertools",
2560
+
"kasuari",
2561
+
"lru",
2562
+
"strum 0.27.2",
2563
+
"thiserror 2.0.18",
2564
+
"unicode-segmentation",
2565
+
"unicode-truncate",
2566
+
"unicode-width 0.2.2",
2567
+
]
2568
+
2569
+
[[package]]
2570
+
name = "ratatui-crossterm"
2571
+
version = "0.1.0"
2572
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2573
+
checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3"
2574
+
dependencies = [
2575
+
"cfg-if",
2576
+
"crossterm",
2577
+
"instability",
2578
+
"ratatui-core",
2579
+
]
2580
+
2581
+
[[package]]
2582
+
name = "ratatui-macros"
2583
+
version = "0.7.0"
2584
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2585
+
checksum = "a7f1342a13e83e4bb9d0b793d0ea762be633f9582048c892ae9041ef39c936f4"
2586
+
dependencies = [
2587
+
"ratatui-core",
2588
+
"ratatui-widgets",
2589
+
]
2590
+
2591
+
[[package]]
2592
+
name = "ratatui-termwiz"
2593
+
version = "0.1.0"
2594
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2595
+
checksum = "0f76fe0bd0ed4295f0321b1676732e2454024c15a35d01904ddb315afd3d545c"
2596
+
dependencies = [
2597
+
"ratatui-core",
2598
+
"termwiz",
2599
+
]
2600
+
2601
+
[[package]]
2602
+
name = "ratatui-widgets"
2603
+
version = "0.3.0"
2604
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2605
+
checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db"
2606
+
dependencies = [
2607
+
"bitflags 2.11.0",
2608
+
"hashbrown 0.16.1",
2609
+
"indoc",
2610
+
"instability",
2611
+
"itertools",
2612
+
"line-clipping",
2613
+
"ratatui-core",
2614
+
"strum 0.27.2",
2615
+
"time",
2616
+
"unicode-segmentation",
2617
+
"unicode-width 0.2.2",
2618
+
]
2619
+
2620
+
[[package]]
2621
+
name = "redox_syscall"
2622
+
version = "0.5.18"
2623
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2624
+
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
2625
+
dependencies = [
2626
+
"bitflags 2.11.0",
2627
+
]
2628
+
2629
+
[[package]]
2630
+
name = "redox_syscall"
2631
+
version = "0.7.3"
2632
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2633
+
checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16"
2634
+
dependencies = [
2635
+
"bitflags 2.11.0",
2636
+
]
2637
+
2638
+
[[package]]
2639
+
name = "redox_users"
2640
+
version = "0.5.2"
2641
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2642
+
checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
2643
+
dependencies = [
2644
+
"getrandom 0.2.17",
2645
+
"libredox",
2646
+
"thiserror 2.0.18",
2647
+
]
2648
+
2649
+
[[package]]
2650
+
name = "regex"
2651
+
version = "1.12.3"
2652
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2653
+
checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
2654
+
dependencies = [
2655
+
"aho-corasick",
2656
+
"memchr",
2657
+
"regex-automata",
2658
+
"regex-syntax",
2659
+
]
2660
+
2661
+
[[package]]
2662
+
name = "regex-automata"
2663
+
version = "0.4.14"
2664
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2665
+
checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
2666
+
dependencies = [
2667
+
"aho-corasick",
2668
+
"memchr",
2669
+
"regex-syntax",
2670
+
]
2671
+
2672
+
[[package]]
2673
+
name = "regex-syntax"
2674
+
version = "0.8.10"
2675
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2676
+
checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
2677
+
2678
+
[[package]]
2679
+
name = "rustc-demangle"
2680
+
version = "0.1.27"
2681
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2682
+
checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
2683
+
2684
+
[[package]]
2685
+
name = "rustc_version"
2686
+
version = "0.4.1"
2687
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2688
+
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
2689
+
dependencies = [
2690
+
"semver",
2691
+
]
2692
+
2693
+
[[package]]
2694
+
name = "rustix"
2695
+
version = "1.1.4"
2696
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2697
+
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
2698
+
dependencies = [
2699
+
"bitflags 2.11.0",
2700
+
"errno",
2701
+
"libc",
2702
+
"linux-raw-sys",
2703
+
"windows-sys 0.61.2",
2704
+
]
2705
+
2706
+
[[package]]
2707
+
name = "rustversion"
2708
+
version = "1.0.22"
2709
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2710
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
2711
+
2712
+
[[package]]
2713
+
name = "ryu"
2714
+
version = "1.0.23"
2715
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2716
+
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
2717
+
2718
+
[[package]]
2719
+
name = "same-file"
2720
+
version = "1.0.6"
2721
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2722
+
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
2723
+
dependencies = [
2724
+
"winapi-util",
2725
+
]
2726
+
2727
+
[[package]]
2728
+
name = "scopeguard"
2729
+
version = "1.2.0"
2730
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2731
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
2732
+
2733
+
[[package]]
2734
+
name = "semver"
2735
+
version = "1.0.27"
2736
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2737
+
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
2738
+
dependencies = [
2739
+
"serde",
2740
+
"serde_core",
2741
+
]
2742
+
2743
+
[[package]]
2744
+
name = "serde"
2745
+
version = "1.0.228"
2746
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2747
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
2748
+
dependencies = [
2749
+
"serde_core",
2750
+
"serde_derive",
2751
+
]
2752
+
2753
+
[[package]]
2754
+
name = "serde_core"
2755
+
version = "1.0.228"
2756
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2757
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
2758
+
dependencies = [
2759
+
"serde_derive",
2760
+
]
2761
+
2762
+
[[package]]
2763
+
name = "serde_derive"
2764
+
version = "1.0.228"
2765
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2766
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
2767
+
dependencies = [
2768
+
"proc-macro2",
2769
+
"quote",
2770
+
"syn 2.0.117",
2771
+
]
2772
+
2773
+
[[package]]
2774
+
name = "serde_json"
2775
+
version = "1.0.149"
2776
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2777
+
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
2778
+
dependencies = [
2779
+
"itoa",
2780
+
"memchr",
2781
+
"serde",
2782
+
"serde_core",
2783
+
"zmij",
2784
+
]
2785
+
2786
+
[[package]]
2787
+
name = "serde_spanned"
2788
+
version = "1.0.4"
2789
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2790
+
checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
2791
+
dependencies = [
2792
+
"serde_core",
2793
+
]
2794
+
2795
+
[[package]]
2796
+
name = "sha1"
2797
+
version = "0.10.6"
2798
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2799
+
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
2800
+
dependencies = [
2801
+
"cfg-if",
2802
+
"cpufeatures",
2803
+
"digest",
2804
+
]
2805
+
2806
+
[[package]]
2807
+
name = "sha1-checked"
2808
+
version = "0.10.0"
2809
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2810
+
checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423"
2811
+
dependencies = [
2812
+
"digest",
2813
+
"sha1",
2814
+
]
2815
+
2816
+
[[package]]
2817
+
name = "sha2"
2818
+
version = "0.10.9"
2819
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2820
+
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
2821
+
dependencies = [
2822
+
"cfg-if",
2823
+
"cpufeatures",
2824
+
"digest",
2825
+
]
2826
+
2827
+
[[package]]
2828
+
name = "sharded-slab"
2829
+
version = "0.1.7"
2830
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2831
+
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
2832
+
dependencies = [
2833
+
"lazy_static",
2834
+
]
2835
+
2836
+
[[package]]
2837
+
name = "shell-words"
2838
+
version = "1.1.1"
2839
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2840
+
checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77"
2841
+
2842
+
[[package]]
2843
+
name = "signal-hook"
2844
+
version = "0.3.18"
2845
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2846
+
checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
2847
+
dependencies = [
2848
+
"libc",
2849
+
"signal-hook-registry",
2850
+
]
2851
+
2852
+
[[package]]
2853
+
name = "signal-hook"
2854
+
version = "0.4.3"
2855
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2856
+
checksum = "3b57709da74f9ff9f4a27dce9526eec25ca8407c45a7887243b031a58935fb8e"
2857
+
dependencies = [
2858
+
"libc",
2859
+
"signal-hook-registry",
2860
+
]
2861
+
2862
+
[[package]]
2863
+
name = "signal-hook-mio"
2864
+
version = "0.2.5"
2865
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2866
+
checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
2867
+
dependencies = [
2868
+
"libc",
2869
+
"mio",
2870
+
"signal-hook 0.3.18",
2871
+
]
2872
+
2873
+
[[package]]
2874
+
name = "signal-hook-registry"
2875
+
version = "1.4.8"
2876
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2877
+
checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
2878
+
dependencies = [
2879
+
"errno",
2880
+
"libc",
2881
+
]
2882
+
2883
+
[[package]]
2884
+
name = "siphasher"
2885
+
version = "1.0.2"
2886
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2887
+
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
2888
+
2889
+
[[package]]
2890
+
name = "slab"
2891
+
version = "0.4.12"
2892
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2893
+
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
2894
+
2895
+
[[package]]
2896
+
name = "smallvec"
2897
+
version = "1.15.1"
2898
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2899
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
2900
+
2901
+
[[package]]
2902
+
name = "socket2"
2903
+
version = "0.6.2"
2904
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2905
+
checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0"
2906
+
dependencies = [
2907
+
"libc",
2908
+
"windows-sys 0.60.2",
2909
+
]
2910
+
2911
+
[[package]]
2912
+
name = "stable_deref_trait"
2913
+
version = "1.2.1"
2914
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2915
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
2916
+
2917
+
[[package]]
2918
+
name = "static_assertions"
2919
+
version = "1.1.0"
2920
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2921
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
2922
+
2923
+
[[package]]
2924
+
name = "strsim"
2925
+
version = "0.11.1"
2926
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2927
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
2928
+
2929
+
[[package]]
2930
+
name = "strum"
2931
+
version = "0.27.2"
2932
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2933
+
checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
2934
+
dependencies = [
2935
+
"strum_macros 0.27.2",
2936
+
]
2937
+
2938
+
[[package]]
2939
+
name = "strum"
2940
+
version = "0.28.0"
2941
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2942
+
checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd"
2943
+
dependencies = [
2944
+
"strum_macros 0.28.0",
2945
+
]
2946
+
2947
+
[[package]]
2948
+
name = "strum_macros"
2949
+
version = "0.27.2"
2950
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2951
+
checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
2952
+
dependencies = [
2953
+
"heck",
2954
+
"proc-macro2",
2955
+
"quote",
2956
+
"syn 2.0.117",
2957
+
]
2958
+
2959
+
[[package]]
2960
+
name = "strum_macros"
2961
+
version = "0.28.0"
2962
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2963
+
checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664"
2964
+
dependencies = [
2965
+
"heck",
2966
+
"proc-macro2",
2967
+
"quote",
2968
+
"syn 2.0.117",
2969
+
]
2970
+
2971
+
[[package]]
2972
+
name = "syn"
2973
+
version = "1.0.109"
2974
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2975
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
2976
+
dependencies = [
2977
+
"proc-macro2",
2978
+
"quote",
2979
+
"unicode-ident",
2980
+
]
2981
+
2982
+
[[package]]
2983
+
name = "syn"
2984
+
version = "2.0.117"
2985
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2986
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
2987
+
dependencies = [
2988
+
"proc-macro2",
2989
+
"quote",
2990
+
"unicode-ident",
2991
+
]
2992
+
2993
+
[[package]]
2994
+
name = "sysinfo"
2995
+
version = "0.37.2"
2996
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2997
+
checksum = "16607d5caffd1c07ce073528f9ed972d88db15dd44023fa57142963be3feb11f"
2998
+
dependencies = [
2999
+
"libc",
3000
+
"memchr",
3001
+
"ntapi",
3002
+
"objc2-core-foundation",
3003
+
"objc2-io-kit",
3004
+
"windows",
3005
+
]
3006
+
3007
+
[[package]]
3008
+
name = "tempfile"
3009
+
version = "3.26.0"
3010
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3011
+
checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0"
3012
+
dependencies = [
3013
+
"fastrand",
3014
+
"getrandom 0.4.2",
3015
+
"once_cell",
3016
+
"rustix",
3017
+
"windows-sys 0.61.2",
3018
+
]
3019
+
3020
+
[[package]]
3021
+
name = "terminal_size"
3022
+
version = "0.4.3"
3023
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3024
+
checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0"
3025
+
dependencies = [
3026
+
"rustix",
3027
+
"windows-sys 0.60.2",
3028
+
]
3029
+
3030
+
[[package]]
3031
+
name = "terminfo"
3032
+
version = "0.9.0"
3033
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3034
+
checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"
3035
+
dependencies = [
3036
+
"fnv",
3037
+
"nom",
3038
+
"phf",
3039
+
"phf_codegen",
3040
+
]
3041
+
3042
+
[[package]]
3043
+
name = "termios"
3044
+
version = "0.3.3"
3045
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3046
+
checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"
3047
+
dependencies = [
3048
+
"libc",
3049
+
]
3050
+
3051
+
[[package]]
3052
+
name = "termwiz"
3053
+
version = "0.23.3"
3054
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3055
+
checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"
3056
+
dependencies = [
3057
+
"anyhow",
3058
+
"base64",
3059
+
"bitflags 2.11.0",
3060
+
"fancy-regex",
3061
+
"filedescriptor",
3062
+
"finl_unicode",
3063
+
"fixedbitset",
3064
+
"hex",
3065
+
"lazy_static",
3066
+
"libc",
3067
+
"log",
3068
+
"memmem",
3069
+
"nix",
3070
+
"num-derive",
3071
+
"num-traits",
3072
+
"ordered-float",
3073
+
"pest",
3074
+
"pest_derive",
3075
+
"phf",
3076
+
"sha2",
3077
+
"signal-hook 0.3.18",
3078
+
"siphasher",
3079
+
"terminfo",
3080
+
"termios",
3081
+
"thiserror 1.0.69",
3082
+
"ucd-trie",
3083
+
"unicode-segmentation",
3084
+
"vtparse",
3085
+
"wezterm-bidi",
3086
+
"wezterm-blob-leases",
3087
+
"wezterm-color-types",
3088
+
"wezterm-dynamic",
3089
+
"wezterm-input-types",
3090
+
"winapi",
3091
+
]
3092
+
3093
+
[[package]]
3094
+
name = "thiserror"
3095
+
version = "1.0.69"
3096
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3097
+
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
3098
+
dependencies = [
3099
+
"thiserror-impl 1.0.69",
3100
+
]
3101
+
3102
+
[[package]]
3103
+
name = "thiserror"
3104
+
version = "2.0.18"
3105
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3106
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
3107
+
dependencies = [
3108
+
"thiserror-impl 2.0.18",
3109
+
]
3110
+
3111
+
[[package]]
3112
+
name = "thiserror-impl"
3113
+
version = "1.0.69"
3114
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3115
+
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
3116
+
dependencies = [
3117
+
"proc-macro2",
3118
+
"quote",
3119
+
"syn 2.0.117",
3120
+
]
3121
+
3122
+
[[package]]
3123
+
name = "thiserror-impl"
3124
+
version = "2.0.18"
3125
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3126
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
3127
+
dependencies = [
3128
+
"proc-macro2",
3129
+
"quote",
3130
+
"syn 2.0.117",
3131
+
]
3132
+
3133
+
[[package]]
3134
+
name = "thread_local"
3135
+
version = "1.1.9"
3136
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3137
+
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
3138
+
dependencies = [
3139
+
"cfg-if",
3140
+
]
3141
+
3142
+
[[package]]
3143
+
name = "time"
3144
+
version = "0.3.47"
3145
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3146
+
checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
3147
+
dependencies = [
3148
+
"deranged",
3149
+
"itoa",
3150
+
"libc",
3151
+
"num-conv",
3152
+
"num_threads",
3153
+
"powerfmt",
3154
+
"serde_core",
3155
+
"time-core",
3156
+
"time-macros",
3157
+
]
3158
+
3159
+
[[package]]
3160
+
name = "time-core"
3161
+
version = "0.1.8"
3162
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3163
+
checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
3164
+
3165
+
[[package]]
3166
+
name = "time-macros"
3167
+
version = "0.2.27"
3168
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3169
+
checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
3170
+
dependencies = [
3171
+
"num-conv",
3172
+
"time-core",
3173
+
]
3174
+
3175
+
[[package]]
3176
+
name = "tinyvec"
3177
+
version = "1.10.0"
3178
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3179
+
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
3180
+
dependencies = [
3181
+
"tinyvec_macros",
3182
+
]
3183
+
3184
+
[[package]]
3185
+
name = "tinyvec_macros"
3186
+
version = "0.1.1"
3187
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3188
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
3189
+
3190
+
[[package]]
3191
+
name = "tokio"
3192
+
version = "1.50.0"
3193
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3194
+
checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d"
3195
+
dependencies = [
3196
+
"bytes",
3197
+
"libc",
3198
+
"mio",
3199
+
"parking_lot",
3200
+
"pin-project-lite",
3201
+
"signal-hook-registry",
3202
+
"socket2",
3203
+
"tokio-macros",
3204
+
"windows-sys 0.61.2",
3205
+
]
3206
+
3207
+
[[package]]
3208
+
name = "tokio-macros"
3209
+
version = "2.6.0"
3210
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3211
+
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
3212
+
dependencies = [
3213
+
"proc-macro2",
3214
+
"quote",
3215
+
"syn 2.0.117",
3216
+
]
3217
+
3218
+
[[package]]
3219
+
name = "tokio-util"
3220
+
version = "0.7.18"
3221
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3222
+
checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
3223
+
dependencies = [
3224
+
"bytes",
3225
+
"futures-core",
3226
+
"futures-sink",
3227
+
"pin-project-lite",
3228
+
"tokio",
3229
+
]
3230
+
3231
+
[[package]]
3232
+
name = "toml"
3233
+
version = "0.9.12+spec-1.1.0"
3234
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3235
+
checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863"
3236
+
dependencies = [
3237
+
"serde_core",
3238
+
"serde_spanned",
3239
+
"toml_datetime",
3240
+
"toml_writer",
3241
+
]
3242
+
3243
+
[[package]]
3244
+
name = "toml_datetime"
3245
+
version = "0.7.5+spec-1.1.0"
3246
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3247
+
checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
3248
+
dependencies = [
3249
+
"serde_core",
3250
+
]
3251
+
3252
+
[[package]]
3253
+
name = "toml_writer"
3254
+
version = "1.0.6+spec-1.1.0"
3255
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3256
+
checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
3257
+
3258
+
[[package]]
3259
+
name = "tracing"
3260
+
version = "0.1.44"
3261
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3262
+
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
3263
+
dependencies = [
3264
+
"pin-project-lite",
3265
+
"tracing-attributes",
3266
+
"tracing-core",
3267
+
]
3268
+
3269
+
[[package]]
3270
+
name = "tracing-attributes"
3271
+
version = "0.1.31"
3272
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3273
+
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
3274
+
dependencies = [
3275
+
"proc-macro2",
3276
+
"quote",
3277
+
"syn 2.0.117",
3278
+
]
3279
+
3280
+
[[package]]
3281
+
name = "tracing-core"
3282
+
version = "0.1.36"
3283
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3284
+
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
3285
+
dependencies = [
3286
+
"once_cell",
3287
+
"valuable",
3288
+
]
3289
+
3290
+
[[package]]
3291
+
name = "tracing-error"
3292
+
version = "0.2.1"
3293
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3294
+
checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db"
3295
+
dependencies = [
3296
+
"tracing",
3297
+
"tracing-subscriber",
3298
+
]
3299
+
3300
+
[[package]]
3301
+
name = "tracing-log"
3302
+
version = "0.2.0"
3303
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3304
+
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
3305
+
dependencies = [
3306
+
"log",
3307
+
"once_cell",
3308
+
"tracing-core",
3309
+
]
3310
+
3311
+
[[package]]
3312
+
name = "tracing-subscriber"
3313
+
version = "0.3.22"
3314
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3315
+
checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
3316
+
dependencies = [
3317
+
"matchers",
3318
+
"nu-ansi-term",
3319
+
"once_cell",
3320
+
"regex-automata",
3321
+
"sharded-slab",
3322
+
"smallvec",
3323
+
"thread_local",
3324
+
"tracing",
3325
+
"tracing-core",
3326
+
"tracing-log",
3327
+
]
3328
+
3329
+
[[package]]
3330
+
name = "typenum"
3331
+
version = "1.19.0"
3332
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3333
+
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
3334
+
3335
+
[[package]]
3336
+
name = "ucd-trie"
3337
+
version = "0.1.7"
3338
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3339
+
checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
3340
+
3341
+
[[package]]
3342
+
name = "unicase"
3343
+
version = "2.9.0"
3344
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3345
+
checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
3346
+
3347
+
[[package]]
3348
+
name = "unicode-bom"
3349
+
version = "2.0.3"
3350
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3351
+
checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
3352
+
3353
+
[[package]]
3354
+
name = "unicode-ident"
3355
+
version = "1.0.24"
3356
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3357
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
3358
+
3359
+
[[package]]
3360
+
name = "unicode-normalization"
3361
+
version = "0.1.25"
3362
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3363
+
checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
3364
+
dependencies = [
3365
+
"tinyvec",
3366
+
]
3367
+
3368
+
[[package]]
3369
+
name = "unicode-segmentation"
3370
+
version = "1.12.0"
3371
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3372
+
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
3373
+
3374
+
[[package]]
3375
+
name = "unicode-truncate"
3376
+
version = "2.0.1"
3377
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3378
+
checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5"
3379
+
dependencies = [
3380
+
"itertools",
3381
+
"unicode-segmentation",
3382
+
"unicode-width 0.2.2",
3383
+
]
3384
+
3385
+
[[package]]
3386
+
name = "unicode-width"
3387
+
version = "0.1.14"
3388
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3389
+
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
3390
+
3391
+
[[package]]
3392
+
name = "unicode-width"
3393
+
version = "0.2.2"
3394
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3395
+
checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
3396
+
3397
+
[[package]]
3398
+
name = "unicode-xid"
3399
+
version = "0.2.6"
3400
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3401
+
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
3402
+
3403
+
[[package]]
3404
+
name = "utf8parse"
3405
+
version = "0.2.2"
3406
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3407
+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
3408
+
3409
+
[[package]]
3410
+
name = "uuid"
3411
+
version = "1.21.0"
3412
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3413
+
checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb"
3414
+
dependencies = [
3415
+
"atomic",
3416
+
"getrandom 0.4.2",
3417
+
"js-sys",
3418
+
"wasm-bindgen",
3419
+
]
3420
+
3421
+
[[package]]
3422
+
name = "valuable"
3423
+
version = "0.1.1"
3424
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3425
+
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
3426
+
3427
+
[[package]]
3428
+
name = "vergen"
3429
+
version = "9.1.0"
3430
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3431
+
checksum = "b849a1f6d8639e8de261e81ee0fc881e3e3620db1af9f2e0da015d4382ceaf75"
3432
+
dependencies = [
3433
+
"anyhow",
3434
+
"cargo_metadata",
3435
+
"derive_builder",
3436
+
"regex",
3437
+
"rustversion",
3438
+
"time",
3439
+
"vergen-lib",
3440
+
]
3441
+
3442
+
[[package]]
3443
+
name = "vergen-gix"
3444
+
version = "9.1.0"
3445
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3446
+
checksum = "24433912be6b84c6f8f41907edfaad852deaa666f59da5f46621b0ef58b644f0"
3447
+
dependencies = [
3448
+
"anyhow",
3449
+
"derive_builder",
3450
+
"gix",
3451
+
"rustversion",
3452
+
"time",
3453
+
"vergen",
3454
+
"vergen-lib",
3455
+
]
3456
+
3457
+
[[package]]
3458
+
name = "vergen-lib"
3459
+
version = "9.1.0"
3460
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3461
+
checksum = "b34a29ba7e9c59e62f229ae1932fb1b8fb8a6fdcc99215a641913f5f5a59a569"
3462
+
dependencies = [
3463
+
"anyhow",
3464
+
"derive_builder",
3465
+
"rustversion",
3466
+
]
3467
+
3468
+
[[package]]
3469
+
name = "version_check"
3470
+
version = "0.9.5"
3471
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3472
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
3473
+
3474
+
[[package]]
3475
+
name = "vtparse"
3476
+
version = "0.6.2"
3477
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3478
+
checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0"
3479
+
dependencies = [
3480
+
"utf8parse",
3481
+
]
3482
+
3483
+
[[package]]
3484
+
name = "walkdir"
3485
+
version = "2.5.0"
3486
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3487
+
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
3488
+
dependencies = [
3489
+
"same-file",
3490
+
"winapi-util",
3491
+
]
3492
+
3493
+
[[package]]
3494
+
name = "wasi"
3495
+
version = "0.11.1+wasi-snapshot-preview1"
3496
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3497
+
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
3498
+
3499
+
[[package]]
3500
+
name = "wasip2"
3501
+
version = "1.0.2+wasi-0.2.9"
3502
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3503
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
3504
+
dependencies = [
3505
+
"wit-bindgen",
3506
+
]
3507
+
3508
+
[[package]]
3509
+
name = "wasip3"
3510
+
version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
3511
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3512
+
checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
3513
+
dependencies = [
3514
+
"wit-bindgen",
3515
+
]
3516
+
3517
+
[[package]]
3518
+
name = "wasm-bindgen"
3519
+
version = "0.2.114"
3520
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3521
+
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
3522
+
dependencies = [
3523
+
"cfg-if",
3524
+
"once_cell",
3525
+
"rustversion",
3526
+
"wasm-bindgen-macro",
3527
+
"wasm-bindgen-shared",
3528
+
]
3529
+
3530
+
[[package]]
3531
+
name = "wasm-bindgen-macro"
3532
+
version = "0.2.114"
3533
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3534
+
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
3535
+
dependencies = [
3536
+
"quote",
3537
+
"wasm-bindgen-macro-support",
3538
+
]
3539
+
3540
+
[[package]]
3541
+
name = "wasm-bindgen-macro-support"
3542
+
version = "0.2.114"
3543
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3544
+
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
3545
+
dependencies = [
3546
+
"bumpalo",
3547
+
"proc-macro2",
3548
+
"quote",
3549
+
"syn 2.0.117",
3550
+
"wasm-bindgen-shared",
3551
+
]
3552
+
3553
+
[[package]]
3554
+
name = "wasm-bindgen-shared"
3555
+
version = "0.2.114"
3556
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3557
+
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
3558
+
dependencies = [
3559
+
"unicode-ident",
3560
+
]
3561
+
3562
+
[[package]]
3563
+
name = "wasm-encoder"
3564
+
version = "0.244.0"
3565
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3566
+
checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
3567
+
dependencies = [
3568
+
"leb128fmt",
3569
+
"wasmparser",
3570
+
]
3571
+
3572
+
[[package]]
3573
+
name = "wasm-metadata"
3574
+
version = "0.244.0"
3575
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3576
+
checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
3577
+
dependencies = [
3578
+
"anyhow",
3579
+
"indexmap",
3580
+
"wasm-encoder",
3581
+
"wasmparser",
3582
+
]
3583
+
3584
+
[[package]]
3585
+
name = "wasmparser"
3586
+
version = "0.244.0"
3587
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3588
+
checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
3589
+
dependencies = [
3590
+
"bitflags 2.11.0",
3591
+
"hashbrown 0.15.5",
3592
+
"indexmap",
3593
+
"semver",
3594
+
]
3595
+
3596
+
[[package]]
3597
+
name = "wezterm-bidi"
3598
+
version = "0.2.3"
3599
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3600
+
checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec"
3601
+
dependencies = [
3602
+
"log",
3603
+
"wezterm-dynamic",
3604
+
]
3605
+
3606
+
[[package]]
3607
+
name = "wezterm-blob-leases"
3608
+
version = "0.1.1"
3609
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3610
+
checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7"
3611
+
dependencies = [
3612
+
"getrandom 0.3.4",
3613
+
"mac_address",
3614
+
"sha2",
3615
+
"thiserror 1.0.69",
3616
+
"uuid",
3617
+
]
3618
+
3619
+
[[package]]
3620
+
name = "wezterm-color-types"
3621
+
version = "0.3.0"
3622
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3623
+
checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296"
3624
+
dependencies = [
3625
+
"csscolorparser",
3626
+
"deltae",
3627
+
"lazy_static",
3628
+
"wezterm-dynamic",
3629
+
]
3630
+
3631
+
[[package]]
3632
+
name = "wezterm-dynamic"
3633
+
version = "0.2.1"
3634
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3635
+
checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac"
3636
+
dependencies = [
3637
+
"log",
3638
+
"ordered-float",
3639
+
"strsim",
3640
+
"thiserror 1.0.69",
3641
+
"wezterm-dynamic-derive",
3642
+
]
3643
+
3644
+
[[package]]
3645
+
name = "wezterm-dynamic-derive"
3646
+
version = "0.1.1"
3647
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3648
+
checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b"
3649
+
dependencies = [
3650
+
"proc-macro2",
3651
+
"quote",
3652
+
"syn 1.0.109",
3653
+
]
3654
+
3655
+
[[package]]
3656
+
name = "wezterm-input-types"
3657
+
version = "0.1.0"
3658
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3659
+
checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e"
3660
+
dependencies = [
3661
+
"bitflags 1.3.2",
3662
+
"euclid",
3663
+
"lazy_static",
3664
+
"serde",
3665
+
"wezterm-dynamic",
3666
+
]
3667
+
3668
+
[[package]]
3669
+
name = "winapi"
3670
+
version = "0.3.9"
3671
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3672
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
3673
+
dependencies = [
3674
+
"winapi-i686-pc-windows-gnu",
3675
+
"winapi-x86_64-pc-windows-gnu",
3676
+
]
3677
+
3678
+
[[package]]
3679
+
name = "winapi-i686-pc-windows-gnu"
3680
+
version = "0.4.0"
3681
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3682
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
3683
+
3684
+
[[package]]
3685
+
name = "winapi-util"
3686
+
version = "0.1.11"
3687
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3688
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
3689
+
dependencies = [
3690
+
"windows-sys 0.61.2",
3691
+
]
3692
+
3693
+
[[package]]
3694
+
name = "winapi-x86_64-pc-windows-gnu"
3695
+
version = "0.4.0"
3696
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3697
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
3698
+
3699
+
[[package]]
3700
+
name = "windows"
3701
+
version = "0.61.3"
3702
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3703
+
checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
3704
+
dependencies = [
3705
+
"windows-collections",
3706
+
"windows-core",
3707
+
"windows-future",
3708
+
"windows-link 0.1.3",
3709
+
"windows-numerics",
3710
+
]
3711
+
3712
+
[[package]]
3713
+
name = "windows-collections"
3714
+
version = "0.2.0"
3715
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3716
+
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
3717
+
dependencies = [
3718
+
"windows-core",
3719
+
]
3720
+
3721
+
[[package]]
3722
+
name = "windows-core"
3723
+
version = "0.61.2"
3724
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3725
+
checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
3726
+
dependencies = [
3727
+
"windows-implement",
3728
+
"windows-interface",
3729
+
"windows-link 0.1.3",
3730
+
"windows-result",
3731
+
"windows-strings",
3732
+
]
3733
+
3734
+
[[package]]
3735
+
name = "windows-future"
3736
+
version = "0.2.1"
3737
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3738
+
checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
3739
+
dependencies = [
3740
+
"windows-core",
3741
+
"windows-link 0.1.3",
3742
+
"windows-threading",
3743
+
]
3744
+
3745
+
[[package]]
3746
+
name = "windows-implement"
3747
+
version = "0.60.2"
3748
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3749
+
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
3750
+
dependencies = [
3751
+
"proc-macro2",
3752
+
"quote",
3753
+
"syn 2.0.117",
3754
+
]
3755
+
3756
+
[[package]]
3757
+
name = "windows-interface"
3758
+
version = "0.59.3"
3759
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3760
+
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
3761
+
dependencies = [
3762
+
"proc-macro2",
3763
+
"quote",
3764
+
"syn 2.0.117",
3765
+
]
3766
+
3767
+
[[package]]
3768
+
name = "windows-link"
3769
+
version = "0.1.3"
3770
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3771
+
checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
3772
+
3773
+
[[package]]
3774
+
name = "windows-link"
3775
+
version = "0.2.1"
3776
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3777
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
3778
+
3779
+
[[package]]
3780
+
name = "windows-numerics"
3781
+
version = "0.2.0"
3782
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3783
+
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
3784
+
dependencies = [
3785
+
"windows-core",
3786
+
"windows-link 0.1.3",
3787
+
]
3788
+
3789
+
[[package]]
3790
+
name = "windows-result"
3791
+
version = "0.3.4"
3792
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3793
+
checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
3794
+
dependencies = [
3795
+
"windows-link 0.1.3",
3796
+
]
3797
+
3798
+
[[package]]
3799
+
name = "windows-strings"
3800
+
version = "0.4.2"
3801
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3802
+
checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
3803
+
dependencies = [
3804
+
"windows-link 0.1.3",
3805
+
]
3806
+
3807
+
[[package]]
3808
+
name = "windows-sys"
3809
+
version = "0.59.0"
3810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3811
+
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
3812
+
dependencies = [
3813
+
"windows-targets 0.52.6",
3814
+
]
3815
+
3816
+
[[package]]
3817
+
name = "windows-sys"
3818
+
version = "0.60.2"
3819
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3820
+
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
3821
+
dependencies = [
3822
+
"windows-targets 0.53.5",
3823
+
]
3824
+
3825
+
[[package]]
3826
+
name = "windows-sys"
3827
+
version = "0.61.2"
3828
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3829
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
3830
+
dependencies = [
3831
+
"windows-link 0.2.1",
3832
+
]
3833
+
3834
+
[[package]]
3835
+
name = "windows-targets"
3836
+
version = "0.52.6"
3837
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3838
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
3839
+
dependencies = [
3840
+
"windows_aarch64_gnullvm 0.52.6",
3841
+
"windows_aarch64_msvc 0.52.6",
3842
+
"windows_i686_gnu 0.52.6",
3843
+
"windows_i686_gnullvm 0.52.6",
3844
+
"windows_i686_msvc 0.52.6",
3845
+
"windows_x86_64_gnu 0.52.6",
3846
+
"windows_x86_64_gnullvm 0.52.6",
3847
+
"windows_x86_64_msvc 0.52.6",
3848
+
]
3849
+
3850
+
[[package]]
3851
+
name = "windows-targets"
3852
+
version = "0.53.5"
3853
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3854
+
checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
3855
+
dependencies = [
3856
+
"windows-link 0.2.1",
3857
+
"windows_aarch64_gnullvm 0.53.1",
3858
+
"windows_aarch64_msvc 0.53.1",
3859
+
"windows_i686_gnu 0.53.1",
3860
+
"windows_i686_gnullvm 0.53.1",
3861
+
"windows_i686_msvc 0.53.1",
3862
+
"windows_x86_64_gnu 0.53.1",
3863
+
"windows_x86_64_gnullvm 0.53.1",
3864
+
"windows_x86_64_msvc 0.53.1",
3865
+
]
3866
+
3867
+
[[package]]
3868
+
name = "windows-threading"
3869
+
version = "0.1.0"
3870
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3871
+
checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
3872
+
dependencies = [
3873
+
"windows-link 0.1.3",
3874
+
]
3875
+
3876
+
[[package]]
3877
+
name = "windows_aarch64_gnullvm"
3878
+
version = "0.52.6"
3879
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3880
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
3881
+
3882
+
[[package]]
3883
+
name = "windows_aarch64_gnullvm"
3884
+
version = "0.53.1"
3885
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3886
+
checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
3887
+
3888
+
[[package]]
3889
+
name = "windows_aarch64_msvc"
3890
+
version = "0.52.6"
3891
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3892
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
3893
+
3894
+
[[package]]
3895
+
name = "windows_aarch64_msvc"
3896
+
version = "0.53.1"
3897
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3898
+
checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
3899
+
3900
+
[[package]]
3901
+
name = "windows_i686_gnu"
3902
+
version = "0.52.6"
3903
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3904
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
3905
+
3906
+
[[package]]
3907
+
name = "windows_i686_gnu"
3908
+
version = "0.53.1"
3909
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3910
+
checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
3911
+
3912
+
[[package]]
3913
+
name = "windows_i686_gnullvm"
3914
+
version = "0.52.6"
3915
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3916
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
3917
+
3918
+
[[package]]
3919
+
name = "windows_i686_gnullvm"
3920
+
version = "0.53.1"
3921
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3922
+
checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
3923
+
3924
+
[[package]]
3925
+
name = "windows_i686_msvc"
3926
+
version = "0.52.6"
3927
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3928
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
3929
+
3930
+
[[package]]
3931
+
name = "windows_i686_msvc"
3932
+
version = "0.53.1"
3933
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3934
+
checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
3935
+
3936
+
[[package]]
3937
+
name = "windows_x86_64_gnu"
3938
+
version = "0.52.6"
3939
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3940
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
3941
+
3942
+
[[package]]
3943
+
name = "windows_x86_64_gnu"
3944
+
version = "0.53.1"
3945
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3946
+
checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
3947
+
3948
+
[[package]]
3949
+
name = "windows_x86_64_gnullvm"
3950
+
version = "0.52.6"
3951
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3952
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
3953
+
3954
+
[[package]]
3955
+
name = "windows_x86_64_gnullvm"
3956
+
version = "0.53.1"
3957
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3958
+
checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
3959
+
3960
+
[[package]]
3961
+
name = "windows_x86_64_msvc"
3962
+
version = "0.52.6"
3963
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3964
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
3965
+
3966
+
[[package]]
3967
+
name = "windows_x86_64_msvc"
3968
+
version = "0.53.1"
3969
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3970
+
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
3971
+
3972
+
[[package]]
3973
+
name = "winnow"
3974
+
version = "0.6.24"
3975
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3976
+
checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a"
3977
+
dependencies = [
3978
+
"memchr",
3979
+
]
3980
+
3981
+
[[package]]
3982
+
name = "winnow"
3983
+
version = "0.7.15"
3984
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3985
+
checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
3986
+
dependencies = [
3987
+
"memchr",
3988
+
]
3989
+
3990
+
[[package]]
3991
+
name = "wit-bindgen"
3992
+
version = "0.51.0"
3993
+
source = "registry+https://github.com/rust-lang/crates.io-index"
3994
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
3995
+
dependencies = [
3996
+
"wit-bindgen-rust-macro",
3997
+
]
3998
+
3999
+
[[package]]
4000
+
name = "wit-bindgen-core"
4001
+
version = "0.51.0"
4002
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4003
+
checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
4004
+
dependencies = [
4005
+
"anyhow",
4006
+
"heck",
4007
+
"wit-parser",
4008
+
]
4009
+
4010
+
[[package]]
4011
+
name = "wit-bindgen-rust"
4012
+
version = "0.51.0"
4013
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4014
+
checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
4015
+
dependencies = [
4016
+
"anyhow",
4017
+
"heck",
4018
+
"indexmap",
4019
+
"prettyplease",
4020
+
"syn 2.0.117",
4021
+
"wasm-metadata",
4022
+
"wit-bindgen-core",
4023
+
"wit-component",
4024
+
]
4025
+
4026
+
[[package]]
4027
+
name = "wit-bindgen-rust-macro"
4028
+
version = "0.51.0"
4029
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4030
+
checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
4031
+
dependencies = [
4032
+
"anyhow",
4033
+
"prettyplease",
4034
+
"proc-macro2",
4035
+
"quote",
4036
+
"syn 2.0.117",
4037
+
"wit-bindgen-core",
4038
+
"wit-bindgen-rust",
4039
+
]
4040
+
4041
+
[[package]]
4042
+
name = "wit-component"
4043
+
version = "0.244.0"
4044
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4045
+
checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
4046
+
dependencies = [
4047
+
"anyhow",
4048
+
"bitflags 2.11.0",
4049
+
"indexmap",
4050
+
"log",
4051
+
"serde",
4052
+
"serde_derive",
4053
+
"serde_json",
4054
+
"wasm-encoder",
4055
+
"wasm-metadata",
4056
+
"wasmparser",
4057
+
"wit-parser",
4058
+
]
4059
+
4060
+
[[package]]
4061
+
name = "wit-parser"
4062
+
version = "0.244.0"
4063
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4064
+
checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
4065
+
dependencies = [
4066
+
"anyhow",
4067
+
"id-arena",
4068
+
"indexmap",
4069
+
"log",
4070
+
"semver",
4071
+
"serde",
4072
+
"serde_derive",
4073
+
"serde_json",
4074
+
"unicode-xid",
4075
+
"wasmparser",
4076
+
]
4077
+
4078
+
[[package]]
4079
+
name = "zlib-rs"
4080
+
version = "0.5.5"
4081
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4082
+
checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
4083
+
4084
+
[[package]]
4085
+
name = "zmij"
4086
+
version = "1.0.21"
4087
+
source = "registry+https://github.com/rust-lang/crates.io-index"
4088
+
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+30
-1
Cargo.toml
+30
-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
+
kdl = "6.5.0"
65
+
66
+
[build-dependencies]
67
+
anyhow = "1.0.102"
68
+
vergen-gix = {version = "9.1.0", features = ["build", "cargo"]}
69
+
70
+
[profile.release]
71
+
codegen-units = 1
72
+
lto = true
73
+
opt-level = "s"
74
+
strip = true
46
75
+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}}
+203
src/app.rs
+203
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 strum::{Display, EnumIter};
6
+
use tokio::sync::mpsc::{self, UnboundedReceiver, UnboundedSender};
7
+
use tracing::debug;
8
+
9
+
use crate::{
10
+
components::Component,
11
+
config::Config,
12
+
signal::Signal,
13
+
tui::{Event, Tui},
14
+
};
15
+
16
+
pub struct App {
17
+
config: Config,
18
+
tick_rate: f64,
19
+
frame_rate: f64,
20
+
components: Vec<Box<dyn Component>>,
21
+
should_quit: bool,
22
+
should_suspend: bool,
23
+
#[allow(dead_code)]
24
+
region: Region,
25
+
last_tick_key_events: Vec<KeyEvent>,
26
+
signal_tx: UnboundedSender<Signal>,
27
+
signal_rx: UnboundedReceiver<Signal>,
28
+
}
29
+
30
+
/// The different regions of the application that the user can
31
+
/// be interacting with. Think of these kind of like the highest class of
32
+
/// components.
33
+
#[derive(
34
+
Default, Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, EnumIter, Display,
35
+
)]
36
+
pub enum Region {
37
+
#[default]
38
+
Home,
39
+
}
40
+
41
+
impl App {
42
+
/// Construct a new `App` instance.
43
+
pub fn new(tick_rate: f64, frame_rate: f64) -> Self {
44
+
let (signal_tx, signal_rx) = mpsc::unbounded_channel();
45
+
46
+
Self {
47
+
tick_rate,
48
+
frame_rate,
49
+
components: vec![],
50
+
should_quit: false,
51
+
should_suspend: false,
52
+
config: Config::new(),
53
+
region: Region::default(),
54
+
last_tick_key_events: Vec::new(),
55
+
signal_tx,
56
+
signal_rx,
57
+
}
58
+
}
59
+
60
+
pub async fn run(&mut self) -> Result<()> {
61
+
let mut tui = Tui::new()?
62
+
.with_tick_rate(self.tick_rate)
63
+
.with_frame_rate(self.frame_rate);
64
+
tui.enter()?;
65
+
66
+
for component in &mut self.components {
67
+
component.register_signal_handler(self.signal_tx.clone())?;
68
+
}
69
+
for component in &mut self.components {
70
+
component.register_config_handler(self.config.clone())?;
71
+
}
72
+
73
+
for component in &mut self.components {
74
+
component.init(tui.size()?)?;
75
+
}
76
+
77
+
let signal_tx = self.signal_tx.clone();
78
+
79
+
loop {
80
+
self.handle_events(&mut tui).await?;
81
+
self.handle_signals(&mut tui)?;
82
+
if self.should_suspend {
83
+
tui.suspend()?;
84
+
85
+
// We are sending resume here because once its done suspending,
86
+
// it will continue execution here.
87
+
signal_tx.send(Signal::Resume)?;
88
+
signal_tx.send(Signal::ClearScreen)?;
89
+
tui.enter()?;
90
+
} else if self.should_quit {
91
+
tui.stop();
92
+
break;
93
+
}
94
+
}
95
+
96
+
tui.exit()?;
97
+
98
+
Ok(())
99
+
}
100
+
101
+
async fn handle_events(&mut self, tui: &mut Tui) -> Result<()> {
102
+
let Some(event) = tui.next_event().await else {
103
+
return Ok(());
104
+
};
105
+
106
+
debug!("received event: {event:?}");
107
+
108
+
let signal_tx = self.signal_tx.clone();
109
+
110
+
match event {
111
+
Event::Quit => signal_tx.send(Signal::Quit)?,
112
+
Event::Tick => signal_tx.send(Signal::Tick)?,
113
+
Event::Render => signal_tx.send(Signal::Render)?,
114
+
Event::Resize(x, y) => signal_tx.send(Signal::Resize(x, y))?,
115
+
Event::Key(key) => self.handle_key_event(key)?,
116
+
117
+
_ => {}
118
+
}
119
+
120
+
for component in &mut self.components {
121
+
if let Some(signal) = component.handle_events(Some(event.clone()))? {
122
+
signal_tx.send(signal)?;
123
+
}
124
+
}
125
+
126
+
Ok(())
127
+
}
128
+
129
+
fn handle_key_event(&mut self, key: KeyEvent) -> Result<()> {
130
+
debug!("key received: {key:#?}");
131
+
132
+
let signal_tx = self.signal_tx.clone();
133
+
134
+
let Some(region_keymap) = self.config.keymap.get(&self.region) else {
135
+
return Ok(());
136
+
};
137
+
138
+
if let Some(signal) = region_keymap.get(&vec![key]) {
139
+
signal_tx.send(signal.clone())?;
140
+
} else {
141
+
self.last_tick_key_events.push(key);
142
+
if let Some(signal) = region_keymap.get(&self.last_tick_key_events) {
143
+
debug!("Got signal: {signal:?}");
144
+
signal_tx.send(signal.clone())?;
145
+
}
146
+
}
147
+
148
+
Ok(())
149
+
}
150
+
151
+
fn handle_signals(&mut self, tui: &mut Tui) -> Result<()> {
152
+
while let Ok(signal) = self.signal_rx.try_recv() {
153
+
if signal != Signal::Tick && signal != Signal::Render {
154
+
debug!("handling signal: {signal:?}");
155
+
}
156
+
157
+
match signal {
158
+
Signal::Tick => {
159
+
self.last_tick_key_events.drain(..);
160
+
}
161
+
162
+
Signal::Quit => self.should_quit = true,
163
+
164
+
Signal::Suspend => self.should_suspend = true,
165
+
166
+
Signal::Resume => self.should_suspend = false,
167
+
168
+
Signal::ClearScreen => tui.terminal.clear()?,
169
+
Signal::Resize(x, y) => self.handle_resize(tui, x, y)?,
170
+
Signal::Render => self.render(tui)?,
171
+
_ => {}
172
+
}
173
+
174
+
for component in &mut self.components {
175
+
if let Some(signal) = component.update(signal.clone())? {
176
+
self.signal_tx.send(signal)?;
177
+
}
178
+
}
179
+
}
180
+
Ok(())
181
+
}
182
+
183
+
fn handle_resize(&mut self, tui: &mut Tui, w: u16, h: u16) -> Result<()> {
184
+
tui.resize(Rect::new(0, 0, w, h))?;
185
+
186
+
self.render(tui)?;
187
+
Ok(())
188
+
}
189
+
190
+
fn render(&mut self, tui: &mut Tui) -> Result<()> {
191
+
tui.draw(|frame| {
192
+
for component in &mut self.components {
193
+
if let Err(err) = component.draw(frame, frame.area()) {
194
+
let _ = self
195
+
.signal_tx
196
+
.send(Signal::Error(format!("Failed to draw: {err:?}")));
197
+
}
198
+
}
199
+
})?;
200
+
201
+
Ok(())
202
+
}
203
+
}
+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
+
}
+92
src/config.rs
+92
src/config.rs
···
1
+
use directories::ProjectDirs;
2
+
use kdl::KdlDocument;
3
+
use serde::Deserialize;
4
+
use std::{env, path::PathBuf, sync::LazyLock};
5
+
6
+
use crate::keymap::KeyMap;
7
+
8
+
/// Project Name: Filaments
9
+
pub static PROJECT_NAME: LazyLock<String> =
10
+
LazyLock::new(|| env!("CARGO_CRATE_NAME").to_uppercase());
11
+
12
+
/// The OS-agnostic data directory for the project.
13
+
pub static DATA_DIRECTORY: LazyLock<Option<PathBuf>> = LazyLock::new(|| {
14
+
env::var(format!("{}_DATA", PROJECT_NAME.clone()))
15
+
.ok()
16
+
.map(PathBuf::from)
17
+
});
18
+
19
+
/// The OS-agnostic config directory for the project.
20
+
pub static CONFIG_DIRECTORY: LazyLock<Option<PathBuf>> = LazyLock::new(|| {
21
+
env::var(format!("{}_CONFIG", PROJECT_NAME.clone()))
22
+
.ok()
23
+
.map(PathBuf::from)
24
+
});
25
+
26
+
const DEFAULT_CONFIG: &str = include_str!("../.config/config.kdl");
27
+
28
+
/// The App Config and Data locations.
29
+
#[derive(Clone, Debug, Deserialize, Default)]
30
+
#[expect(dead_code)]
31
+
pub struct AppConfig {
32
+
#[serde(default)]
33
+
pub data_dir: PathBuf,
34
+
#[serde(default)]
35
+
pub config_dir: PathBuf,
36
+
}
37
+
38
+
/// Configuration for the App
39
+
#[expect(dead_code)]
40
+
#[derive(Debug, Clone)]
41
+
pub struct Config {
42
+
pub app_config: AppConfig,
43
+
pub keymap: KeyMap,
44
+
// pub styles: Styles,
45
+
}
46
+
47
+
impl Config {
48
+
pub fn new() -> Self {
49
+
let default_config: KdlDocument = DEFAULT_CONFIG
50
+
.parse()
51
+
.expect("Default config should always be a valid KDL document.");
52
+
53
+
let keymap_node = default_config
54
+
.get("keymap")
55
+
.expect("Config::new Keymap must exist in default config.");
56
+
57
+
let keymap =
58
+
KeyMap::try_from(keymap_node).expect("default config should always be a valid keymap");
59
+
60
+
Self {
61
+
app_config: AppConfig {
62
+
data_dir: get_data_dir(),
63
+
config_dir: get_config_dir(),
64
+
},
65
+
keymap,
66
+
}
67
+
}
68
+
}
69
+
70
+
/// Returns the path to the OS-agnostic data directory.
71
+
pub fn get_data_dir() -> PathBuf {
72
+
DATA_DIRECTORY.clone().unwrap_or_else(|| {
73
+
project_directory().map_or_else(
74
+
|| PathBuf::from(".").join(".data"),
75
+
|proj_dirs| proj_dirs.data_local_dir().to_path_buf(),
76
+
)
77
+
})
78
+
}
79
+
80
+
/// Returns the path to the OS-agnostic config directory.
81
+
pub fn get_config_dir() -> PathBuf {
82
+
CONFIG_DIRECTORY.clone().unwrap_or_else(|| {
83
+
project_directory().map_or_else(
84
+
|| PathBuf::from(".").join(".config"),
85
+
|proj_dirs| proj_dirs.config_local_dir().to_path_buf(),
86
+
)
87
+
})
88
+
}
89
+
90
+
fn project_directory() -> Option<ProjectDirs> {
91
+
ProjectDirs::from("com", "suri-codes", env!("CARGO_PKG_NAME"))
92
+
}
+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
+
}
+209
src/keymap.rs
+209
src/keymap.rs
···
1
+
use std::{
2
+
collections::HashMap,
3
+
ops::{Deref, DerefMut},
4
+
};
5
+
6
+
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
7
+
use kdl::KdlNode;
8
+
use strum::IntoEnumIterator;
9
+
10
+
use crate::{app::Region, signal::Signal};
11
+
12
+
#[derive(Debug, Clone)]
13
+
pub struct KeyMap(pub HashMap<Region, HashMap<Vec<KeyEvent>, Signal>>);
14
+
15
+
impl TryFrom<&KdlNode> for KeyMap {
16
+
type Error = color_eyre::Report;
17
+
18
+
fn try_from(value: &KdlNode) -> std::result::Result<Self, Self::Error> {
19
+
let mut all_binds = HashMap::new();
20
+
21
+
for region in Region::iter() {
22
+
let mut region_binds = HashMap::new();
23
+
let Some(binds) = value
24
+
.children()
25
+
.expect("Keymap must have children.")
26
+
.get(®ion.to_string())
27
+
else {
28
+
continue;
29
+
};
30
+
31
+
// now we iter through the things children
32
+
for child in binds.iter_children() {
33
+
let key_combo_str = child.name().to_string();
34
+
let key_combo_str = key_combo_str.trim();
35
+
36
+
let signal_str = child
37
+
.entries()
38
+
.first()
39
+
.expect("A bind must map to an entry")
40
+
.to_string();
41
+
let signal_str = signal_str.trim();
42
+
43
+
let signal: Signal = signal_str.parse().expect("Must be a \"bindable\" Signal");
44
+
let key_combo = parse_key_sequence(key_combo_str).unwrap();
45
+
46
+
let _ = region_binds.insert(key_combo, signal);
47
+
}
48
+
49
+
let _ = all_binds.insert(region, region_binds);
50
+
}
51
+
52
+
Ok(Self(all_binds))
53
+
}
54
+
}
55
+
56
+
impl Deref for KeyMap {
57
+
type Target = HashMap<Region, HashMap<Vec<KeyEvent>, Signal>>;
58
+
59
+
fn deref(&self) -> &Self::Target {
60
+
&self.0
61
+
}
62
+
}
63
+
64
+
impl DerefMut for KeyMap {
65
+
fn deref_mut(&mut self) -> &mut Self::Target {
66
+
&mut self.0
67
+
}
68
+
}
69
+
70
+
pub fn parse_key_sequence(raw: &str) -> color_eyre::Result<Vec<KeyEvent>, String> {
71
+
if raw.chars().filter(|c| *c == '>').count() != raw.chars().filter(|c| *c == '<').count() {
72
+
return Err(format!("Unable to parse `{raw}`"));
73
+
}
74
+
let raw = if raw.contains("><") {
75
+
raw
76
+
} else {
77
+
let raw = raw.strip_prefix('<').unwrap_or(raw);
78
+
79
+
raw.strip_prefix('>').unwrap_or(raw)
80
+
};
81
+
82
+
raw.split("><")
83
+
.map(|seq| {
84
+
seq.strip_prefix('<')
85
+
.unwrap_or_else(|| seq.strip_suffix('>').map_or(seq, |s| s))
86
+
})
87
+
.map(parse_key_event)
88
+
.collect()
89
+
}
90
+
91
+
fn parse_key_event(raw: &str) -> color_eyre::Result<KeyEvent, String> {
92
+
let raw_lower = raw.to_ascii_lowercase();
93
+
let (remaining, modifiers) = extract_modifiers(&raw_lower);
94
+
parse_key_code_with_modifiers(remaining, modifiers)
95
+
}
96
+
97
+
fn extract_modifiers(raw: &str) -> (&str, KeyModifiers) {
98
+
let mut modifiers = KeyModifiers::empty();
99
+
let mut current = raw;
100
+
101
+
loop {
102
+
match current {
103
+
rest if rest.starts_with("ctrl-") => {
104
+
modifiers.insert(KeyModifiers::CONTROL);
105
+
current = &rest[5..];
106
+
}
107
+
rest if rest.starts_with("alt-") => {
108
+
modifiers.insert(KeyModifiers::ALT);
109
+
current = &rest[4..];
110
+
}
111
+
rest if rest.starts_with("shift-") => {
112
+
modifiers.insert(KeyModifiers::SHIFT);
113
+
current = &rest[6..];
114
+
}
115
+
_ => break, // break out of the loop if no known prefix is detected
116
+
}
117
+
}
118
+
119
+
(current, modifiers)
120
+
}
121
+
122
+
fn parse_key_code_with_modifiers(
123
+
raw: &str,
124
+
mut modifiers: KeyModifiers,
125
+
) -> color_eyre::Result<KeyEvent, String> {
126
+
let c = match raw {
127
+
"esc" => KeyCode::Esc,
128
+
"enter" => KeyCode::Enter,
129
+
"left" => KeyCode::Left,
130
+
"right" => KeyCode::Right,
131
+
"up" => KeyCode::Up,
132
+
"down" => KeyCode::Down,
133
+
"home" => KeyCode::Home,
134
+
"end" => KeyCode::End,
135
+
"pageup" => KeyCode::PageUp,
136
+
"pagedown" => KeyCode::PageDown,
137
+
"backtab" => {
138
+
modifiers.insert(KeyModifiers::SHIFT);
139
+
KeyCode::BackTab
140
+
}
141
+
"backspace" => KeyCode::Backspace,
142
+
"delete" => KeyCode::Delete,
143
+
"insert" => KeyCode::Insert,
144
+
"f1" => KeyCode::F(1),
145
+
"f2" => KeyCode::F(2),
146
+
"f3" => KeyCode::F(3),
147
+
"f4" => KeyCode::F(4),
148
+
"f5" => KeyCode::F(5),
149
+
"f6" => KeyCode::F(6),
150
+
"f7" => KeyCode::F(7),
151
+
"f8" => KeyCode::F(8),
152
+
"f9" => KeyCode::F(9),
153
+
"f10" => KeyCode::F(10),
154
+
"f11" => KeyCode::F(11),
155
+
"f12" => KeyCode::F(12),
156
+
"space" => KeyCode::Char(' '),
157
+
"hyphen" | "minuc" => KeyCode::Char('-'),
158
+
"tab" => KeyCode::Tab,
159
+
c if c.len() == 1 => {
160
+
let mut c = c.chars().next().unwrap();
161
+
if modifiers.contains(KeyModifiers::SHIFT) {
162
+
c = c.to_ascii_uppercase();
163
+
}
164
+
KeyCode::Char(c)
165
+
}
166
+
_ => return Err(format!("Unable to parse {raw}")),
167
+
};
168
+
Ok(KeyEvent::new(c, modifiers))
169
+
}
170
+
171
+
#[cfg(test)]
172
+
mod test {
173
+
use crossterm::event::{KeyEvent, KeyModifiers};
174
+
use kdl::KdlNode;
175
+
176
+
use crate::{keymap::KeyMap, signal::Signal};
177
+
178
+
#[test]
179
+
fn test_quit_in_home_region() {
180
+
let keymap_str = "
181
+
keymap {
182
+
Home {
183
+
q Quit
184
+
<Ctrl-C> Quit
185
+
}
186
+
}
187
+
";
188
+
189
+
let kdl: &KdlNode = &keymap_str
190
+
.parse()
191
+
.expect("Keymap_str should be a valid KDL document");
192
+
193
+
let keymap: KeyMap = kdl.try_into().expect("Must be a valid keymap");
194
+
195
+
let map = keymap
196
+
.get(&crate::app::Region::Home)
197
+
.expect("Home region must exist in keymap");
198
+
199
+
let signal = map
200
+
.get(&vec![KeyEvent::new_with_kind(
201
+
crossterm::event::KeyCode::Char('q'),
202
+
KeyModifiers::empty(),
203
+
crossterm::event::KeyEventKind::Press,
204
+
)])
205
+
.expect("Must resolve to a signal");
206
+
207
+
assert_eq!(*signal, Signal::Quit);
208
+
}
209
+
}
+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
+
use crate::{app::App, cli::Cli};
7
+
8
+
mod app;
9
+
mod cli;
10
+
mod components;
11
+
mod config;
12
+
mod errors;
13
+
mod keymap;
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
}
+37
src/signal.rs
+37
src/signal.rs
···
1
+
use std::str::FromStr;
2
+
3
+
use color_eyre::eyre::eyre;
4
+
use strum::Display;
5
+
6
+
use serde::{Deserialize, Serialize};
7
+
8
+
/// The varying signals that can be emitted.
9
+
#[derive(Debug, Clone, PartialEq, Eq, Display, Serialize, Deserialize)]
10
+
pub enum Signal {
11
+
Tick,
12
+
Render,
13
+
Resize(u16, u16),
14
+
Suspend,
15
+
Resume,
16
+
Quit,
17
+
ClearScreen,
18
+
Error(String),
19
+
Help,
20
+
}
21
+
22
+
impl FromStr for Signal {
23
+
type Err = color_eyre::Report;
24
+
25
+
fn from_str(s: &str) -> Result<Self, Self::Err> {
26
+
Ok(match s.to_lowercase().as_str() {
27
+
"suspend" => Self::Suspend,
28
+
"resume" => Self::Resume,
29
+
"quit" => Self::Quit,
30
+
_ => {
31
+
return Err(eyre!(format!(
32
+
"Attempt to construct a non-user Signal from str: {s}"
33
+
)));
34
+
}
35
+
})
36
+
}
37
+
}
+279
src/tui.rs
+279
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
+
CrosstermEvent::Mouse(mouse) => Event::Mouse(mouse),
169
+
CrosstermEvent::Resize(x, y) => Event::Resize(x, y),
170
+
CrosstermEvent::FocusLost => {Event::FocusLost },
171
+
CrosstermEvent::FocusGained => {Event::FocusGained },
172
+
CrosstermEvent::Paste(s)=> {Event::Paste(s)},
173
+
174
+
}
175
+
Some(Err(_)) => Event::Error,
176
+
None => break,
177
+
}
178
+
};
179
+
180
+
if event_tx.send(event).is_err() {
181
+
break;
182
+
}
183
+
}
184
+
185
+
cancellation_token.cancel();
186
+
}
187
+
188
+
/// Stops the TUI by canceling the event-loop.
189
+
pub fn stop(&self) {
190
+
self.cancel();
191
+
let mut counter = 0;
192
+
while !self.task.is_finished() {
193
+
std::thread::sleep(Duration::from_millis(1));
194
+
counter += 1;
195
+
if counter > 50 {
196
+
self.task.abort();
197
+
}
198
+
if counter > 100 {
199
+
error!("Failed to abort task in 100 milliseconds for some reason");
200
+
break;
201
+
}
202
+
}
203
+
}
204
+
205
+
// Enters into the TUI by enabling alternate screen and starting event-loop.
206
+
pub fn enter(&mut self) -> Result<()> {
207
+
enable_raw_mode()?;
208
+
crossterm::execute!(stdout(), EnterAlternateScreen, cursor::Hide)?;
209
+
if self.mouse_enabled {
210
+
crossterm::execute!(stdout(), EnableMouseCapture)?;
211
+
}
212
+
if self.paste_enabled {
213
+
crossterm::execute!(stdout(), EnableBracketedPaste)?;
214
+
}
215
+
self.start();
216
+
Ok(())
217
+
}
218
+
219
+
/// Exits the tui, by leaving alternate screen.
220
+
pub fn exit(&mut self) -> color_eyre::Result<()> {
221
+
self.stop();
222
+
if crossterm::terminal::is_raw_mode_enabled()? {
223
+
self.flush()?;
224
+
if self.paste_enabled {
225
+
crossterm::execute!(stdout(), DisableBracketedPaste)?;
226
+
}
227
+
if self.mouse_enabled {
228
+
crossterm::execute!(stdout(), DisableMouseCapture)?;
229
+
}
230
+
crossterm::execute!(stdout(), LeaveAlternateScreen, cursor::Show)?;
231
+
crossterm::terminal::disable_raw_mode()?;
232
+
}
233
+
Ok(())
234
+
}
235
+
236
+
/// Cancel the internal event-loop.
237
+
pub fn cancel(&self) {
238
+
self.cancellation_token.cancel();
239
+
}
240
+
241
+
/// Suspend the TUI.
242
+
pub fn suspend(&mut self) -> color_eyre::Result<()> {
243
+
self.exit()?;
244
+
#[cfg(not(windows))]
245
+
signal_hook::low_level::raise(signal_hook::consts::signal::SIGTSTP)?;
246
+
Ok(())
247
+
}
248
+
249
+
/// Resume the TUI.
250
+
pub fn resume(&mut self) -> color_eyre::Result<()> {
251
+
self.enter()?;
252
+
Ok(())
253
+
}
254
+
255
+
/// Get the next event.
256
+
pub async fn next_event(&mut self) -> Option<Event> {
257
+
self.event_rx.recv().await
258
+
}
259
+
}
260
+
261
+
impl Deref for Tui {
262
+
type Target = ratatui::Terminal<CrosstermBackend<Stdout>>;
263
+
264
+
fn deref(&self) -> &Self::Target {
265
+
&self.terminal
266
+
}
267
+
}
268
+
269
+
impl DerefMut for Tui {
270
+
fn deref_mut(&mut self) -> &mut Self::Target {
271
+
&mut self.terminal
272
+
}
273
+
}
274
+
275
+
impl Drop for Tui {
276
+
fn drop(&mut self) {
277
+
self.exit().unwrap();
278
+
}
279
+
}
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