A small typing test program in Rust
Commit 12f039d6d5c5
tarball7 files changed+1900-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.13"488
+source = "registry+https://github.com/rust-lang/crates.io-index"489
+checksum = "2bf84e73fa6f27f299dec58e13223cf70db80da872eb921d4f6138342a0eabc8"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.4"598
+source = "registry+https://github.com/rust-lang/crates.io-index"599
+checksum = "ff9840bcc50b71349309900da0ce7279aa336ae71d73250b07998932c7d97c25"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 = "monkey"655
+version = "0.1.0"656
+dependencies = [657
+ "crossterm",658
+ "ratatui",659
+]660
+661
+[[package]]662
+name = "nix"663
+version = "0.29.0"664
+source = "registry+https://github.com/rust-lang/crates.io-index"665
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"666
+dependencies = [667
+ "bitflags 2.13.2",668
+ "cfg-if",669
+ "cfg_aliases",670
+ "libc",671
+ "memoffset",672
+]673
+674
+[[package]]675
+name = "nom"676
+version = "7.1.3"677
+source = "registry+https://github.com/rust-lang/crates.io-index"678
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"679
+dependencies = [680
+ "memchr",681
+ "minimal-lexical",682
+]683
+684
+[[package]]685
+name = "num-conv"686
+version = "0.2.2"687
+source = "registry+https://github.com/rust-lang/crates.io-index"688
+checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"689
+690
+[[package]]691
+name = "num-derive"692
+version = "0.4.2"693
+source = "registry+https://github.com/rust-lang/crates.io-index"694
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"695
+dependencies = [696
+ "proc-macro2",697
+ "quote",698
+ "syn 2.0.119",699
+]700
+701
+[[package]]702
+name = "num-traits"703
+version = "0.2.19"704
+source = "registry+https://github.com/rust-lang/crates.io-index"705
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"706
+dependencies = [707
+ "autocfg",708
+]709
+710
+[[package]]711
+name = "num_threads"712
+version = "0.1.7"713
+source = "registry+https://github.com/rust-lang/crates.io-index"714
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"715
+dependencies = [716
+ "libc",717
+]718
+719
+[[package]]720
+name = "once_cell"721
+version = "1.21.4"722
+source = "registry+https://github.com/rust-lang/crates.io-index"723
+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"724
+725
+[[package]]726
+name = "ordered-float"727
+version = "4.6.0"728
+source = "registry+https://github.com/rust-lang/crates.io-index"729
+checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"730
+dependencies = [731
+ "num-traits",732
+]733
+734
+[[package]]735
+name = "palette"736
+version = "0.7.7"737
+source = "registry+https://github.com/rust-lang/crates.io-index"738
+checksum = "ddeed8580d347d2abf3dcf06a5f0b3dc020258338526b277847cd4248a70fc64"739
+dependencies = [740
+ "approx",741
+ "libm",742
+ "palette_derive",743
+ "palette_math",744
+]745
+746
+[[package]]747
+name = "palette_derive"748
+version = "0.7.7"749
+source = "registry+https://github.com/rust-lang/crates.io-index"750
+checksum = "88537020289b719d81be994ccf1bbf4990f477e2f69ee52fe3e45f43a02e56be"751
+dependencies = [752
+ "by_address",753
+ "proc-macro2",754
+ "quote",755
+ "syn 2.0.119",756
+]757
+758
+[[package]]759
+name = "palette_math"760
+version = "0.7.7"761
+source = "registry+https://github.com/rust-lang/crates.io-index"762
+checksum = "6e6eb142958d64335fb0e345c5b9ead2ecd6fc438c307e9d7d3c4fd428dbaf12"763
+dependencies = [764
+ "libm",765
+]766
+767
+[[package]]768
+name = "parking_lot"769
+version = "0.12.5"770
+source = "registry+https://github.com/rust-lang/crates.io-index"771
+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"772
+dependencies = [773
+ "lock_api",774
+ "parking_lot_core",775
+]776
+777
+[[package]]778
+name = "parking_lot_core"779
+version = "0.9.12"780
+source = "registry+https://github.com/rust-lang/crates.io-index"781
+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"782
+dependencies = [783
+ "cfg-if",784
+ "libc",785
+ "redox_syscall",786
+ "smallvec",787
+ "windows-link",788
+]789
+790
+[[package]]791
+name = "pest"792
+version = "2.9.2"793
+source = "registry+https://github.com/rust-lang/crates.io-index"794
+checksum = "45d3aca230fad2e6f6317ca0a72724338c4960cb97168a85cdee66df4a9a21a8"795
+dependencies = [796
+ "memchr",797
+ "ucd-trie",798
+]799
+800
+[[package]]801
+name = "pest_derive"802
+version = "2.9.2"803
+source = "registry+https://github.com/rust-lang/crates.io-index"804
+checksum = "284b60557f2c4a2e72ad3f2d34d42685a2fa4a6a61d0d2a10c0ae2a5e916c2cf"805
+dependencies = [806
+ "pest",807
+ "pest_generator",808
+]809
+810
+[[package]]811
+name = "pest_generator"812
+version = "2.9.2"813
+source = "registry+https://github.com/rust-lang/crates.io-index"814
+checksum = "1d9d1f08a115309ee99268cf85e5228e0e56aa9caf8841ec12866b6be07c3109"815
+dependencies = [816
+ "pest",817
+ "pest_meta",818
+ "proc-macro2",819
+ "quote",820
+ "syn 2.0.119",821
+]822
+823
+[[package]]824
+name = "pest_meta"825
+version = "2.9.2"826
+source = "registry+https://github.com/rust-lang/crates.io-index"827
+checksum = "ed93ba1a9ffcca32130a5188701c81c0c49cf00d4b7c5007d5148951d743adcb"828
+dependencies = [829
+ "pest",830
+]831
+832
+[[package]]833
+name = "phf"834
+version = "0.11.3"835
+source = "registry+https://github.com/rust-lang/crates.io-index"836
+checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"837
+dependencies = [838
+ "phf_macros",839
+ "phf_shared",840
+]841
+842
+[[package]]843
+name = "phf_codegen"844
+version = "0.11.3"845
+source = "registry+https://github.com/rust-lang/crates.io-index"846
+checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"847
+dependencies = [848
+ "phf_generator",849
+ "phf_shared",850
+]851
+852
+[[package]]853
+name = "phf_generator"854
+version = "0.11.3"855
+source = "registry+https://github.com/rust-lang/crates.io-index"856
+checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"857
+dependencies = [858
+ "phf_shared",859
+ "rand",860
+]861
+862
+[[package]]863
+name = "phf_macros"864
+version = "0.11.3"865
+source = "registry+https://github.com/rust-lang/crates.io-index"866
+checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"867
+dependencies = [868
+ "phf_generator",869
+ "phf_shared",870
+ "proc-macro2",871
+ "quote",872
+ "syn 2.0.119",873
+]874
+875
+[[package]]876
+name = "phf_shared"877
+version = "0.11.3"878
+source = "registry+https://github.com/rust-lang/crates.io-index"879
+checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"880
+dependencies = [881
+ "siphasher",882
+]883
+884
+[[package]]885
+name = "pin-project-lite"886
+version = "0.2.17"887
+source = "registry+https://github.com/rust-lang/crates.io-index"888
+checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"889
+890
+[[package]]891
+name = "portable-atomic"892
+version = "1.15.0"893
+source = "registry+https://github.com/rust-lang/crates.io-index"894
+checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"895
+896
+[[package]]897
+name = "powerfmt"898
+version = "0.2.0"899
+source = "registry+https://github.com/rust-lang/crates.io-index"900
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"901
+902
+[[package]]903
+name = "proc-macro2"904
+version = "1.0.107"905
+source = "registry+https://github.com/rust-lang/crates.io-index"906
+checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"907
+dependencies = [908
+ "unicode-ident",909
+]910
+911
+[[package]]912
+name = "quote"913
+version = "1.0.47"914
+source = "registry+https://github.com/rust-lang/crates.io-index"915
+checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"916
+dependencies = [917
+ "proc-macro2",918
+]919
+920
+[[package]]921
+name = "r-efi"922
+version = "5.3.0"923
+source = "registry+https://github.com/rust-lang/crates.io-index"924
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"925
+926
+[[package]]927
+name = "r-efi"928
+version = "6.0.0"929
+source = "registry+https://github.com/rust-lang/crates.io-index"930
+checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"931
+932
+[[package]]933
+name = "rand"934
+version = "0.8.8"935
+source = "registry+https://github.com/rust-lang/crates.io-index"936
+checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c"937
+dependencies = [938
+ "rand_core",939
+]940
+941
+[[package]]942
+name = "rand_core"943
+version = "0.6.4"944
+source = "registry+https://github.com/rust-lang/crates.io-index"945
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"946
+947
+[[package]]948
+name = "ratatui"949
+version = "0.30.2"950
+source = "registry+https://github.com/rust-lang/crates.io-index"951
+checksum = "3274ba0a2c5e1bcad2a2005d20f4dc59dad26b2eb0940fb094500dba4099d57d"952
+dependencies = [953
+ "instability",954
+ "ratatui-core",955
+ "ratatui-crossterm",956
+ "ratatui-macros",957
+ "ratatui-termina",958
+ "ratatui-termwiz",959
+ "ratatui-widgets",960
+ "serde",961
+]962
+963
+[[package]]964
+name = "ratatui-core"965
+version = "0.1.2"966
+source = "registry+https://github.com/rust-lang/crates.io-index"967
+checksum = "cbb175c433c8e28a809d1f5773a2ae96e68c0ce40db865cbab1020bf33ae479c"968
+dependencies = [969
+ "bitflags 2.13.2",970
+ "compact_str",971
+ "critical-section",972
+ "hashbrown 0.17.1",973
+ "itertools",974
+ "kasuari",975
+ "lru",976
+ "palette",977
+ "serde",978
+ "strum",979
+ "thiserror 2.0.20",980
+ "unicode-segmentation",981
+ "unicode-truncate",982
+ "unicode-width",983
+]984
+985
+[[package]]986
+name = "ratatui-crossterm"987
+version = "0.1.2"988
+source = "registry+https://github.com/rust-lang/crates.io-index"989
+checksum = "567584a3b0e6a8203c23de40b4861497266725eb5363dbfd18a1edd603cca9f0"990
+dependencies = [991
+ "cfg-if",992
+ "crossterm",993
+ "instability",994
+ "ratatui-core",995
+]996
+997
+[[package]]998
+name = "ratatui-macros"999
+version = "0.7.2"1000
+source = "registry+https://github.com/rust-lang/crates.io-index"1001
+checksum = "ed7dc68daa7498a43e4d68e0eb078427e10c38fbcfbb1e42d955f1fa2140d814"1002
+dependencies = [1003
+ "ratatui-core",1004
+ "ratatui-widgets",1005
+]1006
+1007
+[[package]]1008
+name = "ratatui-termina"1009
+version = "0.1.0"1010
+source = "registry+https://github.com/rust-lang/crates.io-index"1011
+checksum = "c0bf912d9e66f057a759d92e386a280ea886b352ab757d6ac4d653c7ed2c43c2"1012
+dependencies = [1013
+ "instability",1014
+ "ratatui-core",1015
+ "termina",1016
+]1017
+1018
+[[package]]1019
+name = "ratatui-termwiz"1020
+version = "0.1.2"1021
+source = "registry+https://github.com/rust-lang/crates.io-index"1022
+checksum = "faf03e0380b7744054d6cb74224fe3adf062a029754933f575ca1e3b4c2ce977"1023
+dependencies = [1024
+ "ratatui-core",1025
+ "termwiz",1026
+]1027
+1028
+[[package]]1029
+name = "ratatui-widgets"1030
+version = "0.3.2"1031
+source = "registry+https://github.com/rust-lang/crates.io-index"1032
+checksum = "66e3d19bcc9130ca376277d93b60767ff121ace3be06f5f95f81dd68956407d1"1033
+dependencies = [1034
+ "bitflags 2.13.2",1035
+ "hashbrown 0.17.1",1036
+ "indoc",1037
+ "instability",1038
+ "itertools",1039
+ "line-clipping",1040
+ "ratatui-core",1041
+ "serde",1042
+ "strum",1043
+ "time",1044
+ "unicode-segmentation",1045
+ "unicode-width",1046
+]1047
+1048
+[[package]]1049
+name = "redox_syscall"1050
+version = "0.5.18"1051
+source = "registry+https://github.com/rust-lang/crates.io-index"1052
+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"1053
+dependencies = [1054
+ "bitflags 2.13.2",1055
+]1056
+1057
+[[package]]1058
+name = "regex"1059
+version = "1.13.1"1060
+source = "registry+https://github.com/rust-lang/crates.io-index"1061
+checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"1062
+dependencies = [1063
+ "aho-corasick",1064
+ "memchr",1065
+ "regex-automata",1066
+ "regex-syntax",1067
+]1068
+1069
+[[package]]1070
+name = "regex-automata"1071
+version = "0.4.18"1072
+source = "registry+https://github.com/rust-lang/crates.io-index"1073
+checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"1074
+dependencies = [1075
+ "aho-corasick",1076
+ "memchr",1077
+ "regex-syntax",1078
+]1079
+1080
+[[package]]1081
+name = "regex-syntax"1082
+version = "0.8.11"1083
+source = "registry+https://github.com/rust-lang/crates.io-index"1084
+checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"1085
+1086
+[[package]]1087
+name = "rustc_version"1088
+version = "0.4.1"1089
+source = "registry+https://github.com/rust-lang/crates.io-index"1090
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"1091
+dependencies = [1092
+ "semver",1093
+]1094
+1095
+[[package]]1096
+name = "rustix"1097
+version = "1.1.5"1098
+source = "registry+https://github.com/rust-lang/crates.io-index"1099
+checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d"1100
+dependencies = [1101
+ "bitflags 2.13.2",1102
+ "errno",1103
+ "libc",1104
+ "linux-raw-sys",1105
+ "windows-sys",1106
+]1107
+1108
+[[package]]1109
+name = "rustversion"1110
+version = "1.0.23"1111
+source = "registry+https://github.com/rust-lang/crates.io-index"1112
+checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"1113
+1114
+[[package]]1115
+name = "ryu"1116
+version = "1.0.23"1117
+source = "registry+https://github.com/rust-lang/crates.io-index"1118
+checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"1119
+1120
+[[package]]1121
+name = "scopeguard"1122
+version = "1.2.0"1123
+source = "registry+https://github.com/rust-lang/crates.io-index"1124
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"1125
+1126
+[[package]]1127
+name = "semver"1128
+version = "1.0.28"1129
+source = "registry+https://github.com/rust-lang/crates.io-index"1130
+checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"1131
+1132
+[[package]]1133
+name = "serde"1134
+version = "1.0.229"1135
+source = "registry+https://github.com/rust-lang/crates.io-index"1136
+checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"1137
+dependencies = [1138
+ "serde_core",1139
+ "serde_derive",1140
+]1141
+1142
+[[package]]1143
+name = "serde_core"1144
+version = "1.0.229"1145
+source = "registry+https://github.com/rust-lang/crates.io-index"1146
+checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"1147
+dependencies = [1148
+ "serde_derive",1149
+]1150
+1151
+[[package]]1152
+name = "serde_derive"1153
+version = "1.0.229"1154
+source = "registry+https://github.com/rust-lang/crates.io-index"1155
+checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"1156
+dependencies = [1157
+ "proc-macro2",1158
+ "quote",1159
+ "syn 3.0.6",1160
+]1161
+1162
+[[package]]1163
+name = "sha2"1164
+version = "0.10.9"1165
+source = "registry+https://github.com/rust-lang/crates.io-index"1166
+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"1167
+dependencies = [1168
+ "cfg-if",1169
+ "cpufeatures",1170
+ "digest",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 = "monkey"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": 1790055231,6
+ "narHash": "sha256-QpXotokGh5eeMG1Njiuh27oP0rK6t5+cMp7ymXSs7mc=",7
+ "owner": "NixOS",8
+ "repo": "nixpkgs",9
+ "rev": "b6c98e9e6633ee64753b594ff4a5febf0367fc00",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,156 @@
1
+use std::io;2
+3
+use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind};4
+use ratatui::{5
+ buffer::Buffer,6
+ layout::{Rect, Layout, Direction, Constraint},7
+ style::Stylize,8
+ symbols::border,9
+ text::{Line, Text},10
+ widgets::{Block, Paragraph, Widget},11
+ DefaultTerminal, Frame,12
+};13
+14
+#[derive(Debug, PartialEq, Eq)]15
+enum States {16
+ Running,17
+ Paused,18
+ Quit,19
+}20
+21
+impl Default for States {22
+ fn default() -> Self {23
+ States::Running24
+ }25
+}26
+27
+#[derive(Debug, Default)]28
+pub struct App {29
+ counter: u8,30
+ state: States,31
+}32
+33
+impl Widget for &App {34
+ fn render(self, area: Rect, buf: &mut Buffer) {35
+36
+ let title = Line::from(" Counter App Tutorial ".bold());37
+ let instructions = Line::from(vec![38
+ " Decrement ".into(),39
+ "<Left>".blue().bold(),40
+ " Increment ".into(),41
+ "<Right>".blue().bold(),42
+ " Pause ".into(),43
+ "<P>".blue().bold(),44
+ " Quit".into(),45
+ "<Q> ".blue().bold(),46
+ ]);47
+ let block = Block::bordered()48
+ .title(title.centered())49
+ .title_bottom(instructions.centered())50
+ .border_set(border::THICK);51
+52
+ let counter_text = Text::from(vec![Line::from(vec![53
+ "Value: ".into(),54
+ self.counter.to_string().yellow(),55
+ ])]);56
+57
+ Paragraph::new(counter_text)58
+ .centered()59
+ .block(block)60
+ .render(area, buf);61
+62
+ if self.state == States::Paused {63
+ 64
+ let pause_area = area.centered(65
+ Constraint::Length(20),66
+ Constraint::Length(5),67
+ );68
+69
+ let pause_block = Block::bordered()70
+ .border_set(border::ROUNDED);71
+72
+ let pause_text = Text::from("PAUSE");73
+ 74
+ let pause_text_area = pause_area.centered(75
+ Constraint::Length(pause_text.width() as u16),76
+ Constraint::Length(1),77
+ );78
+ 79
+ pause_block.render(pause_area, buf);80
+81
+ Paragraph::new(pause_text)82
+ .render(pause_text_area, buf);83
+ }84
+ }85
+}86
+87
+impl App {88
+89
+ pub fn run(&mut self, terminal: &mut DefaultTerminal) -> io::Result<()> {90
+ while self.state != States::Quit {91
+ terminal.draw(|frame| self.draw(frame))?;92
+ self.handle_events()?;93
+ }94
+ Ok(())95
+ }96
+97
+ fn draw(&self, frame: &mut Frame) {98
+ frame.render_widget(self, frame.area());99
+ }100
+101
+ fn handle_events(&mut self) -> io::Result<()> {102
+ match event::read()? {103
+ Event::Key(key_event) if key_event.kind == KeyEventKind::Press => {104
+ self.handle_key_event(key_event)105
+ },106
+ _ => {},107
+ };108
+ Ok(())109
+ }110
+111
+ fn handle_key_event(&mut self, key_event: KeyEvent) {112
+ match self.state {113
+ States::Running => 114
+ match key_event.code {115
+ KeyCode::Char('p') => self.pause(),116
+ KeyCode::Char('q') => self.exit(),117
+ KeyCode::Left => self.decrement_counter(),118
+ KeyCode::Right => self.increment_counter(),119
+ _ => {}120
+ },121
+ States::Paused => 122
+ match key_event.code {123
+ KeyCode::Char('p') => self.pause(),124
+ KeyCode::Char('q') => self.exit(),125
+ _ => {},126
+ },127
+128
+ States::Quit => {},129
+ }130
+ }131
+132
+ fn pause(&mut self) {133
+ if self.state == States::Paused {134
+ self.state = States::Running;135
+ } else {136
+ self.state = States::Paused;137
+ }138
+ }139
+140
+ fn exit(&mut self) {141
+ self.state = States::Quit;142
+ }143
+144
+ fn increment_counter(&mut self) {145
+ self.counter += 1;146
+ }147
+148
+ fn decrement_counter(&mut self) {149
+ self.counter -= 1;150
+ }151
+}152
+153
+154
+fn main() -> io::Result<()> {155
+ ratatui::run(|terminal| App::default().run(terminal))156
+}