Shows what key you pressed last
Commit 78de904080fc
tarball7 files changed+1923-0
@@ -0,0 +1,2 @@
1
+use flake2
+@@ -0,0 +1,2 @@
1
+/target2
+.direnv@@ -0,0 +1,1672 @@
1
+# This file is automatically @generated by Cargo.2
+# It is not intended for manual editing.3
+version = 44
+5
+[[package]]6
+name = "aho-corasick"7
+version = "1.1.5"8
+source = "registry+https://github.com/rust-lang/crates.io-index"9
+checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"10
+dependencies = [11
+ "memchr",12
+]13
+14
+[[package]]15
+name = "allocator-api2"16
+version = "0.2.21"17
+source = "registry+https://github.com/rust-lang/crates.io-index"18
+checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"19
+20
+[[package]]21
+name = "anyhow"22
+version = "1.0.104"23
+source = "registry+https://github.com/rust-lang/crates.io-index"24
+checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"25
+26
+[[package]]27
+name = "approx"28
+version = "0.5.1"29
+source = "registry+https://github.com/rust-lang/crates.io-index"30
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"31
+dependencies = [32
+ "num-traits",33
+]34
+35
+[[package]]36
+name = "atomic"37
+version = "0.6.1"38
+source = "registry+https://github.com/rust-lang/crates.io-index"39
+checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340"40
+dependencies = [41
+ "bytemuck",42
+]43
+44
+[[package]]45
+name = "autocfg"46
+version = "1.5.1"47
+source = "registry+https://github.com/rust-lang/crates.io-index"48
+checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"49
+50
+[[package]]51
+name = "base64"52
+version = "0.22.1"53
+source = "registry+https://github.com/rust-lang/crates.io-index"54
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"55
+56
+[[package]]57
+name = "bit-set"58
+version = "0.5.3"59
+source = "registry+https://github.com/rust-lang/crates.io-index"60
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"61
+dependencies = [62
+ "bit-vec",63
+]64
+65
+[[package]]66
+name = "bit-vec"67
+version = "0.6.3"68
+source = "registry+https://github.com/rust-lang/crates.io-index"69
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"70
+71
+[[package]]72
+name = "bitflags"73
+version = "1.3.2"74
+source = "registry+https://github.com/rust-lang/crates.io-index"75
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"76
+77
+[[package]]78
+name = "bitflags"79
+version = "2.13.2"80
+source = "registry+https://github.com/rust-lang/crates.io-index"81
+checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06"82
+83
+[[package]]84
+name = "block-buffer"85
+version = "0.10.4"86
+source = "registry+https://github.com/rust-lang/crates.io-index"87
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"88
+dependencies = [89
+ "generic-array",90
+]91
+92
+[[package]]93
+name = "bumpalo"94
+version = "3.20.3"95
+source = "registry+https://github.com/rust-lang/crates.io-index"96
+checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"97
+98
+[[package]]99
+name = "by_address"100
+version = "1.2.1"101
+source = "registry+https://github.com/rust-lang/crates.io-index"102
+checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06"103
+104
+[[package]]105
+name = "bytemuck"106
+version = "1.25.2"107
+source = "registry+https://github.com/rust-lang/crates.io-index"108
+checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797"109
+110
+[[package]]111
+name = "castaway"112
+version = "0.2.4"113
+source = "registry+https://github.com/rust-lang/crates.io-index"114
+checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"115
+dependencies = [116
+ "rustversion",117
+]118
+119
+[[package]]120
+name = "cfg-if"121
+version = "1.0.5"122
+source = "registry+https://github.com/rust-lang/crates.io-index"123
+checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"124
+125
+[[package]]126
+name = "cfg_aliases"127
+version = "0.2.2"128
+source = "registry+https://github.com/rust-lang/crates.io-index"129
+checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527"130
+131
+[[package]]132
+name = "compact_str"133
+version = "0.9.1"134
+source = "registry+https://github.com/rust-lang/crates.io-index"135
+checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab"136
+dependencies = [137
+ "castaway",138
+ "cfg-if",139
+ "itoa",140
+ "rustversion",141
+ "ryu",142
+ "static_assertions",143
+]144
+145
+[[package]]146
+name = "convert_case"147
+version = "0.10.0"148
+source = "registry+https://github.com/rust-lang/crates.io-index"149
+checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"150
+dependencies = [151
+ "unicode-segmentation",152
+]153
+154
+[[package]]155
+name = "cpufeatures"156
+version = "0.2.17"157
+source = "registry+https://github.com/rust-lang/crates.io-index"158
+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"159
+dependencies = [160
+ "libc",161
+]162
+163
+[[package]]164
+name = "critical-section"165
+version = "1.2.0"166
+source = "registry+https://github.com/rust-lang/crates.io-index"167
+checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"168
+169
+[[package]]170
+name = "crossterm"171
+version = "0.29.0"172
+source = "registry+https://github.com/rust-lang/crates.io-index"173
+checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"174
+dependencies = [175
+ "bitflags 2.13.2",176
+ "crossterm_winapi",177
+ "derive_more",178
+ "document-features",179
+ "mio",180
+ "parking_lot",181
+ "rustix",182
+ "signal-hook",183
+ "signal-hook-mio",184
+ "winapi",185
+]186
+187
+[[package]]188
+name = "crossterm_winapi"189
+version = "0.9.1"190
+source = "registry+https://github.com/rust-lang/crates.io-index"191
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"192
+dependencies = [193
+ "winapi",194
+]195
+196
+[[package]]197
+name = "crypto-common"198
+version = "0.1.7"199
+source = "registry+https://github.com/rust-lang/crates.io-index"200
+checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"201
+dependencies = [202
+ "generic-array",203
+ "typenum",204
+]205
+206
+[[package]]207
+name = "csscolorparser"208
+version = "0.6.2"209
+source = "registry+https://github.com/rust-lang/crates.io-index"210
+checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"211
+dependencies = [212
+ "lab",213
+ "phf",214
+]215
+216
+[[package]]217
+name = "darling"218
+version = "0.24.1"219
+source = "registry+https://github.com/rust-lang/crates.io-index"220
+checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec"221
+dependencies = [222
+ "darling_core",223
+ "darling_macro",224
+]225
+226
+[[package]]227
+name = "darling_core"228
+version = "0.24.1"229
+source = "registry+https://github.com/rust-lang/crates.io-index"230
+checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff"231
+dependencies = [232
+ "ident_case",233
+ "proc-macro2",234
+ "quote",235
+ "strsim",236
+ "syn 3.0.6",237
+]238
+239
+[[package]]240
+name = "darling_macro"241
+version = "0.24.1"242
+source = "registry+https://github.com/rust-lang/crates.io-index"243
+checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785"244
+dependencies = [245
+ "darling_core",246
+ "quote",247
+ "syn 3.0.6",248
+]249
+250
+[[package]]251
+name = "deltae"252
+version = "0.3.2"253
+source = "registry+https://github.com/rust-lang/crates.io-index"254
+checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"255
+256
+[[package]]257
+name = "deranged"258
+version = "0.5.8"259
+source = "registry+https://github.com/rust-lang/crates.io-index"260
+checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"261
+262
+[[package]]263
+name = "derive_more"264
+version = "2.1.1"265
+source = "registry+https://github.com/rust-lang/crates.io-index"266
+checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"267
+dependencies = [268
+ "derive_more-impl",269
+]270
+271
+[[package]]272
+name = "derive_more-impl"273
+version = "2.1.1"274
+source = "registry+https://github.com/rust-lang/crates.io-index"275
+checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"276
+dependencies = [277
+ "convert_case",278
+ "proc-macro2",279
+ "quote",280
+ "rustc_version",281
+ "syn 2.0.119",282
+]283
+284
+[[package]]285
+name = "digest"286
+version = "0.10.7"287
+source = "registry+https://github.com/rust-lang/crates.io-index"288
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"289
+dependencies = [290
+ "block-buffer",291
+ "crypto-common",292
+]293
+294
+[[package]]295
+name = "document-features"296
+version = "0.2.12"297
+source = "registry+https://github.com/rust-lang/crates.io-index"298
+checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"299
+dependencies = [300
+ "litrs",301
+]302
+303
+[[package]]304
+name = "either"305
+version = "1.18.0"306
+source = "registry+https://github.com/rust-lang/crates.io-index"307
+checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"308
+309
+[[package]]310
+name = "equivalent"311
+version = "1.0.2"312
+source = "registry+https://github.com/rust-lang/crates.io-index"313
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"314
+315
+[[package]]316
+name = "errno"317
+version = "0.3.14"318
+source = "registry+https://github.com/rust-lang/crates.io-index"319
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"320
+dependencies = [321
+ "libc",322
+ "windows-sys",323
+]324
+325
+[[package]]326
+name = "euclid"327
+version = "0.22.14"328
+source = "registry+https://github.com/rust-lang/crates.io-index"329
+checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06"330
+dependencies = [331
+ "num-traits",332
+]333
+334
+[[package]]335
+name = "fancy-regex"336
+version = "0.11.0"337
+source = "registry+https://github.com/rust-lang/crates.io-index"338
+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"339
+dependencies = [340
+ "bit-set",341
+ "regex",342
+]343
+344
+[[package]]345
+name = "filedescriptor"346
+version = "0.8.3"347
+source = "registry+https://github.com/rust-lang/crates.io-index"348
+checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"349
+dependencies = [350
+ "libc",351
+ "thiserror 1.0.69",352
+ "winapi",353
+]354
+355
+[[package]]356
+name = "finl_unicode"357
+version = "1.5.0"358
+source = "registry+https://github.com/rust-lang/crates.io-index"359
+checksum = "80bb028c8b4148c9ee0cca68fcd9add6044e81d3619f48577ddf13a263d047a2"360
+361
+[[package]]362
+name = "fixedbitset"363
+version = "0.4.2"364
+source = "registry+https://github.com/rust-lang/crates.io-index"365
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"366
+367
+[[package]]368
+name = "fnv"369
+version = "1.0.7"370
+source = "registry+https://github.com/rust-lang/crates.io-index"371
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"372
+373
+[[package]]374
+name = "foldhash"375
+version = "0.2.0"376
+source = "registry+https://github.com/rust-lang/crates.io-index"377
+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"378
+379
+[[package]]380
+name = "futures-core"381
+version = "0.3.34"382
+source = "registry+https://github.com/rust-lang/crates.io-index"383
+checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"384
+385
+[[package]]386
+name = "futures-task"387
+version = "0.3.34"388
+source = "registry+https://github.com/rust-lang/crates.io-index"389
+checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"390
+391
+[[package]]392
+name = "futures-util"393
+version = "0.3.34"394
+source = "registry+https://github.com/rust-lang/crates.io-index"395
+checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"396
+dependencies = [397
+ "futures-core",398
+ "futures-task",399
+ "pin-project-lite",400
+ "slab",401
+]402
+403
+[[package]]404
+name = "generic-array"405
+version = "0.14.7"406
+source = "registry+https://github.com/rust-lang/crates.io-index"407
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"408
+dependencies = [409
+ "typenum",410
+ "version_check",411
+]412
+413
+[[package]]414
+name = "getrandom"415
+version = "0.3.4"416
+source = "registry+https://github.com/rust-lang/crates.io-index"417
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"418
+dependencies = [419
+ "cfg-if",420
+ "libc",421
+ "r-efi 5.3.0",422
+ "wasip2",423
+]424
+425
+[[package]]426
+name = "getrandom"427
+version = "0.4.3"428
+source = "registry+https://github.com/rust-lang/crates.io-index"429
+checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"430
+dependencies = [431
+ "cfg-if",432
+ "libc",433
+ "r-efi 6.0.0",434
+]435
+436
+[[package]]437
+name = "hashbrown"438
+version = "0.16.1"439
+source = "registry+https://github.com/rust-lang/crates.io-index"440
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"441
+dependencies = [442
+ "allocator-api2",443
+ "equivalent",444
+ "foldhash",445
+]446
+447
+[[package]]448
+name = "hashbrown"449
+version = "0.17.1"450
+source = "registry+https://github.com/rust-lang/crates.io-index"451
+checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"452
+dependencies = [453
+ "allocator-api2",454
+ "equivalent",455
+ "foldhash",456
+]457
+458
+[[package]]459
+name = "heck"460
+version = "0.5.0"461
+source = "registry+https://github.com/rust-lang/crates.io-index"462
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"463
+464
+[[package]]465
+name = "hex"466
+version = "0.4.3"467
+source = "registry+https://github.com/rust-lang/crates.io-index"468
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"469
+470
+[[package]]471
+name = "ident_case"472
+version = "1.0.1"473
+source = "registry+https://github.com/rust-lang/crates.io-index"474
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"475
+476
+[[package]]477
+name = "indoc"478
+version = "2.0.7"479
+source = "registry+https://github.com/rust-lang/crates.io-index"480
+checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"481
+dependencies = [482
+ "rustversion",483
+]484
+485
+[[package]]486
+name = "instability"487
+version = "0.3.14"488
+source = "registry+https://github.com/rust-lang/crates.io-index"489
+checksum = "4c3b5acc1e2fd9375041a388da33d1eb8aed5f7a8c0dd3543e3ea2805adfbe20"490
+dependencies = [491
+ "darling",492
+ "indoc",493
+ "proc-macro2",494
+ "quote",495
+ "syn 3.0.6",496
+]497
+498
+[[package]]499
+name = "itertools"500
+version = "0.14.0"501
+source = "registry+https://github.com/rust-lang/crates.io-index"502
+checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"503
+dependencies = [504
+ "either",505
+]506
+507
+[[package]]508
+name = "itoa"509
+version = "1.0.18"510
+source = "registry+https://github.com/rust-lang/crates.io-index"511
+checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"512
+513
+[[package]]514
+name = "js-sys"515
+version = "0.3.105"516
+source = "registry+https://github.com/rust-lang/crates.io-index"517
+checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e"518
+dependencies = [519
+ "cfg-if",520
+ "futures-util",521
+ "wasm-bindgen",522
+]523
+524
+[[package]]525
+name = "kasuari"526
+version = "0.4.12"527
+source = "registry+https://github.com/rust-lang/crates.io-index"528
+checksum = "bde5057d6143cc94e861d90f591b9303d6716c6b9602309150bd068853c10899"529
+dependencies = [530
+ "hashbrown 0.16.1",531
+ "portable-atomic",532
+ "thiserror 2.0.20",533
+]534
+535
+[[package]]536
+name = "lab"537
+version = "0.11.0"538
+source = "registry+https://github.com/rust-lang/crates.io-index"539
+checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f"540
+541
+[[package]]542
+name = "lazy_static"543
+version = "1.5.0"544
+source = "registry+https://github.com/rust-lang/crates.io-index"545
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"546
+547
+[[package]]548
+name = "libc"549
+version = "0.2.189"550
+source = "registry+https://github.com/rust-lang/crates.io-index"551
+checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"552
+553
+[[package]]554
+name = "libm"555
+version = "0.2.16"556
+source = "registry+https://github.com/rust-lang/crates.io-index"557
+checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"558
+559
+[[package]]560
+name = "line-clipping"561
+version = "0.3.8"562
+source = "registry+https://github.com/rust-lang/crates.io-index"563
+checksum = "e752191d037c44ad111a8caa762921926658402f01cc1253f7bef2020ece4f5e"564
+dependencies = [565
+ "bitflags 2.13.2",566
+]567
+568
+[[package]]569
+name = "linux-raw-sys"570
+version = "0.12.1"571
+source = "registry+https://github.com/rust-lang/crates.io-index"572
+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"573
+574
+[[package]]575
+name = "litrs"576
+version = "1.0.0"577
+source = "registry+https://github.com/rust-lang/crates.io-index"578
+checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"579
+580
+[[package]]581
+name = "lock_api"582
+version = "0.4.14"583
+source = "registry+https://github.com/rust-lang/crates.io-index"584
+checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"585
+dependencies = [586
+ "scopeguard",587
+]588
+589
+[[package]]590
+name = "log"591
+version = "0.4.34"592
+source = "registry+https://github.com/rust-lang/crates.io-index"593
+checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"594
+595
+[[package]]596
+name = "lru"597
+version = "0.18.5"598
+source = "registry+https://github.com/rust-lang/crates.io-index"599
+checksum = "ef9ac18847474e638e3702b76c65d4eb93428471a74778ef0f1be711717f89b5"600
+dependencies = [601
+ "hashbrown 0.17.1",602
+]603
+604
+[[package]]605
+name = "mac_address"606
+version = "1.1.8"607
+source = "registry+https://github.com/rust-lang/crates.io-index"608
+checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303"609
+dependencies = [610
+ "nix",611
+ "winapi",612
+]613
+614
+[[package]]615
+name = "memchr"616
+version = "2.8.3"617
+source = "registry+https://github.com/rust-lang/crates.io-index"618
+checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"619
+620
+[[package]]621
+name = "memmem"622
+version = "0.1.1"623
+source = "registry+https://github.com/rust-lang/crates.io-index"624
+checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"625
+626
+[[package]]627
+name = "memoffset"628
+version = "0.9.1"629
+source = "registry+https://github.com/rust-lang/crates.io-index"630
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"631
+dependencies = [632
+ "autocfg",633
+]634
+635
+[[package]]636
+name = "minimal-lexical"637
+version = "0.2.1"638
+source = "registry+https://github.com/rust-lang/crates.io-index"639
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"640
+641
+[[package]]642
+name = "mio"643
+version = "1.2.3"644
+source = "registry+https://github.com/rust-lang/crates.io-index"645
+checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8"646
+dependencies = [647
+ "libc",648
+ "log",649
+ "wasi",650
+ "windows-sys",651
+]652
+653
+[[package]]654
+name = "nix"655
+version = "0.29.0"656
+source = "registry+https://github.com/rust-lang/crates.io-index"657
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"658
+dependencies = [659
+ "bitflags 2.13.2",660
+ "cfg-if",661
+ "cfg_aliases",662
+ "libc",663
+ "memoffset",664
+]665
+666
+[[package]]667
+name = "nom"668
+version = "7.1.3"669
+source = "registry+https://github.com/rust-lang/crates.io-index"670
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"671
+dependencies = [672
+ "memchr",673
+ "minimal-lexical",674
+]675
+676
+[[package]]677
+name = "num-conv"678
+version = "0.2.2"679
+source = "registry+https://github.com/rust-lang/crates.io-index"680
+checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"681
+682
+[[package]]683
+name = "num-derive"684
+version = "0.4.2"685
+source = "registry+https://github.com/rust-lang/crates.io-index"686
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"687
+dependencies = [688
+ "proc-macro2",689
+ "quote",690
+ "syn 2.0.119",691
+]692
+693
+[[package]]694
+name = "num-traits"695
+version = "0.2.19"696
+source = "registry+https://github.com/rust-lang/crates.io-index"697
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"698
+dependencies = [699
+ "autocfg",700
+]701
+702
+[[package]]703
+name = "num_threads"704
+version = "0.1.7"705
+source = "registry+https://github.com/rust-lang/crates.io-index"706
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"707
+dependencies = [708
+ "libc",709
+]710
+711
+[[package]]712
+name = "once_cell"713
+version = "1.21.4"714
+source = "registry+https://github.com/rust-lang/crates.io-index"715
+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"716
+717
+[[package]]718
+name = "ordered-float"719
+version = "4.6.0"720
+source = "registry+https://github.com/rust-lang/crates.io-index"721
+checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"722
+dependencies = [723
+ "num-traits",724
+]725
+726
+[[package]]727
+name = "palette"728
+version = "0.7.7"729
+source = "registry+https://github.com/rust-lang/crates.io-index"730
+checksum = "ddeed8580d347d2abf3dcf06a5f0b3dc020258338526b277847cd4248a70fc64"731
+dependencies = [732
+ "approx",733
+ "libm",734
+ "palette_derive",735
+ "palette_math",736
+]737
+738
+[[package]]739
+name = "palette_derive"740
+version = "0.7.7"741
+source = "registry+https://github.com/rust-lang/crates.io-index"742
+checksum = "88537020289b719d81be994ccf1bbf4990f477e2f69ee52fe3e45f43a02e56be"743
+dependencies = [744
+ "by_address",745
+ "proc-macro2",746
+ "quote",747
+ "syn 2.0.119",748
+]749
+750
+[[package]]751
+name = "palette_math"752
+version = "0.7.7"753
+source = "registry+https://github.com/rust-lang/crates.io-index"754
+checksum = "6e6eb142958d64335fb0e345c5b9ead2ecd6fc438c307e9d7d3c4fd428dbaf12"755
+dependencies = [756
+ "libm",757
+]758
+759
+[[package]]760
+name = "parking_lot"761
+version = "0.12.5"762
+source = "registry+https://github.com/rust-lang/crates.io-index"763
+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"764
+dependencies = [765
+ "lock_api",766
+ "parking_lot_core",767
+]768
+769
+[[package]]770
+name = "parking_lot_core"771
+version = "0.9.12"772
+source = "registry+https://github.com/rust-lang/crates.io-index"773
+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"774
+dependencies = [775
+ "cfg-if",776
+ "libc",777
+ "redox_syscall",778
+ "smallvec",779
+ "windows-link",780
+]781
+782
+[[package]]783
+name = "pest"784
+version = "2.9.2"785
+source = "registry+https://github.com/rust-lang/crates.io-index"786
+checksum = "45d3aca230fad2e6f6317ca0a72724338c4960cb97168a85cdee66df4a9a21a8"787
+dependencies = [788
+ "memchr",789
+ "ucd-trie",790
+]791
+792
+[[package]]793
+name = "pest_derive"794
+version = "2.9.2"795
+source = "registry+https://github.com/rust-lang/crates.io-index"796
+checksum = "284b60557f2c4a2e72ad3f2d34d42685a2fa4a6a61d0d2a10c0ae2a5e916c2cf"797
+dependencies = [798
+ "pest",799
+ "pest_generator",800
+]801
+802
+[[package]]803
+name = "pest_generator"804
+version = "2.9.2"805
+source = "registry+https://github.com/rust-lang/crates.io-index"806
+checksum = "1d9d1f08a115309ee99268cf85e5228e0e56aa9caf8841ec12866b6be07c3109"807
+dependencies = [808
+ "pest",809
+ "pest_meta",810
+ "proc-macro2",811
+ "quote",812
+ "syn 2.0.119",813
+]814
+815
+[[package]]816
+name = "pest_meta"817
+version = "2.9.2"818
+source = "registry+https://github.com/rust-lang/crates.io-index"819
+checksum = "ed93ba1a9ffcca32130a5188701c81c0c49cf00d4b7c5007d5148951d743adcb"820
+dependencies = [821
+ "pest",822
+]823
+824
+[[package]]825
+name = "phf"826
+version = "0.11.3"827
+source = "registry+https://github.com/rust-lang/crates.io-index"828
+checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"829
+dependencies = [830
+ "phf_macros",831
+ "phf_shared",832
+]833
+834
+[[package]]835
+name = "phf_codegen"836
+version = "0.11.3"837
+source = "registry+https://github.com/rust-lang/crates.io-index"838
+checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"839
+dependencies = [840
+ "phf_generator",841
+ "phf_shared",842
+]843
+844
+[[package]]845
+name = "phf_generator"846
+version = "0.11.3"847
+source = "registry+https://github.com/rust-lang/crates.io-index"848
+checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"849
+dependencies = [850
+ "phf_shared",851
+ "rand",852
+]853
+854
+[[package]]855
+name = "phf_macros"856
+version = "0.11.3"857
+source = "registry+https://github.com/rust-lang/crates.io-index"858
+checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"859
+dependencies = [860
+ "phf_generator",861
+ "phf_shared",862
+ "proc-macro2",863
+ "quote",864
+ "syn 2.0.119",865
+]866
+867
+[[package]]868
+name = "phf_shared"869
+version = "0.11.3"870
+source = "registry+https://github.com/rust-lang/crates.io-index"871
+checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"872
+dependencies = [873
+ "siphasher",874
+]875
+876
+[[package]]877
+name = "pin-project-lite"878
+version = "0.2.17"879
+source = "registry+https://github.com/rust-lang/crates.io-index"880
+checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"881
+882
+[[package]]883
+name = "portable-atomic"884
+version = "1.15.0"885
+source = "registry+https://github.com/rust-lang/crates.io-index"886
+checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"887
+888
+[[package]]889
+name = "powerfmt"890
+version = "0.2.0"891
+source = "registry+https://github.com/rust-lang/crates.io-index"892
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"893
+894
+[[package]]895
+name = "proc-macro2"896
+version = "1.0.107"897
+source = "registry+https://github.com/rust-lang/crates.io-index"898
+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"899
+dependencies = [900
+ "unicode-ident",901
+]902
+903
+[[package]]904
+name = "quote"905
+version = "1.0.47"906
+source = "registry+https://github.com/rust-lang/crates.io-index"907
+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"908
+dependencies = [909
+ "proc-macro2",910
+]911
+912
+[[package]]913
+name = "r-efi"914
+version = "5.3.0"915
+source = "registry+https://github.com/rust-lang/crates.io-index"916
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"917
+918
+[[package]]919
+name = "r-efi"920
+version = "6.0.0"921
+source = "registry+https://github.com/rust-lang/crates.io-index"922
+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"923
+924
+[[package]]925
+name = "rand"926
+version = "0.8.8"927
+source = "registry+https://github.com/rust-lang/crates.io-index"928
+checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c"929
+dependencies = [930
+ "rand_core",931
+]932
+933
+[[package]]934
+name = "rand_core"935
+version = "0.6.4"936
+source = "registry+https://github.com/rust-lang/crates.io-index"937
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"938
+939
+[[package]]940
+name = "ratatui"941
+version = "0.30.2"942
+source = "registry+https://github.com/rust-lang/crates.io-index"943
+checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d"944
+dependencies = [945
+ "instability",946
+ "ratatui-core",947
+ "ratatui-crossterm",948
+ "ratatui-macros",949
+ "ratatui-termina",950
+ "ratatui-termwiz",951
+ "ratatui-widgets",952
+ "serde",953
+]954
+955
+[[package]]956
+name = "ratatui-core"957
+version = "0.1.2"958
+source = "registry+https://github.com/rust-lang/crates.io-index"959
+checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c"960
+dependencies = [961
+ "bitflags 2.13.2",962
+ "compact_str",963
+ "critical-section",964
+ "hashbrown 0.17.1",965
+ "itertools",966
+ "kasuari",967
+ "lru",968
+ "palette",969
+ "serde",970
+ "strum",971
+ "thiserror 2.0.20",972
+ "unicode-segmentation",973
+ "unicode-truncate",974
+ "unicode-width",975
+]976
+977
+[[package]]978
+name = "ratatui-crossterm"979
+version = "0.1.2"980
+source = "registry+https://github.com/rust-lang/crates.io-index"981
+checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0"982
+dependencies = [983
+ "cfg-if",984
+ "crossterm",985
+ "instability",986
+ "ratatui-core",987
+]988
+989
+[[package]]990
+name = "ratatui-macros"991
+version = "0.7.2"992
+source = "registry+https://github.com/rust-lang/crates.io-index"993
+checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814"994
+dependencies = [995
+ "ratatui-core",996
+ "ratatui-widgets",997
+]998
+999
+[[package]]1000
+name = "ratatui-termina"1001
+version = "0.1.0"1002
+source = "registry+https://github.com/rust-lang/crates.io-index"1003
+checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2"1004
+dependencies = [1005
+ "instability",1006
+ "ratatui-core",1007
+ "termina",1008
+]1009
+1010
+[[package]]1011
+name = "ratatui-termwiz"1012
+version = "0.1.2"1013
+source = "registry+https://github.com/rust-lang/crates.io-index"1014
+checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977"1015
+dependencies = [1016
+ "ratatui-core",1017
+ "termwiz",1018
+]1019
+1020
+[[package]]1021
+name = "ratatui-widgets"1022
+version = "0.3.2"1023
+source = "registry+https://github.com/rust-lang/crates.io-index"1024
+checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1"1025
+dependencies = [1026
+ "bitflags 2.13.2",1027
+ "hashbrown 0.17.1",1028
+ "indoc",1029
+ "instability",1030
+ "itertools",1031
+ "line-clipping",1032
+ "ratatui-core",1033
+ "serde",1034
+ "strum",1035
+ "time",1036
+ "unicode-segmentation",1037
+ "unicode-width",1038
+]1039
+1040
+[[package]]1041
+name = "redox_syscall"1042
+version = "0.5.18"1043
+source = "registry+https://github.com/rust-lang/crates.io-index"1044
+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"1045
+dependencies = [1046
+ "bitflags 2.13.2",1047
+]1048
+1049
+[[package]]1050
+name = "regex"1051
+version = "1.13.1"1052
+source = "registry+https://github.com/rust-lang/crates.io-index"1053
+checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"1054
+dependencies = [1055
+ "aho-corasick",1056
+ "memchr",1057
+ "regex-automata",1058
+ "regex-syntax",1059
+]1060
+1061
+[[package]]1062
+name = "regex-automata"1063
+version = "0.4.18"1064
+source = "registry+https://github.com/rust-lang/crates.io-index"1065
+checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"1066
+dependencies = [1067
+ "aho-corasick",1068
+ "memchr",1069
+ "regex-syntax",1070
+]1071
+1072
+[[package]]1073
+name = "regex-syntax"1074
+version = "0.8.11"1075
+source = "registry+https://github.com/rust-lang/crates.io-index"1076
+checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"1077
+1078
+[[package]]1079
+name = "rustc_version"1080
+version = "0.4.1"1081
+source = "registry+https://github.com/rust-lang/crates.io-index"1082
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"1083
+dependencies = [1084
+ "semver",1085
+]1086
+1087
+[[package]]1088
+name = "rustix"1089
+version = "1.1.5"1090
+source = "registry+https://github.com/rust-lang/crates.io-index"1091
+checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d"1092
+dependencies = [1093
+ "bitflags 2.13.2",1094
+ "errno",1095
+ "libc",1096
+ "linux-raw-sys",1097
+ "windows-sys",1098
+]1099
+1100
+[[package]]1101
+name = "rustversion"1102
+version = "1.0.23"1103
+source = "registry+https://github.com/rust-lang/crates.io-index"1104
+checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"1105
+1106
+[[package]]1107
+name = "ryu"1108
+version = "1.0.23"1109
+source = "registry+https://github.com/rust-lang/crates.io-index"1110
+checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"1111
+1112
+[[package]]1113
+name = "scopeguard"1114
+version = "1.2.0"1115
+source = "registry+https://github.com/rust-lang/crates.io-index"1116
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"1117
+1118
+[[package]]1119
+name = "semver"1120
+version = "1.0.28"1121
+source = "registry+https://github.com/rust-lang/crates.io-index"1122
+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"1123
+1124
+[[package]]1125
+name = "serde"1126
+version = "1.0.229"1127
+source = "registry+https://github.com/rust-lang/crates.io-index"1128
+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"1129
+dependencies = [1130
+ "serde_core",1131
+ "serde_derive",1132
+]1133
+1134
+[[package]]1135
+name = "serde_core"1136
+version = "1.0.229"1137
+source = "registry+https://github.com/rust-lang/crates.io-index"1138
+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"1139
+dependencies = [1140
+ "serde_derive",1141
+]1142
+1143
+[[package]]1144
+name = "serde_derive"1145
+version = "1.0.229"1146
+source = "registry+https://github.com/rust-lang/crates.io-index"1147
+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"1148
+dependencies = [1149
+ "proc-macro2",1150
+ "quote",1151
+ "syn 3.0.6",1152
+]1153
+1154
+[[package]]1155
+name = "sha2"1156
+version = "0.10.9"1157
+source = "registry+https://github.com/rust-lang/crates.io-index"1158
+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"1159
+dependencies = [1160
+ "cfg-if",1161
+ "cpufeatures",1162
+ "digest",1163
+]1164
+1165
+[[package]]1166
+name = "show_key"1167
+version = "0.1.0"1168
+dependencies = [1169
+ "crossterm",1170
+ "ratatui",1171
+]1172
+1173
+[[package]]1174
+name = "signal-hook"1175
+version = "0.3.18"1176
+source = "registry+https://github.com/rust-lang/crates.io-index"1177
+checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"1178
+dependencies = [1179
+ "libc",1180
+ "signal-hook-registry",1181
+]1182
+1183
+[[package]]1184
+name = "signal-hook-mio"1185
+version = "0.2.5"1186
+source = "registry+https://github.com/rust-lang/crates.io-index"1187
+checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"1188
+dependencies = [1189
+ "libc",1190
+ "mio",1191
+ "signal-hook",1192
+]1193
+1194
+[[package]]1195
+name = "signal-hook-registry"1196
+version = "1.4.8"1197
+source = "registry+https://github.com/rust-lang/crates.io-index"1198
+checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"1199
+dependencies = [1200
+ "errno",1201
+ "libc",1202
+]1203
+1204
+[[package]]1205
+name = "siphasher"1206
+version = "1.0.3"1207
+source = "registry+https://github.com/rust-lang/crates.io-index"1208
+checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649"1209
+1210
+[[package]]1211
+name = "slab"1212
+version = "0.4.12"1213
+source = "registry+https://github.com/rust-lang/crates.io-index"1214
+checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"1215
+1216
+[[package]]1217
+name = "smallvec"1218
+version = "1.16.1"1219
+source = "registry+https://github.com/rust-lang/crates.io-index"1220
+checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891"1221
+1222
+[[package]]1223
+name = "static_assertions"1224
+version = "1.1.0"1225
+source = "registry+https://github.com/rust-lang/crates.io-index"1226
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"1227
+1228
+[[package]]1229
+name = "strsim"1230
+version = "0.11.1"1231
+source = "registry+https://github.com/rust-lang/crates.io-index"1232
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"1233
+1234
+[[package]]1235
+name = "strum"1236
+version = "0.28.0"1237
+source = "registry+https://github.com/rust-lang/crates.io-index"1238
+checksum = "9628de9b8791db39ceda2b119bbe13134770b56c138ec1d3af810d045c04f9bd"1239
+dependencies = [1240
+ "strum_macros",1241
+]1242
+1243
+[[package]]1244
+name = "strum_macros"1245
+version = "0.28.0"1246
+source = "registry+https://github.com/rust-lang/crates.io-index"1247
+checksum = "ab85eea0270ee17587ed4156089e10b9e6880ee688791d45a905f5b1ca36f664"1248
+dependencies = [1249
+ "heck",1250
+ "proc-macro2",1251
+ "quote",1252
+ "syn 2.0.119",1253
+]1254
+1255
+[[package]]1256
+name = "syn"1257
+version = "1.0.109"1258
+source = "registry+https://github.com/rust-lang/crates.io-index"1259
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"1260
+dependencies = [1261
+ "proc-macro2",1262
+ "quote",1263
+ "unicode-ident",1264
+]1265
+1266
+[[package]]1267
+name = "syn"1268
+version = "2.0.119"1269
+source = "registry+https://github.com/rust-lang/crates.io-index"1270
+checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"1271
+dependencies = [1272
+ "proc-macro2",1273
+ "quote",1274
+ "unicode-ident",1275
+]1276
+1277
+[[package]]1278
+name = "syn"1279
+version = "3.0.6"1280
+source = "registry+https://github.com/rust-lang/crates.io-index"1281
+checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"1282
+dependencies = [1283
+ "proc-macro2",1284
+ "quote",1285
+ "unicode-ident",1286
+]1287
+1288
+[[package]]1289
+name = "termina"1290
+version = "0.3.3"1291
+source = "registry+https://github.com/rust-lang/crates.io-index"1292
+checksum = "9048a889effe34a5cddee0af7f53285198b16dca3be510858d38dfdb3e62a04e"1293
+dependencies = [1294
+ "bitflags 2.13.2",1295
+ "parking_lot",1296
+ "rustix",1297
+ "signal-hook",1298
+ "windows-sys",1299
+]1300
+1301
+[[package]]1302
+name = "terminfo"1303
+version = "0.9.0"1304
+source = "registry+https://github.com/rust-lang/crates.io-index"1305
+checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"1306
+dependencies = [1307
+ "fnv",1308
+ "nom",1309
+ "phf",1310
+ "phf_codegen",1311
+]1312
+1313
+[[package]]1314
+name = "termios"1315
+version = "0.3.3"1316
+source = "registry+https://github.com/rust-lang/crates.io-index"1317
+checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"1318
+dependencies = [1319
+ "libc",1320
+]1321
+1322
+[[package]]1323
+name = "termwiz"1324
+version = "0.23.3"1325
+source = "registry+https://github.com/rust-lang/crates.io-index"1326
+checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"1327
+dependencies = [1328
+ "anyhow",1329
+ "base64",1330
+ "bitflags 2.13.2",1331
+ "fancy-regex",1332
+ "filedescriptor",1333
+ "finl_unicode",1334
+ "fixedbitset",1335
+ "hex",1336
+ "lazy_static",1337
+ "libc",1338
+ "log",1339
+ "memmem",1340
+ "nix",1341
+ "num-derive",1342
+ "num-traits",1343
+ "ordered-float",1344
+ "pest",1345
+ "pest_derive",1346
+ "phf",1347
+ "sha2",1348
+ "signal-hook",1349
+ "siphasher",1350
+ "terminfo",1351
+ "termios",1352
+ "thiserror 1.0.69",1353
+ "ucd-trie",1354
+ "unicode-segmentation",1355
+ "vtparse",1356
+ "wezterm-bidi",1357
+ "wezterm-blob-leases",1358
+ "wezterm-color-types",1359
+ "wezterm-dynamic",1360
+ "wezterm-input-types",1361
+ "winapi",1362
+]1363
+1364
+[[package]]1365
+name = "thiserror"1366
+version = "1.0.69"1367
+source = "registry+https://github.com/rust-lang/crates.io-index"1368
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"1369
+dependencies = [1370
+ "thiserror-impl 1.0.69",1371
+]1372
+1373
+[[package]]1374
+name = "thiserror"1375
+version = "2.0.20"1376
+source = "registry+https://github.com/rust-lang/crates.io-index"1377
+checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"1378
+dependencies = [1379
+ "thiserror-impl 2.0.20",1380
+]1381
+1382
+[[package]]1383
+name = "thiserror-impl"1384
+version = "1.0.69"1385
+source = "registry+https://github.com/rust-lang/crates.io-index"1386
+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"1387
+dependencies = [1388
+ "proc-macro2",1389
+ "quote",1390
+ "syn 2.0.119",1391
+]1392
+1393
+[[package]]1394
+name = "thiserror-impl"1395
+version = "2.0.20"1396
+source = "registry+https://github.com/rust-lang/crates.io-index"1397
+checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"1398
+dependencies = [1399
+ "proc-macro2",1400
+ "quote",1401
+ "syn 3.0.6",1402
+]1403
+1404
+[[package]]1405
+name = "time"1406
+version = "0.3.55"1407
+source = "registry+https://github.com/rust-lang/crates.io-index"1408
+checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134"1409
+dependencies = [1410
+ "deranged",1411
+ "libc",1412
+ "num-conv",1413
+ "num_threads",1414
+ "powerfmt",1415
+ "serde_core",1416
+ "time-core",1417
+]1418
+1419
+[[package]]1420
+name = "time-core"1421
+version = "0.1.9"1422
+source = "registry+https://github.com/rust-lang/crates.io-index"1423
+checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109"1424
+1425
+[[package]]1426
+name = "typenum"1427
+version = "1.20.1"1428
+source = "registry+https://github.com/rust-lang/crates.io-index"1429
+checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"1430
+1431
+[[package]]1432
+name = "ucd-trie"1433
+version = "0.1.7"1434
+source = "registry+https://github.com/rust-lang/crates.io-index"1435
+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"1436
+1437
+[[package]]1438
+name = "unicode-ident"1439
+version = "1.0.26"1440
+source = "registry+https://github.com/rust-lang/crates.io-index"1441
+checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"1442
+1443
+[[package]]1444
+name = "unicode-segmentation"1445
+version = "1.13.3"1446
+source = "registry+https://github.com/rust-lang/crates.io-index"1447
+checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"1448
+1449
+[[package]]1450
+name = "unicode-truncate"1451
+version = "2.0.1"1452
+source = "registry+https://github.com/rust-lang/crates.io-index"1453
+checksum = "16b380a1238663e5f8a691f9039c73e1cdae598a30e9855f541d29b08b53e9a5"1454
+dependencies = [1455
+ "itertools",1456
+ "unicode-segmentation",1457
+ "unicode-width",1458
+]1459
+1460
+[[package]]1461
+name = "unicode-width"1462
+version = "0.2.2"1463
+source = "registry+https://github.com/rust-lang/crates.io-index"1464
+checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"1465
+1466
+[[package]]1467
+name = "utf8parse"1468
+version = "0.2.2"1469
+source = "registry+https://github.com/rust-lang/crates.io-index"1470
+checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"1471
+1472
+[[package]]1473
+name = "uuid"1474
+version = "1.26.1"1475
+source = "registry+https://github.com/rust-lang/crates.io-index"1476
+checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce"1477
+dependencies = [1478
+ "atomic",1479
+ "getrandom 0.4.3",1480
+ "js-sys",1481
+ "wasm-bindgen",1482
+]1483
+1484
+[[package]]1485
+name = "version_check"1486
+version = "0.9.5"1487
+source = "registry+https://github.com/rust-lang/crates.io-index"1488
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"1489
+1490
+[[package]]1491
+name = "vtparse"1492
+version = "0.6.2"1493
+source = "registry+https://github.com/rust-lang/crates.io-index"1494
+checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0"1495
+dependencies = [1496
+ "utf8parse",1497
+]1498
+1499
+[[package]]1500
+name = "wasi"1501
+version = "0.11.1+wasi-snapshot-preview1"1502
+source = "registry+https://github.com/rust-lang/crates.io-index"1503
+checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"1504
+1505
+[[package]]1506
+name = "wasip2"1507
+version = "1.0.4+wasi-0.2.12"1508
+source = "registry+https://github.com/rust-lang/crates.io-index"1509
+checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"1510
+dependencies = [1511
+ "wit-bindgen",1512
+]1513
+1514
+[[package]]1515
+name = "wasm-bindgen"1516
+version = "0.2.128"1517
+source = "registry+https://github.com/rust-lang/crates.io-index"1518
+checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf"1519
+dependencies = [1520
+ "cfg-if",1521
+ "once_cell",1522
+ "rustversion",1523
+ "wasm-bindgen-macro",1524
+ "wasm-bindgen-shared",1525
+]1526
+1527
+[[package]]1528
+name = "wasm-bindgen-macro"1529
+version = "0.2.128"1530
+source = "registry+https://github.com/rust-lang/crates.io-index"1531
+checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed"1532
+dependencies = [1533
+ "quote",1534
+ "wasm-bindgen-macro-support",1535
+]1536
+1537
+[[package]]1538
+name = "wasm-bindgen-macro-support"1539
+version = "0.2.128"1540
+source = "registry+https://github.com/rust-lang/crates.io-index"1541
+checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a"1542
+dependencies = [1543
+ "bumpalo",1544
+ "proc-macro2",1545
+ "quote",1546
+ "syn 3.0.6",1547
+ "wasm-bindgen-shared",1548
+]1549
+1550
+[[package]]1551
+name = "wasm-bindgen-shared"1552
+version = "0.2.128"1553
+source = "registry+https://github.com/rust-lang/crates.io-index"1554
+checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e"1555
+dependencies = [1556
+ "unicode-ident",1557
+]1558
+1559
+[[package]]1560
+name = "wezterm-bidi"1561
+version = "0.2.3"1562
+source = "registry+https://github.com/rust-lang/crates.io-index"1563
+checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec"1564
+dependencies = [1565
+ "log",1566
+ "wezterm-dynamic",1567
+]1568
+1569
+[[package]]1570
+name = "wezterm-blob-leases"1571
+version = "0.1.1"1572
+source = "registry+https://github.com/rust-lang/crates.io-index"1573
+checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7"1574
+dependencies = [1575
+ "getrandom 0.3.4",1576
+ "mac_address",1577
+ "sha2",1578
+ "thiserror 1.0.69",1579
+ "uuid",1580
+]1581
+1582
+[[package]]1583
+name = "wezterm-color-types"1584
+version = "0.3.0"1585
+source = "registry+https://github.com/rust-lang/crates.io-index"1586
+checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296"1587
+dependencies = [1588
+ "csscolorparser",1589
+ "deltae",1590
+ "lazy_static",1591
+ "wezterm-dynamic",1592
+]1593
+1594
+[[package]]1595
+name = "wezterm-dynamic"1596
+version = "0.2.1"1597
+source = "registry+https://github.com/rust-lang/crates.io-index"1598
+checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac"1599
+dependencies = [1600
+ "log",1601
+ "ordered-float",1602
+ "strsim",1603
+ "thiserror 1.0.69",1604
+ "wezterm-dynamic-derive",1605
+]1606
+1607
+[[package]]1608
+name = "wezterm-dynamic-derive"1609
+version = "0.1.1"1610
+source = "registry+https://github.com/rust-lang/crates.io-index"1611
+checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b"1612
+dependencies = [1613
+ "proc-macro2",1614
+ "quote",1615
+ "syn 1.0.109",1616
+]1617
+1618
+[[package]]1619
+name = "wezterm-input-types"1620
+version = "0.1.0"1621
+source = "registry+https://github.com/rust-lang/crates.io-index"1622
+checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e"1623
+dependencies = [1624
+ "bitflags 1.3.2",1625
+ "euclid",1626
+ "lazy_static",1627
+ "serde",1628
+ "wezterm-dynamic",1629
+]1630
+1631
+[[package]]1632
+name = "winapi"1633
+version = "0.3.9"1634
+source = "registry+https://github.com/rust-lang/crates.io-index"1635
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"1636
+dependencies = [1637
+ "winapi-i686-pc-windows-gnu",1638
+ "winapi-x86_64-pc-windows-gnu",1639
+]1640
+1641
+[[package]]1642
+name = "winapi-i686-pc-windows-gnu"1643
+version = "0.4.0"1644
+source = "registry+https://github.com/rust-lang/crates.io-index"1645
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"1646
+1647
+[[package]]1648
+name = "winapi-x86_64-pc-windows-gnu"1649
+version = "0.4.0"1650
+source = "registry+https://github.com/rust-lang/crates.io-index"1651
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"1652
+1653
+[[package]]1654
+name = "windows-link"1655
+version = "0.2.1"1656
+source = "registry+https://github.com/rust-lang/crates.io-index"1657
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"1658
+1659
+[[package]]1660
+name = "windows-sys"1661
+version = "0.61.2"1662
+source = "registry+https://github.com/rust-lang/crates.io-index"1663
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"1664
+dependencies = [1665
+ "windows-link",1666
+]1667
+1668
+[[package]]1669
+name = "wit-bindgen"1670
+version = "0.57.1"1671
+source = "registry+https://github.com/rust-lang/crates.io-index"1672
+checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"@@ -0,0 +1,8 @@
1
+[package]2
+name = "show_key"3
+version = "0.1.0"4
+edition = "2024"5
+6
+[dependencies]7
+crossterm = "0.29.0"8
+ratatui = "0.30.2"@@ -0,0 +1,27 @@
1
+{2
+ "nodes": {3
+ "nixpkgs": {4
+ "locked": {5
+ "lastModified": 1790149054,6
+ "narHash": "sha256-FfjXg6mAzKQBCY+7V9keGWOXG4DV2Eym/qA987lFl8A=",7
+ "owner": "NixOS",8
+ "repo": "nixpkgs",9
+ "rev": "8825bebf6324e0579d012936eff73379af284b6d",10
+ "type": "github"11
+ },12
+ "original": {13
+ "owner": "NixOS",14
+ "ref": "nixpkgs-unstable",15
+ "repo": "nixpkgs",16
+ "type": "github"17
+ }18
+ },19
+ "root": {20
+ "inputs": {21
+ "nixpkgs": "nixpkgs"22
+ }23
+ }24
+ },25
+ "root": "root",26
+ "version": 727
+}@@ -0,0 +1,33 @@
1
+{2
+ description = "Rust 2048 game";3
+4
+ inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";5
+6
+ outputs = {nixpkgs, ...}: let7
+ system = "x86_64-linux";8
+ pkgs = nixpkgs.legacyPackages.${system};9
+ in {10
+ packages.${system}.default = pkgs.rustPlatform.buildRustPackage {11
+ pname = "jag_2048";12
+ version = "1.0.0";13
+14
+ src = ./.;15
+16
+ cargoLock.lockFile = ./Cargo.lock;17
+18
+ meta = {19
+ description = "Rust 2048 game";20
+ mainProgram = "jag_2048";21
+ };22
+ };23
+24
+ devShells.${system}.default = pkgs.mkShell {25
+ packages = with pkgs; [26
+ rustc27
+ cargo28
+ rustfmt29
+ clippy30
+ ];31
+ };32
+ };33
+}@@ -0,0 +1,179 @@
1
+use std::{2
+ io,3
+ time::{4
+ Duration,5
+ Instant,6
+ },7
+};8
+9
+use crossterm::event::{10
+ self, 11
+ poll,12
+ KeyCode,13
+ KeyModifiers,14
+ KeyEvent,15
+ KeyEventKind,16
+ Event,17
+};18
+19
+use ratatui::{20
+ buffer::Buffer,21
+ layout::{Rect, Constraint},22
+ text::{Line, Span},23
+ style::Stylize,24
+ symbols::border,25
+ DefaultTerminal,26
+ widgets::{Widget, Block},27
+ Frame,28
+};29
+30
+#[derive(Debug, PartialEq, Eq)]31
+enum State {32
+ Run,33
+ Consider,34
+ Quit,35
+}36
+37
+#[derive(Debug)]38
+pub struct ShowKey {39
+ state: State,40
+ current_key: Option<KeyEvent>,41
+ key_time: Option<Instant>,42
+}43
+44
+impl Default for ShowKey {45
+ fn default() -> Self {46
+ Self {47
+ state: State::Run,48
+ current_key: None,49
+ key_time: None,50
+ }51
+ }52
+}53
+54
+impl Widget for &ShowKey {55
+ fn render(self, area: Rect, buf: &mut Buffer) {56
+57
+ let title = Line::from(" Show Key ".bold());58
+59
+ let block = Block::bordered()60
+ .title(title.centered())61
+ .border_set(border::ROUNDED);62
+63
+ let block_area = area.centered(64
+ Constraint::Length(25),65
+ Constraint::Length(7),66
+ );67
+68
+ let pressed = Line::from(self69
+ .current_key.map(|key| vec![70
+ Span::from(match key.modifiers {71
+ KeyModifiers::NONE => "".into(),72
+ other => format!("{other} + "),73
+ }),74
+ Span::from(match key.code {75
+ KeyCode::Char(c) => if c == ' ' {76
+ "\" \"".into()77
+ } else {78
+ c.to_lowercase().to_string()79
+ },80
+ KeyCode::F(f) => format!("F{f}"),81
+ other => format!("{other}"),82
+ }),83
+ ]84
+85
+86
+ )87
+ .unwrap_or(vec![Span::from("Fuck you")])88
+ );89
+90
+ let pressed_area = block91
+ .inner(block_area)92
+ .centered(93
+ Constraint::Length(pressed.width() as u16),94
+ Constraint::Length(1),95
+ );96
+97
+ block.render(block_area, buf);98
+ pressed.render(pressed_area, buf);99
+ }100
+}101
+102
+impl ShowKey {103
+ fn run(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> {104
+ 105
+ terminal.draw(|frame| self.draw(frame))?;106
+107
+ while self.state != State::Quit {108
+ 109
+ if poll(Duration::from_millis(100))? {110
+ self.handle_events()?;111
+ }112
+113
+ match self.key_time {114
+ Some(time) if time.elapsed() >= Duration::from_secs(1) => {115
+ self.unset();116
+ self.detime();117
+ },118
+ _ => {},119
+ }120
+ 121
+ terminal.draw(|frame| self.draw(frame))?;122
+ }123
+ Ok(())124
+ }125
+126
+ fn draw(&self, frame: &mut Frame) {127
+ frame.render_widget(self, frame.area());128
+ }129
+130
+ fn handle_events(&mut self) -> io::Result<()> {131
+ match event::read()? {132
+ Event::Key(key_event) if key_event.kind == KeyEventKind::Press => {133
+ self.key_time = Some(Instant::now());134
+ self.handle_key_event(key_event);135
+ },136
+ _ => {},137
+ }138
+ Ok(())139
+ }140
+141
+ fn handle_key_event(&mut self, key_event: KeyEvent) {142
+ 143
+ self.current_key = Some(key_event);144
+145
+ match key_event.code {146
+ KeyCode::Esc => self.deeper(),147
+ _ => self.higher(),148
+ }149
+ }150
+151
+ fn unset(&mut self) {152
+ self.current_key = None;153
+ }154
+155
+ fn detime(&mut self) {156
+ self.key_time = None;157
+ }158
+159
+ fn deeper(&mut self) {160
+ match self.state {161
+ State::Run => self.state = State::Consider,162
+ State::Consider => self.state = State::Quit,163
+ State::Quit => {}164
+ }165
+ }166
+167
+ fn higher(&mut self) {168
+ match self.state {169
+ State::Run => {}170
+ State::Consider => self.state = State::Run,171
+ State::Quit => self.state = State::Consider,172
+ }173
+ }174
+}175
+176
+177
+fn main() -> io::Result<()> {178
+ ratatui::run(|term| ShowKey::default().run(term))179
+}