From 93b1662e02f96396c3bff5621aab80316854fba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Orhun=20Parmaks=C4=B1z?= Date: Wed, 22 May 2024 13:11:07 +0300 Subject: [PATCH 01/27] Add Cargo.lock --- .gitignore | 4 - Cargo.lock | 2124 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2124 insertions(+), 4 deletions(-) create mode 100644 Cargo.lock diff --git a/.gitignore b/.gitignore index a0ffc49..69290f1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,10 +4,6 @@ debug/ target/ -# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries -# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -Cargo.lock - # These are backup files generated by rustfmt **/*.rs.bk diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..004dd63 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2124 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "castaway" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc" +dependencies = [ + "rustversion", +] + +[[package]] +name = "cc" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "color-eyre" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] + +[[package]] +name = "compact_str" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" +dependencies = [ + "castaway", + "cfg-if", + "itoa", + "ryu", + "static_assertions", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "crossterm" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" +dependencies = [ + "bitflags 2.5.0", + "crossterm_winapi", + "futures-core", + "libc", + "mio", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "cssparser" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf 0.11.2", + "smallvec", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +dependencies = [ + "quote", + "syn 2.0.65", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dtoa-short" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" +dependencies = [ + "dtoa", +] + +[[package]] +name = "ego-tree" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68a4904193147e0a8dec3314640e6db742afd5f6e634f428a6af230d9b3591" + +[[package]] +name = "either" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" + +[[package]] +name = "encoding_rs" +version = "0.8.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "get-blessed" +version = "0.1.3" +dependencies = [ + "color-eyre", + "crossterm", + "open", + "ratatui", + "reqwest", + "scraper", + "serde", + "strum", + "strum_macros", + "throbber-widgets-tui", + "tokio", +] + +[[package]] +name = "getopts" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "html5ever" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "hyper" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "lru" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +dependencies = [ + "hashbrown", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "markup5ever" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" +dependencies = [ + "log", + "phf 0.10.1", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "memchr" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "open" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb49fbd5616580e9974662cb96a3463da4476e649a7e4b258df0de065db0657" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + +[[package]] +name = "openssl" +version = "0.10.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "parking_lot" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.5", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_shared 0.10.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_codegen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro2" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "ratatui" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f44c9e68fd46eda15c646fbb85e1040b657a58cdc8c98db1d97a55930d991eef" +dependencies = [ + "bitflags 2.5.0", + "cassowary", + "compact_str", + "crossterm", + "itertools", + "lru", + "paste", + "stability", + "strum", + "time", + "unicode-segmentation", + "unicode-truncate", + "unicode-width", +] + +[[package]] +name = "redox_syscall" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +dependencies = [ + "bitflags 2.5.0", +] + +[[package]] +name = "reqwest" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scraper" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b80b33679ff7a0ea53d37f3b39de77ea0c75b12c5805ac43ec0c33b3051af1b" +dependencies = [ + "ahash", + "cssparser", + "ego-tree", + "getopts", + "html5ever", + "once_cell", + "selectors", + "tendril", +] + +[[package]] +name = "security-framework" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +dependencies = [ + "bitflags 2.5.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06" +dependencies = [ + "bitflags 2.5.0", + "cssparser", + "derive_more", + "fxhash", + "log", + "new_debug_unreachable", + "phf 0.10.1", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec", +] + +[[package]] +name = "serde" +version = "1.0.202" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.202" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "serde_json" +version = "1.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "servo_arc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "stability" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a" +dependencies = [ + "quote", + "syn 2.0.65", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "strum" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.65", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "tendril" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "throbber-widgets-tui" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "431b847a60fc7b1df94a5b1bcb3cdd7027bb0013b431b08038505e8891c577a2" +dependencies = [ + "rand", + "ratatui", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +dependencies = [ + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "sharded-slab", + "thread_local", + "tracing-core", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + +[[package]] +name = "unicode-truncate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5fbabedabe362c618c714dbefda9927b5afc8e2a8102f47f081089a9019226" +dependencies = [ + "itertools", + "unicode-width", +] + +[[package]] +name = "unicode-width" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.65", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.65", +] From d71b1818d732f20a6c17353e22a0ea8baa9a41ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Orhun=20Parmaks=C4=B1z?= Date: Wed, 22 May 2024 13:16:16 +0300 Subject: [PATCH 02/27] Add AUR instructions --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 82cb48a..1317673 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,6 @@ Terminal tool to get you the best crates for your rust projects with a few keybi cargo install get-blessed ``` -Please feel free to suggest new features or report any bugs / inconsistencies +Arch Linux users can install [from the AUR](https://aur.archlinux.org/packages/get-blessed) via `paru -S get-blessed`. + +Please feel free to suggest new features or report any bugs / inconsistencies From 94eee189b5f03972ea82df1f9b42490a1d7aeb58 Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Thu, 23 May 2024 20:02:13 -0500 Subject: [PATCH 03/27] changed scraper to fetch json file rather than scrape site directly --- Cargo.lock | 345 +-------------------------- Cargo.toml | 3 +- src/content_parser/content_parser.rs | 12 +- src/scraper/scraper.rs | 38 ++- src/tui/handler.rs | 6 +- 5 files changed, 50 insertions(+), 354 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 004dd63..39bd118 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,7 +24,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", "once_cell", "version_check", "zerocopy", @@ -87,12 +86,6 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.6.0" @@ -208,29 +201,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "cssparser" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be" -dependencies = [ - "cssparser-macros", - "dtoa-short", - "itoa", - "phf 0.11.2", - "smallvec", -] - -[[package]] -name = "cssparser-macros" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" -dependencies = [ - "quote", - "syn 2.0.65", -] - [[package]] name = "deranged" version = "0.3.11" @@ -240,38 +210,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "dtoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" - -[[package]] -name = "dtoa-short" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74" -dependencies = [ - "dtoa", -] - -[[package]] -name = "ego-tree" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a68a4904193147e0a8dec3314640e6db742afd5f6e634f428a6af230d9b3591" - [[package]] name = "either" version = "1.12.0" @@ -349,16 +287,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - [[package]] name = "futures-channel" version = "0.3.30" @@ -398,15 +326,6 @@ dependencies = [ "pin-utils", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "get-blessed" version = "0.1.3" @@ -416,7 +335,6 @@ dependencies = [ "open", "ratatui", "reqwest", - "scraper", "serde", "strum", "strum_macros", @@ -424,15 +342,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "getopts" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" -dependencies = [ - "unicode-width", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -491,20 +400,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" -[[package]] -name = "html5ever" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" -dependencies = [ - "log", - "mac", - "markup5ever", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "http" version = "1.1.0" @@ -719,26 +614,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - -[[package]] -name = "markup5ever" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" -dependencies = [ - "log", - "phf 0.10.1", - "phf_codegen", - "string_cache", - "string_cache_codegen", - "tendril", -] - [[package]] name = "memchr" version = "2.7.2" @@ -790,12 +665,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "num-conv" version = "0.1.0" @@ -870,7 +739,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -938,86 +807,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_shared 0.10.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_codegen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared 0.10.0", - "rand", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.65", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - [[package]] name = "pin-project" version = "1.1.5" @@ -1035,7 +824,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -1068,12 +857,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "proc-macro2" version = "1.0.83" @@ -1256,22 +1039,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scraper" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b80b33679ff7a0ea53d37f3b39de77ea0c75b12c5805ac43ec0c33b3051af1b" -dependencies = [ - "ahash", - "cssparser", - "ego-tree", - "getopts", - "html5ever", - "once_cell", - "selectors", - "tendril", -] - [[package]] name = "security-framework" version = "2.11.0" @@ -1295,25 +1062,6 @@ dependencies = [ "libc", ] -[[package]] -name = "selectors" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06" -dependencies = [ - "bitflags 2.5.0", - "cssparser", - "derive_more", - "fxhash", - "log", - "new_debug_unreachable", - "phf 0.10.1", - "phf_codegen", - "precomputed-hash", - "servo_arc", - "smallvec", -] - [[package]] name = "serde" version = "1.0.202" @@ -1331,7 +1079,7 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -1357,15 +1105,6 @@ dependencies = [ "serde", ] -[[package]] -name = "servo_arc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44" -dependencies = [ - "stable_deref_trait", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -1405,12 +1144,6 @@ dependencies = [ "libc", ] -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" version = "0.4.9" @@ -1443,47 +1176,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a" dependencies = [ "quote", - "syn 2.0.65", + "syn", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", - "serde", -] - -[[package]] -name = "string_cache_codegen" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro2", - "quote", -] - [[package]] name = "strum" version = "0.26.2" @@ -1503,18 +1204,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.65", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "syn", ] [[package]] @@ -1567,17 +1257,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "tendril" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" -dependencies = [ - "futf", - "mac", - "utf-8", -] - [[package]] name = "thread_local" version = "1.1.8" @@ -1661,7 +1340,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -1817,12 +1496,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "valuable" version = "0.1.0" @@ -1877,7 +1550,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.65", + "syn", "wasm-bindgen-shared", ] @@ -1911,7 +1584,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2120,5 +1793,5 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] diff --git a/Cargo.toml b/Cargo.toml index ba1f1b9..cb6fed4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,14 +12,13 @@ categories = ["utilities", "development-tools" , "command-line", "dependencies"] license = "MIT" [dependencies] -reqwest = "0.12.4" +reqwest = { version = "0.12.4" , features = ["json"]} ratatui = { version = "0.26.3", features = ["all-widgets"] } color-eyre = "0.6.2" crossterm = { version = "0.27.0", features = ["event-stream"] } serde = { version = "1.0.200", features = ["derive"] } strum = "0.26.2" strum_macros = "0.26" -scraper = "0.19.0" open = "5.1.3" throbber-widgets-tui = "0.5.0" tokio = { version = "1.37.0", features = ["full"] } diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index ba77db0..c27d17e 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -1,22 +1,18 @@ -use scraper::Html; - use crate::{ backend::{Categories, CategoriesWithSubCategories, Crates, Table, TableEntry}, - scraper::scraper::scrape_site, + scraper::scraper::{scrape_site, CratesData}, }; +#[derive(Debug)] pub struct ContentParser { - content: Html, + pub content: CratesData, } impl ContentParser { pub async fn new() -> Self { let page_content = scrape_site().await.unwrap(); - - let html_content = Html::parse_document(&page_content); - Self { - content: html_content, + content: page_content, } } diff --git a/src/scraper/scraper.rs b/src/scraper/scraper.rs index 8e9579d..7ade1ac 100644 --- a/src/scraper/scraper.rs +++ b/src/scraper/scraper.rs @@ -1,9 +1,37 @@ use std::error::Error; -pub async fn scrape_site() -> Result> { - let response = reqwest::get("https://blessed.rs/crates") - .await? - .text() - .await?; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug)] +pub struct Group { + pub name: String, + pub subgroups: Option>, + pub purposes: Option>, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct Purpose { + pub name: String, + pub recommendations: Vec, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct Recommendation { + pub name: String, + pub notes: Option, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct CratesData { + pub crate_groups: Vec, +} + +pub async fn scrape_site() -> Result> { + let response = reqwest::get( + "https://raw.githubusercontent.com/nicoburns/blessed-rs/main/data/crates.json", + ) + .await? + .json::() + .await?; Ok(response) } diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 36972d0..d08fa8a 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -45,7 +45,6 @@ pub fn update(app: &mut AppView, action: Action) { Action::Tick => { app.on_tick(); } - Action::ScrollUp => app.scroll_up(), Action::ScrollDown => app.scroll_down(), Action::Quit => app.exit(), @@ -70,7 +69,8 @@ pub fn update(app: &mut AppView, action: Action) { Ok(_) => { tx.send(Action::ShowAddingDependenciesOperation).unwrap(); } - Err(e) => panic!("An Error ocurred, please report it on github: https://github.com/josueBarretogit/get_blessed_rs \n details: {e}"), + Err(e) => panic!("An Error ocurred, please report it on github: https://github.com/josueBarretogit/get_blessed_rs \n + details: {e}"), } }); } @@ -110,7 +110,7 @@ pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> Action::Tick }; - if let Err(_) = tx.send(action) { + if tx.send(action).is_err() { break; } } From 19fd53e43874768355adb91ed9c5535a5887add4 Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Fri, 24 May 2024 14:14:13 -0500 Subject: [PATCH 04/27] parsing json format to table struct --- src/content_parser/content_parser.rs | 27 +++++++++++++++++++++++++++ src/scraper/scraper.rs | 14 ++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index c27d17e..739e045 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -6,11 +6,38 @@ use crate::{ #[derive(Debug)] pub struct ContentParser { pub content: CratesData, + + general_crates: Table, + math_crates: Table, + ffi_crates: Table, + cryptography_crates: Table, + common_crates: Table, + concurrency_crates: Table, + networking_crates: Table, + database_crates: Table, + clis_crates: Table, + graphics_crates: Table, + } impl ContentParser { pub async fn new() -> Self { let page_content = scrape_site().await.unwrap(); + + let mut general_crates = Table::default(); + + page_content.crate_groups.iter().for_each(|group| { + match group.name.trim().to_lowercase().as_str() { + "common" => { + let mut general_group = group.subgroups.unwrap().iter(); + let general_table = general_group.find(|gr| gr.name.trim().to_lowercase().as_str() == "general"); + general_crates = general_table.unwrap().into(); + }, + _ => {} + + } + }); + Self { content: page_content, } diff --git a/src/scraper/scraper.rs b/src/scraper/scraper.rs index 7ade1ac..04333b4 100644 --- a/src/scraper/scraper.rs +++ b/src/scraper/scraper.rs @@ -2,6 +2,8 @@ use std::error::Error; use serde::{Deserialize, Serialize}; +use crate::backend::{Table, TableEntry}; + #[derive(Serialize, Deserialize, Debug)] pub struct Group { pub name: String, @@ -26,6 +28,18 @@ pub struct CratesData { pub crate_groups: Vec, } +impl From<&Group> for Table { + fn from(value: &Group) -> Self { + + let tableEntries : Vec = Vec::new(); + + + + + Table { entries: vec![] } + } +} + pub async fn scrape_site() -> Result> { let response = reqwest::get( "https://raw.githubusercontent.com/nicoburns/blessed-rs/main/data/crates.json", From 98ced168aa3363342b6c4709ec24509c6cd2ebb9 Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Fri, 24 May 2024 15:23:23 -0500 Subject: [PATCH 05/27] parsing categories with subcategories --- src/content_parser/content_parser.rs | 1481 ++++++++++++-------------- src/scraper/scraper.rs | 33 +- 2 files changed, 739 insertions(+), 775 deletions(-) diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index 739e045..40291b8 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -17,164 +17,61 @@ pub struct ContentParser { database_crates: Table, clis_crates: Table, graphics_crates: Table, - } impl ContentParser { pub async fn new() -> Self { let page_content = scrape_site().await.unwrap(); - + let mut general_crates = Table::default(); + let mut math_crates = Table::default(); + let mut ffi_crates = Table::default(); + let mut cryptography_crates = Table::default(); + let mut common_crates = Table::default(); + let mut concurrency_crates = Table::default(); + let mut networking_crates = Table::default(); + let mut database_crates = Table::default(); + let mut clis_crates = Table::default(); + let mut graphics_crates = Table::default(); page_content.crate_groups.iter().for_each(|group| { match group.name.trim().to_lowercase().as_str() { "common" => { - let mut general_group = group.subgroups.unwrap().iter(); - let general_table = general_group.find(|gr| gr.name.trim().to_lowercase().as_str() == "general"); + let mut general_group = group.subgroups.as_ref().unwrap().iter(); + let general_table = general_group + .find(|gr| gr.name.trim().to_lowercase().as_str() == "general"); general_crates = general_table.unwrap().into(); - }, + } + "math / scientific" => math_crates = group.into(), + "ffi / interop" => ffi_crates = group.into(), + "cryptography" => cryptography_crates = group.into(), + "networking" => networking_crates = group.into(), + "databases" => database_crates = group.into(), + "clis" => clis_crates = group.into(), + "concurrency" => concurrency_crates = group.into(), + "graphics" => graphics_crates = group.into(), _ => {} - } }); Self { content: page_content, + graphics_crates, + math_crates, + ffi_crates, + cryptography_crates, + common_crates, + concurrency_crates, + networking_crates, + database_crates, + clis_crates, + general_crates, } } //Todo! I think hashtables would be useful in this case rather than vectors pub fn get_general_crates(&self) -> Table { - let general_table : Table = Table { - entries: [ - TableEntry { - use_case: "".to_string(), - crates: [ - Crates { - name: "rand".into(), - description: "De facto standard random number generation library split out from the standard library,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".to_string(), - crates: [ - Crates { - name: "time".into(), - description: "A smaller, simpler library. Preferrable if covers your needs, but it's quite limited in what it provides.,".into(), - features : Some(vec!["macros ".into(), "formatting ".into(), "parsing ".into()]) - }, - Crates { - name: "chrono".into(), - description: "The most comprehensive and full-featured datetime library, but more complex because of it.,".into(), - features: Some(vec!["serde".into()]), - }, - ].to_vec(), - }, - TableEntry { - use_case: "".to_string(), - crates: [ - Crates { - name: "serde".into(), - description: "De facto standard serialization library. Use in conjunction with sub-crates like serde_json for the specific format that you are using.,".into(), - features : Some(vec!["derive".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".to_string(), - crates: [ - Crates { - name: "regex".into(), - description: "De facto standard regex library. Very fast, but does not support fancier features such as backtracking.,".into(), - features : None - }, - Crates { - name: "fancy-regex".into(), - description: "Use if need features such as backtracking which regex doesn't support,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "uuid".into(), - description: "Implements generating and parsing UUIDs and a number of utility functions,".into(), - features : Some(vec!["v4 ".into(), "serde ".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tempfile".into(), - description: "Supports both temporary files and temporary directories,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "flate2".into(), - description: "Uses a pure-Rust implementation by default. Use feature flags to opt in to system zlib.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "indexmap".into(), - description: "A HashMap that seperately keeps track of insertion order and allows you to efficiently iterate over its elements in that order,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "arrayvec".into(), - description: "Arrays that are ONLY stack-allocated with fixed capacity,".into(), - features : Some(vec!["serde".into()]) - }, - Crates { - name: "smallvec".into(), - description: "Arrays that are stack-allocated with fallback to the heap if the fixed stack capacity is exceeded,".into(), - features : None, - }, - Crates { - name: "tinyvec".into(), - description: "Stack allocated arrays in 100% safe Rust code but requires items to implement the Default trait.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "reqwest".into(), - description: "Full-fat HTTP client. Can be used in both synchronous and asynchronous code. Requires tokio runtime.,".into(), - features : Some(vec!["json".into()]) - }, - Crates { - name: "ureq".into(), - description: "Minimal synchronous HTTP client focussed on simplicity and minimising dependencies.,".into(), - features : Some(vec!["json ".into(), "charset ".into()]) - }, - ].to_vec(), - }, - ].to_vec(), - }; - general_table + self.general_crates.clone() } pub fn get_crates(&self, category: Categories) -> Table { @@ -185,7 +82,8 @@ impl ContentParser { crates: [ Crates { name: "num-traits".into(), - description: "Traits like Number, Add, etc that allow you write functions that are generic over the specific numeric type,".into(), + description: "Traits like Number, Add, etc that allow you write functions that are generic over the specific numeric +type,".into(), features : None }, ].to_vec(), @@ -210,7 +108,8 @@ impl ContentParser { crates: [ Crates { name: "rust_decimal".into(), - description: "The binary representation consists of a 96 bit integer number, a scaling factor used to specify the decimal fraction and a 1 bit sign.,".into(), + description: "The binary representation consists of a 96 bit integer number, a scaling factor used to specify the +decimal fraction and a 1 bit sign.,".into(), features : None }, ].to_vec(), @@ -220,7 +119,8 @@ impl ContentParser { crates: [ Crates { name: "ordered-float".into(), - description: "Float types that don't allow NaN and are therefore orderable. You can also use the,total_cmp,method from the standard library like,.sort_by(|a, b| a.total_cmp(&b)),.,".into(), + description: "Float types that don't allow NaN and are therefore orderable. You can also use the,total_cmp,method from +the standard library like,.sort_by(|a, b| a.total_cmp(&b)),.,".into(), features : None }, ].to_vec(), @@ -230,7 +130,8 @@ impl ContentParser { crates: [ Crates { name: "nalgebra".into(), - description: "General-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices. However it supports only vectors (1d) and matrices (2d) and not higher-dimensional tensors.,".into(), + description: "General-purpose linear algebra library with transformations and statically-sized or dynamically-sized +matrices. However it supports only vectors (1d) and matrices (2d) and not higher-dimensional tensors.,".into(), features : Some(vec!["serde_serialize".into()]) }, Crates { @@ -245,7 +146,8 @@ impl ContentParser { crates: [ Crates { name: "polars".into(), - description: "Similar to the Pandas library in Python but in pure Rust. Uses the Apache Arrow Columnar Format as the memory model.,".into(), + description: "Similar to the Pandas library in Python but in pure Rust. Uses the Apache Arrow Columnar Format as the +memory model.,".into(), features : None }, Crates { @@ -258,7 +160,7 @@ impl ContentParser { ].to_vec(), }; - let ff_crates = Table { + let ff_crates = Table { entries: [ TableEntry { use_case: "".into(), @@ -315,7 +217,8 @@ impl ContentParser { crates: [ Crates { name: "rutie".into(), - description: "Supports both embedding Rust into Ruby applications and embedding Ruby into Rust applications,".into(), + description: "Supports both embedding Rust into Ruby applications and embedding Ruby into Rust +applications,".into(), features : None }, ].to_vec(), @@ -335,7 +238,8 @@ impl ContentParser { crates: [ Crates { name: "jni".into(), - description: "Implement Java methods for JVM and Android in Rust. Call Java code from Rust. Embed JVM in Rust applications.,".into(), + description: "Implement Java methods for JVM and Android in Rust. Call Java code from Rust. Embed JVM in Rust +applications.,".into(), features : None }, ].to_vec(), @@ -374,164 +278,164 @@ impl ContentParser { }; let cryptography_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "argon2".into(), - description: "no description".into(), - features : Some(vec!["rand".into()]) - }, - Crates { - name: "scrypt".into(), - description: "no description".into(), - features : Some(vec!["password-hash".into()]) - }, - Crates { - name: "bcrypt".into(), - description: "no description".into(), + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "argon2".into(), + description: "no description".into(), + features : Some(vec!["rand".into()]) + }, + Crates { + name: "scrypt".into(), + description: "no description".into(), + features : Some(vec!["password-hash".into()]) + }, + Crates { + name: "bcrypt".into(), + description: "no description".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "sha2".into(), - description: "no description".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "sha2".into(), + description: "no description".into(), features : None - }, - Crates { - name: "sha1".into(), - description: "no description".into(), + }, + Crates { + name: "sha1".into(), + description: "no description".into(), features : None - }, - Crates { - name: "md-5".into(), - description: "no description".into(), + }, + Crates { + name: "md-5".into(), + description: "no description".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "aes-gcm-siv".into(), - description: "no description".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "aes-gcm-siv".into(), + description: "no description".into(), features : None - }, - Crates { - name: "aes-gcm".into(), - description: "no description".into(), + }, + Crates { + name: "aes-gcm".into(), + description: "no description".into(), features : None - }, - Crates { - name: "chacha20poly1305".into(), - description: "no description".into(), + }, + Crates { + name: "chacha20poly1305".into(), + description: "no description".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rsa".into(), - description: "no description".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "rsa".into(), + description: "no description".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "ed25519".into(), - description: "Use in conjunction with the ed25519-dalek crate.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "ed25519".into(), + description: "Use in conjunction with the ed25519-dalek crate.".into(), features : None - }, - Crates { - name: "ecdsa".into(), - description: "no description".into(), + }, + Crates { + name: "ecdsa".into(), + description: "no description".into(), features : None - }, - Crates { - name: "dsa".into(), - description: "no description".into(), + }, + Crates { + name: "dsa".into(), + description: "no description".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "der".into(), - description: "no description".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "der".into(), + description: "no description".into(), features : None - }, - Crates { - name: "pem-rfc7468".into(), - description: "no description".into(), + }, + Crates { + name: "pem-rfc7468".into(), + description: "no description".into(), features : None - }, - Crates { - name: "pkcs8".into(), - description: "no description".into(), + }, + Crates { + name: "pkcs8".into(), + description: "no description".into(), features : None - }, - Crates { - name: "x509-cert".into(), - description: "no description".into(), + }, + Crates { + name: "x509-cert".into(), + description: "no description".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rustls".into(), - description: "A portable pure-rust high-level implementation of TLS. Implements TLS 1.2 and higher.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "rustls".into(), + description: "A portable pure-rust high-level implementation of TLS. Implements TLS 1.2 and higher.".into(), features : None - }, - Crates { - name: "native-tls".into(), - description: "Delegates to the system TLS implementations on windows and macOS, and uses OpenSSL on linux.".into(), + }, + Crates { + name: "native-tls".into(), + description: "Delegates to the system TLS implementations on windows and macOS, and uses OpenSSL on linux.".into(), features : None - }, - Crates { - name: "webpki".into(), - description: "X.509 Certificate validation. Builds on top of ring.".into(), + }, + Crates { + name: "webpki".into(), + description: "X.509 Certificate validation. Builds on top of ring.".into(), features : None - }, - Crates { - name: "ring".into(), - description: "Fork of BoringSSL. Provides low-level cryptographic primitives for TLS/SSL.".into(), + }, + Crates { + name: "ring".into(), + description: "Fork of BoringSSL. Provides low-level cryptographic primitives for TLS/SSL.".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "subtle".into(), - description: "Utilities for writing constant-time algorithms.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "subtle".into(), + description: "Utilities for writing constant-time algorithms.".into(), features : None - }, - Crates { - name: "zeroize".into(), - description: "Securely erase memory.".into(), + }, + Crates { + name: "zeroize".into(), + description: "Securely erase memory.".into(), features : None + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; match category { Categories::Math => math_crates, @@ -542,643 +446,676 @@ impl ContentParser { pub fn get_crates_with_sub(&self, category: CategoriesWithSubCategories) -> Table { let cli_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "clap".into(), - description: "Ergonomic, battle-tested, includes the kitchen sink, and is fast at runtime. However compile times can be slow".into(), + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "clap".into(), + description: "Ergonomic, battle-tested, includes the kitchen sink, and is fast at runtime. However compile times can +be slow".into(), features : Some(vec!["derive".into()]) - }, - Crates { - name: "lexopt".into(), - description: "Fast compile times, fast runtime, pedantic about correctness. API is less ergonomic".into(), + }, + Crates { + name: "lexopt".into(), + description: "Fast compile times, fast runtime, pedantic about correctness. API is less ergonomic".into(), features : None - }, - Crates { - name: "pico-args".into(), - description: "Fast compile times, fast runtime, more lax about correctness. API is more ergonomic".into(), + }, + Crates { + name: "pico-args".into(), + description: "Fast compile times, fast runtime, more lax about correctness. API is more ergonomic".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "globset".into(), - description: "High-performance globbing that allows multiple globs to be evaluated at once".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "globset".into(), + description: "High-performance globbing that allows multiple globs to be evaluated at once".into(), features : None - }, - Crates { - name: "walkdir".into(), - description: "Basic recursive filesystem walking.".into(), + }, + Crates { + name: "walkdir".into(), + description: "Basic recursive filesystem walking.".into(), features : None - }, - Crates { - name: "ignore".into(), - description: "Recursive filesystem walking that respects ignore files (like .gitignore)".into(), + }, + Crates { + name: "ignore".into(), + description: "Recursive filesystem walking that respects ignore files (like .gitignore)".into(), features : None - }, - Crates { - name: "notify".into(), - description: "Watch files or directories and execute a function when they change".into(), + }, + Crates { + name: "notify".into(), + description: "Watch files or directories and execute a function when they change".into(), features : Some(vec!["serde".into()]) + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "termcolor".into(), - description: "Cross-platform terminal colour output".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "termcolor".into(), + description: "Cross-platform terminal colour output".into(), features : None - }, - Crates { - name: "indicatif".into(), - description: "Progress bars and spinners".into(), + }, + Crates { + name: "indicatif".into(), + description: "Progress bars and spinners".into(), features : None - }, - Crates { - name: "ratatui".into(), - description: "A high-level TUI library with widgets, layout, etc.".into(), + }, + Crates { + name: "ratatui".into(), + description: "A high-level TUI library with widgets, layout, etc.".into(), features : Some(vec!["all-widgets".into()]) - }, - Crates { - name: "crossterm".into(), - description: "Low-level cross-platform terminal rendering and event handling".into(), + }, + Crates { + name: "crossterm".into(), + description: "Low-level cross-platform terminal rendering and event handling".into(), features : Some(vec!["event-stream".into()]) - }, - Crates { - name: "inquire".into(), - description: "Ask for confirmation, selection, text input and more".into(), + }, + Crates { + name: "inquire".into(), + description: "Ask for confirmation, selection, text input and more".into(), features : None + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; let common_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "anyhow".into(), - description: "Provides a boxed error type that can hold any error, and helpers for generating an application-level stack trace.".into(), + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "anyhow".into(), + description: "Provides a boxed error type that can hold any error, and helpers for generating an application-level +stack trace.".into(), features : None - }, - Crates { - name: "color-eyre".into(), - description: "A fork of anyhow that gives you more control over the format of the generated error messages. Recommended if you intend to present error messages to end users. Otherwise anyhow is simpler.".into(), + }, + Crates { + name: "color-eyre".into(), + description: "A fork of anyhow that gives you more control over the format of the generated error messages. +Recommended if you intend to present error messages to end users. Otherwise anyhow is simpler.".into(), features : None - }, - Crates { - name: "thiserror".into(), - description: "Helps with generating boilerplate for enum-style error types.".into(), + }, + Crates { + name: "thiserror".into(), + description: "Helps with generating boilerplate for enum-style error types.".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tracing".into(), - description: "Tracing is now the go-to crate for logging.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "tracing".into(), + description: "Tracing is now the go-to crate for logging.".into(), features : None - }, - Crates { - name: "log".into(), - description: "An older and simpler crate if your needs are simple and you are not using any async code.".into(), + }, + Crates { + name: "log".into(), + description: "An older and simpler crate if your needs are simple and you are not using any async code.".into(), features : None - }, - Crates { - name: "tracing".into(), - description: "Tracing is now the go-to crate for logging.".into(), + }, + Crates { + name: "tracing".into(), + description: "Tracing is now the go-to crate for logging.".into(), features : None - }, - Crates { - name: "slog".into(), - description: "Structured logging".into(), + }, + Crates { + name: "slog".into(), + description: "Structured logging".into(), features : Some(vec!["max_level_trace ".into(), "release_max_level_warn ".into()]) + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "once_cell".into(), - description: "Newer crate with more ergonomic API. Should be preferred for all new projects.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "once_cell".into(), + description: "Newer crate with more ergonomic API. Should be preferred for all new projects.".into(), features : None - }, - Crates { - name: "lazy_static".into(), - description: "Older crate. API is less convenient, but crate is stable and maintained.".into(), + }, + Crates { + name: "lazy_static".into(), + description: "Older crate. API is less convenient, but crate is stable and maintained.".into(), features : None - }, - Crates { - name: "itertools".into(), - description: "A bunch of useful methods on iterators that aren't in the stdlib".into(), + }, + Crates { + name: "itertools".into(), + description: "A bunch of useful methods on iterators that aren't in the stdlib".into(), features : None - }, - Crates { - name: "syn".into(), - description: "Parse rust source code".into(), + }, + Crates { + name: "syn".into(), + description: "Parse rust source code".into(), features : Some(vec!["full".into()]) - }, - Crates { - name: "quote".into(), - description: "Quasi quoting rust (useful for interpolating generated code with literal code)".into(), + }, + Crates { + name: "quote".into(), + description: "Quasi quoting rust (useful for interpolating generated code with literal code)".into(), features : None - }, - Crates { - name: "paste".into(), - description: "Concatenating and manipulating identifiers".into(), + }, + Crates { + name: "paste".into(), + description: "Concatenating and manipulating identifiers".into(), features : None - }, - Crates { - name: "bytemuck".into(), - description: "no description".into(), + }, + Crates { + name: "bytemuck".into(), + description: "no description".into(), features : Some(vec!["derive".into()]) - }, - Crates { - name: "zerocopy".into(), - description: "no description".into(), + }, + Crates { + name: "zerocopy".into(), + description: "no description".into(), features : None - }, - Crates { - name: "bitflags".into(), - description: "Strongly typed bitflag types".into(), + }, + Crates { + name: "bitflags".into(), + description: "Strongly typed bitflag types".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "memmap2".into(), - description: "The older memmap crate is unmaintained.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "memmap2".into(), + description: "The older memmap crate is unmaintained.".into(), features : None - }, - Crates { - name: "libc".into(), - description: "Bindings for directly calling libc functions.".into(), + }, + Crates { + name: "libc".into(), + description: "Bindings for directly calling libc functions.".into(), features : None - }, - Crates { - name: "windows".into(), - description: "The official Microsoft-provided crate for interacting with windows APIs".into(), + }, + Crates { + name: "windows".into(), + description: "The official Microsoft-provided crate for interacting with windows APIs".into(), features : Some(vec![ -"Data_Xml_Dom".into(), - "Win32_Foundation".into(), - "Win32_Security".into(), - "Win32_System_Threading".into(), - "Win32_UI_WindowsAndMessaging".into(), + "Data_Xml_Dom".into(), + "Win32_Foundation".into(), + "Win32_Security".into(), + "Win32_System_Threading".into(), + "Win32_UI_WindowsAndMessaging".into(), ]) - }, - Crates { - name: "winapi".into(), - description: "Older binding to the windows APIs. Unofficial, but more complete than windows-rs".into(), + }, + Crates { + name: "winapi".into(), + description: "Older binding to the windows APIs. Unofficial, but more complete than windows-rs".into(), features : None - }, - Crates { - name: "nix".into(), - description: "Bindings to the various *nix system functions. (Unix, Linux, MacOS, etc.)".into(), + }, + Crates { + name: "nix".into(), + description: "Bindings to the various *nix system functions. (Unix, Linux, MacOS, etc.)".into(), features : None + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; - let graphics_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "gtk4".into(), - description: "Rust bindings to GTK4. These are quite well supported, although you'll often need to use the C documentation.".into(), + let graphics_crates = Table { + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "gtk4".into(), + description: "Rust bindings to GTK4. These are quite well supported, although you'll often need to use the C +documentation.".into(), features : Some(vec!["v4_2".into()]) - }, - Crates { - name: "relm4".into(), - description: "A higher-level library that sits on top of gtk4-rs".into(), + }, + Crates { + name: "relm4".into(), + description: "A higher-level library that sits on top of gtk4-rs".into(), features : None - }, - Crates { - name: "tauri".into(), - description: "Electron-like web-based UI. Except it uses system webviews rather than shipping chromium, and non-UI code is written in Rust rather than node.js".into(), + }, + Crates { + name: "tauri".into(), + description: "Electron-like web-based UI. Except it uses system webviews rather than shipping chromium, and non-UI +code is written in Rust rather than node.js".into(), features : None - }, - Crates { - name: "dioxus".into(), - description: "A very nice API layer that has Tauri, Web, and TUI renderers. A native renderer is coming soon.".into(), + }, + Crates { + name: "dioxus".into(), + description: "A very nice API layer that has Tauri, Web, and TUI renderers. A native renderer is coming +soon.".into(), features : Some(vec!["fullstack".into()]) - }, - Crates { - name: "egui".into(), - description: "Immediate-mode UI. Lots of widgets. The most useable out of the box if your needs are simple and you don't need to customise of the look and feel".into(), + }, + Crates { + name: "egui".into(), + description: "Immediate-mode UI. Lots of widgets. The most useable out of the box if your needs are simple and you +don't need to customise of the look and feel".into(), features : None - }, - Crates { - name: "iced".into(), - description: "Retained mode UI with a nice API. It's useable for basic apps, but has a number of missing features including multiple windows, layers, and proper text rendering.".into(), + }, + Crates { + name: "iced".into(), + description: "Retained mode UI with a nice API. It's useable for basic apps, but has a number of missing features +including multiple windows, layers, and proper text rendering.".into(), features : None - }, - Crates { - name: "floem".into(), - description: "Inspired by Xilem, Leptos and rui, floem is currently more complete than any of them for native UI. Used by the Lapce text editor.".into(), + }, + Crates { + name: "floem".into(), + description: "Inspired by Xilem, Leptos and rui, floem is currently more complete than any of them for native UI. +Used by the Lapce text editor.".into(), features : None - }, - Crates { - name: "vizia".into(), - description: "Fairly complete with sophisticated layout and text layout, but has yet to make a stable release.".into(), + }, + Crates { + name: "vizia".into(), + description: "Fairly complete with sophisticated layout and text layout, but has yet to make a stable +release.".into(), features : None - }, - Crates { - name: "winit".into(), - description: "The defacto standard option. Uses an event loop based architecture. Widely used and should probably be the default choice.".into(), + }, + Crates { + name: "winit".into(), + description: "The defacto standard option. Uses an event loop based architecture. Widely used and should probably be +the default choice.".into(), features : None - }, - Crates { - name: "tao".into(), - description: "A fork of winit by the Tauri project which adds support for things like system menus that desktop apps need.".into(), + }, + Crates { + name: "tao".into(), + description: "A fork of winit by the Tauri project which adds support for things like system menus that desktop apps +need.".into(), features : None - }, - Crates { - name: "glazier".into(), - description: "A new competitor to winit based on the old druid-shell. Has a callback that may be better than the event loop architecture for some tasks. Doesn't yet have a stable release.".into(), + }, + Crates { + name: "glazier".into(), + description: "A new competitor to winit based on the old druid-shell. Has a callback that may be better than the +event loop architecture for some tasks. Doesn't yet have a stable release.".into(), features : None - }, - Crates { - name: "baseview".into(), - description: "Specialized window creation library targetting windows to be embedded in other applications (e.g. DAW plugins)".into(), + }, + Crates { + name: "baseview".into(), + description: "Specialized window creation library targetting windows to be embedded in other applications (e.g. DAW +plugins)".into(), features : None - }, - Crates { - name: "femtovg".into(), - description: "OpenGL based. Offers a simple API. Probably the easiest to get started with.".into(), + }, + Crates { + name: "femtovg".into(), + description: "OpenGL based. Offers a simple API. Probably the easiest to get started with.".into(), features : Some(vec!["serde".into()]) - }, - Crates { - name: "skia-safe".into(), - description: "Bindings to the Skia C++ library. The most complete option with excellent performance. However, it can be difficult to get it to compile.".into(), + }, + Crates { + name: "skia-safe".into(), + description: "Bindings to the Skia C++ library. The most complete option with excellent performance. However, it can +be difficult to get it to compile.".into(), features : None - }, - Crates { - name: "vello".into(), - description: "WGPU based and uses cutting edge techniques to render vector paths using the GPU. Still somewhat immature and hasn't yet put out a stable release.".into(), + }, + Crates { + name: "vello".into(), + description: "WGPU based and uses cutting edge techniques to render vector paths using the GPU. Still somewhat +immature and hasn't yet put out a stable release.".into(), features : None - }, - Crates { - name: "vger".into(), - description: "A simpler WGPU based option which is less innovative but currently more stable than vello.".into(), + }, + Crates { + name: "vger".into(), + description: "A simpler WGPU based option which is less innovative but currently more stable than vello.".into(), features : None - }, - Crates { - name: "webrender".into(), - description: "OpenGL based. Mature with production usage in Firefox but documentation and OSS maintenance are lacking.".into(), + }, + Crates { + name: "webrender".into(), + description: "OpenGL based. Mature with production usage in Firefox but documentation and OSS maintenance are +lacking.".into(), features : None - }, - Crates { - name: "taffy".into(), - description: "Supports Flexbox and CSS Grid algorithms.".into(), + }, + Crates { + name: "taffy".into(), + description: "Supports Flexbox and CSS Grid algorithms.".into(), features : Some(vec!["serde".into(), "flexbox".into()]) - }, - Crates { - name: "morphorm".into(), - description: "Implements it's own layout algorithm based on Subform layout".into(), + }, + Crates { + name: "morphorm".into(), + description: "Implements it's own layout algorithm based on Subform layout".into(), features : None - }, - Crates { - name: "cosmic-text".into(), - description: "Full text layout including rich text and support for BiDi and non-latin scripts. The best option for now.".into(), + }, + Crates { + name: "cosmic-text".into(), + description: "Full text layout including rich text and support for BiDi and non-latin scripts. The best option for +now.".into(), features : None - }, - Crates { - name: "parley".into(), - description: "Another very accomplished text layout library used by Druid/Xilem.".into(), + }, + Crates { + name: "parley".into(), + description: "Another very accomplished text layout library used by Druid/Xilem.".into(), features : None - }, - Crates { - name: "accesskit".into(), - description: "Allows you to export a semantic tree representing your UI to make accessible to screen readers and other assistive technologies".into(), + }, + Crates { + name: "accesskit".into(), + description: "Allows you to export a semantic tree representing your UI to make accessible to screen readers and +other assistive technologies".into(), features : None - }, - Crates { - name: "arboard".into(), - description: "A fork of rust-clipboard that supports copy and pasting of both text and images on Linux (X11/Wayland), MacOS and Windows.".into(), + }, + Crates { + name: "arboard".into(), + description: "A fork of rust-clipboard that supports copy and pasting of both text and images on Linux +(X11/Wayland), MacOS and Windows.".into(), features : None - }, - Crates { - name: "rfd".into(), - description: "Platform-native open/save file dialogs. Can be used in conjunction with other UI libraries.".into(), + }, + Crates { + name: "rfd".into(), + description: "Platform-native open/save file dialogs. Can be used in conjunction with other UI libraries.".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "bevy".into(), - description: "An ECS based game engine, good for 3D but also capable of 2D.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "bevy".into(), + description: "An ECS based game engine, good for 3D but also capable of 2D.".into(), features : None - }, - Crates { - name: "fyrox".into(), - description: "An OOP-focused game engine with 3D and 2D support and a full GUI scene editor.".into(), + }, + Crates { + name: "fyrox".into(), + description: "An OOP-focused game engine with 3D and 2D support and a full GUI scene editor.".into(), features : None - }, - Crates { - name: "ggez".into(), - description: "A simpler option for 2d games only.".into(), + }, + Crates { + name: "ggez".into(), + description: "A simpler option for 2d games only.".into(), features : None - }, - Crates { - name: "macroquad".into(), - description: "A simple and easy to use 2d game library, great for beginners.".into(), + }, + Crates { + name: "macroquad".into(), + description: "A simple and easy to use 2d game library, great for beginners.".into(), features : None - }, - Crates { - name: "glam".into(), - description: "Fast math library optimised for game development use cases".into(), + }, + Crates { + name: "glam".into(), + description: "Fast math library optimised for game development use cases".into(), features : None + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; let database_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "sqlx".into(), - description: "Works with Postgres, MySQL, SQLite, and MS SQL.Supports compile time checking of queries. Async: supports both tokio and async-std.".into(), - features : Some(vec!["runtime-tokio".into(), "tls-native-tls".into(), "macros".into(), "chrono".into(), "mysql".into()]) - }, - Crates { - name: "diesel".into(), - description: "Has excellent performance and takes an approach of strict compile time guarantees. The main crate is Sync only, but diesel-async provides an async connection implementation.".into(), + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "sqlx".into(), + description: "Works with Postgres, MySQL, SQLite, and MS SQL.Supports compile time checking of queries. Async: +supports both tokio and async-std.".into(), + features : Some(vec!["runtime-tokio".into(), "tls-native-tls".into(), "macros".into(), "chrono".into(), + "mysql".into()]) + }, + Crates { + name: "diesel".into(), + description: "Has excellent performance and takes an approach of strict compile time guarantees. The main crate is +Sync only, but diesel-async provides an async connection implementation.".into(), features : Some(vec!["mysql".into()]) - }, - Crates { - name: "sea-orm".into(), - description: "Built on top of sqlx (see above). There is also a related sea-query crate that provides a query builder without full ORM functionality.".into(), + }, + Crates { + name: "sea-orm".into(), + description: "Built on top of sqlx (see above). There is also a related sea-query crate that provides a query +builder without full ORM functionality.".into(), features : None - }, - Crates { - name: "tokio-postgres".into(), - description: "Postgres-specific library. Performs better than SQLx".into(), + }, + Crates { + name: "tokio-postgres".into(), + description: "Postgres-specific library. Performs better than SQLx".into(), features : None - }, - Crates { - name: "mysql_async".into(), - description: "Has a poorly designed API. Prefer SQLx or Diesel for MySQL".into(), + }, + Crates { + name: "mysql_async".into(), + description: "Has a poorly designed API. Prefer SQLx or Diesel for MySQL".into(), features : Some(vec!["derive".into()]) - }, - Crates { - name: "rusqlite".into(), - description: "Provides a sync API to SQLite + provides access to advanced sqlite features.".into(), + }, + Crates { + name: "rusqlite".into(), + description: "Provides a sync API to SQLite + provides access to advanced sqlite features.".into(), features : Some(vec!["bundled".into()]) - }, - Crates { - name: "tiberius".into(), - description: "MS SQL specific library. Has better support for advanced column types than SQLx.".into(), + }, + Crates { + name: "tiberius".into(), + description: "MS SQL specific library. Has better support for advanced column types than SQLx.".into(), features : Some(vec!["chrono".into(), "rustls".into()]) - }, - Crates { - name: "diesel-oci".into(), - description: "Diesel backend and connection implementation for oracle databases".into(), + }, + Crates { + name: "diesel-oci".into(), + description: "Diesel backend and connection implementation for oracle databases".into(), features : None - }, - Crates { - name: "oracle".into(), - description: "Rust bindings to ODPI-C".into(), + }, + Crates { + name: "oracle".into(), + description: "Rust bindings to ODPI-C".into(), features : Some(vec!["chrono".into(), ]) + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "redis".into(), - description: "no description ".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "redis".into(), + description: "no description ".into(), features : None - }, - Crates { - name: "mongodb".into(), - description: "no description ".into(), + }, + Crates { + name: "mongodb".into(), + description: "no description ".into(), features : Some(vec!["async-std-runtime".into()]) - }, - Crates { - name: "elasticsearch".into(), - description: "no description ".into(), + }, + Crates { + name: "elasticsearch".into(), + description: "no description ".into(), features : None - }, - Crates { - name: "rocksdb".into(), - description: "no description ".into(), + }, + Crates { + name: "rocksdb".into(), + description: "no description ".into(), features : None - }, - Crates { - name: "cassandra-protocol".into(), - description: "Low-level Cassandra protocol implementation.".into(), + }, + Crates { + name: "cassandra-protocol".into(), + description: "Low-level Cassandra protocol implementation.".into(), features : None - }, - Crates { - name: "cdrs-tokio".into(), - description: "High-level async Cassandra driver.".into(), + }, + Crates { + name: "cdrs-tokio".into(), + description: "High-level async Cassandra driver.".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "deadpool".into(), - description: "A dead simple async pool for connections and objects of any type.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "deadpool".into(), + description: "A dead simple async pool for connections and objects of any type.".into(), features : Some(vec!["serde".into()]) + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; - let networking_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tokio".into(), - description: "The oldest async runtime in the Rust ecosystem and still the most widely supported. Recommended for new projects.".into(), + let networking_crates = Table { + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "tokio".into(), + description: "The oldest async runtime in the Rust ecosystem and still the most widely supported. Recommended for +new projects.".into(), features : Some(vec!["full".into()]) - }, - Crates { - name: "futures-executor".into(), - description: "A minimal executor. In particular, the block_on function is useful if you want to run an async function synchronously in codebase that is mostly synchronous.".into(), + }, + Crates { + name: "futures-executor".into(), + description: "A minimal executor. In particular, the block_on function is useful if you want to run an async +function synchronously in codebase that is mostly synchronous.".into(), features : None - }, - Crates { - name: "futures".into(), - description: "Utility functions for working with Futures and Streams".into(), + }, + Crates { + name: "futures".into(), + description: "Utility functions for working with Futures and Streams".into(), features : None - }, - Crates { - name: "async-trait".into(), - description: "Provides a workaround for the lack of language support for async functions in traits".into(), + }, + Crates { + name: "async-trait".into(), + description: "Provides a workaround for the lack of language support for async functions in traits".into(), features : None - }, - Crates { - name: "glommio".into(), - description: "Use if you need io_uring support. Still somewhat experimental but rapidly maturing.".into(), + }, + Crates { + name: "glommio".into(), + description: "Use if you need io_uring support. Still somewhat experimental but rapidly maturing.".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "http".into(), - description: "The `http` crate doesn't actually contain an HTTP implementation. Just types and interfaces to help interoperability.".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "http".into(), + description: "The `http` crate doesn't actually contain an HTTP implementation. Just types and interfaces to help +interoperability.".into(), features : None - }, - Crates { - name: "hyper".into(), - description: "A low-level HTTP implementation (both client and server). Implements HTTP/1, and HTTP/2. Works best with the tokio async runtime, but can support other runtimes.".into(), + }, + Crates { + name: "hyper".into(), + description: "A low-level HTTP implementation (both client and server). Implements HTTP/1, and HTTP/2. Works best +with the tokio async runtime, but can support other runtimes.".into(), features : None - }, - Crates { - name: "reqwest".into(), - description: "Full-fat HTTP client. Can be used in both synchronous and asynchronous code. Requires tokio runtime.".into(), + }, + Crates { + name: "reqwest".into(), + description: "Full-fat HTTP client. Can be used in both synchronous and asynchronous code. Requires tokio +runtime.".into(), features : Some(vec!["json".into()]) - }, - Crates { - name: "ureq".into(), - description: "Minimal synchronous HTTP client focussed on simplicity and minimising dependencies.".into(), + }, + Crates { + name: "ureq".into(), + description: "Minimal synchronous HTTP client focussed on simplicity and minimising dependencies.".into(), features : Some(vec!["json".into()]) - }, - Crates { - name: "axum".into(), - description: "A minimal and ergonomic framework. An official part of the tokio project. Recommend for most new projects.".into(), + }, + Crates { + name: "axum".into(), + description: "A minimal and ergonomic framework. An official part of the tokio project. Recommend for most new +projects.".into(), features : Some(vec!["multipart".into(),]) - }, - Crates { - name: "actix-web".into(), - description: "A performance focussed framework. All Rust frameworks are fast, but choose actix-web if you need the absolutely maximum performance.".into(), + }, + Crates { + name: "actix-web".into(), + description: "A performance focussed framework. All Rust frameworks are fast, but choose actix-web if you need the +absolutely maximum performance.".into(), features : None - }, - Crates { - name: "async-graphql".into(), - description: "A high-performance graphql server library that's fully specification compliant. Integrates with actix-web, axum, poem, rocket, tide, warp.".into(), + }, + Crates { + name: "async-graphql".into(), + description: "A high-performance graphql server library that's fully specification compliant. Integrates with +actix-web, axum, poem, rocket, tide, warp.".into(), features : Some(vec!["chrono".into()]) + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tungstenite".into(), - description: "Low-level crate that others build on".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "tungstenite".into(), + description: "Low-level crate that others build on".into(), features : None - }, - Crates { - name: "tokio-tungstenite".into(), - description: "If you are using the tokio executor".into(), + }, + Crates { + name: "tokio-tungstenite".into(), + description: "If you are using the tokio executor".into(), features : None - }, - Crates { - name: "async-tungstenite".into(), - description: "If you are using the async-std executor".into(), + }, + Crates { + name: "async-tungstenite".into(), + description: "If you are using the async-std executor".into(), features : None + }, + ].to_vec(), }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tonic".into(), - description: "gRPC over HTTP/2 with full support for asynchronous code. Works with tokio".into(), + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "tonic".into(), + description: "gRPC over HTTP/2 with full support for asynchronous code. Works with tokio".into(), features : None + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; let concurrency_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "parking_lot".into(), - description: "std::sync::Mutex also works fine. But Parking Lot is faster.".into(), + entries: [ + TableEntry { + use_case: "".into(), + crates: [ + Crates { + name: "parking_lot".into(), + description: "std::sync::Mutex also works fine. But Parking Lot is faster.".into(), features : None - }, - Crates { - name: "arc-swap".into(), - description: "Useful for sharing data that has many readers but few writers".into(), + }, + Crates { + name: "arc-swap".into(), + description: "Useful for sharing data that has many readers but few writers".into(), features : None - }, - Crates { - name: "dashmap".into(), - description: "The fastest for general purpose workloads".into(), + }, + Crates { + name: "dashmap".into(), + description: "The fastest for general purpose workloads".into(), features : Some(vec!["serde ".into(), "rayon ".into()]) - }, - Crates { - name: "flurry".into(), - description: "Particularly good for read-heavy workloads.".into(), + }, + Crates { + name: "flurry".into(), + description: "Particularly good for read-heavy workloads.".into(), features : None - }, - Crates { - name: "crossbeam-channel".into(), - description: "The absolute fastest channel implementation available. Implements Go-like 'select' feature.".into(), + }, + Crates { + name: "crossbeam-channel".into(), + description: "The absolute fastest channel implementation available. Implements Go-like 'select' feature.".into(), features : None - }, - Crates { - name: "flume".into(), - description: "Smaller and simpler than crossbeam-channel and almost as fast".into(), + }, + Crates { + name: "flume".into(), + description: "Smaller and simpler than crossbeam-channel and almost as fast".into(), features : None - }, - Crates { - name: "tokio".into(), - description: "Tokio's sync module provides channels for using in async code".into(), + }, + Crates { + name: "tokio".into(), + description: "Tokio's sync module provides channels for using in async code".into(), features : Some(vec!["full".into()]) - }, - Crates { - name: "postage".into(), - description: "Channels that integrate nicely with async code, with different options than Tokio".into(), + }, + Crates { + name: "postage".into(), + description: "Channels that integrate nicely with async code, with different options than Tokio".into(), features : None - }, - Crates { - name: "rayon".into(), - description: "Convert sequential computation into parallel computation with one call - `par_iter` instead of `iter`".into(), + }, + Crates { + name: "rayon".into(), + description: "Convert sequential computation into parallel computation with one call - `par_iter` instead of +`iter`".into(), features : None + }, + ].to_vec(), }, ].to_vec(), - }, - ].to_vec(), -}; + }; match category { CategoriesWithSubCategories::Clis => cli_crates, diff --git a/src/scraper/scraper.rs b/src/scraper/scraper.rs index 04333b4..5539409 100644 --- a/src/scraper/scraper.rs +++ b/src/scraper/scraper.rs @@ -2,7 +2,7 @@ use std::error::Error; use serde::{Deserialize, Serialize}; -use crate::backend::{Table, TableEntry}; +use crate::backend::{Crates, Table, TableEntry}; #[derive(Serialize, Deserialize, Debug)] pub struct Group { @@ -30,13 +30,40 @@ pub struct CratesData { impl From<&Group> for Table { fn from(value: &Group) -> Self { + let mut entries: Vec = Vec::new(); - let tableEntries : Vec = Vec::new(); + if let Some(subgroups) = &value.subgroups { + for subgroup in subgroups { + let mut crates: Vec = Vec::new(); + if let Some(purposes) = &subgroup.purposes { + for purpose in purposes { + purpose.recommendations.iter().for_each(|recommendation| { + crates.push(Crates { + name: recommendation.name.clone(), + description: recommendation + .notes + .clone() + .unwrap_or("No description".to_string()), + features: None, + }); + }); + } + } + entries.push(TableEntry { + use_case: String::default(), + crates, + }); + } + } else if let Some(purposes) = &value.purposes { + for purpose in purposes { + let mut crates : Vec = Vec::new(); + } + } - Table { entries: vec![] } + Table { entries } } } From 6a28f600ccaeeff5be3a91635eb2caba6c45e4eb Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Fri, 24 May 2024 23:13:37 -0500 Subject: [PATCH 06/27] content parser working as expected --- src/backend.rs | 16 +- src/content_parser.rs | 58 ++ src/content_parser/content_parser.rs | 1075 +------------------------- src/main.rs | 2 + src/scraper/scraper.rs | 37 - src/view/ui.rs | 55 +- 6 files changed, 121 insertions(+), 1122 deletions(-) diff --git a/src/backend.rs b/src/backend.rs index b49ff6e..7556f83 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -22,19 +22,19 @@ pub struct Table { pub entries: Vec, } -impl Into> for crate::backend::Table { - fn into(self) -> Vec { +impl From for Vec { + fn from(val: crate::backend::Table) -> Self { let mut items: Vec = vec![]; - self.entries.iter().for_each(|entr| { + val.entries.iter().for_each(|entr| { entr.crates.iter().for_each(|cr| { items.push(CrateItemList::new( - cr.name.to_owned(), - cr.description.to_owned(), + cr.name.clone(), + cr.description.clone(), ItemListStatus::default(), - cr.features.to_owned(), - )) - }) + cr.features.clone(), + )); + }); }); items diff --git a/src/content_parser.rs b/src/content_parser.rs index 5355b30..cf7833a 100644 --- a/src/content_parser.rs +++ b/src/content_parser.rs @@ -1,5 +1,63 @@ +use crate::backend::{Crates, Table, TableEntry}; +use crate::scraper::scraper::Group; + pub mod content_parser; +impl From<&Group> for Table { + fn from(value: &Group) -> Self { + let mut entries: Vec = Vec::new(); + + if let Some(purposes) = &value.purposes { + + for purpose in purposes { + let mut crates : Vec = Vec::new(); + + for recommendation in &purpose.recommendations { + + crates.push(Crates { name: + recommendation.name.clone(), + description: recommendation.notes.clone().unwrap_or("No description".to_string()), + features: None + }); + } + + entries.push( + TableEntry { use_case: String::default(), crates } + ); + + } + + return Table { entries } + }; + + if let Some(subgroups) = &value.subgroups { + for subgroup in subgroups { + let mut crates: Vec = Vec::new(); + if let Some(purposes) = &subgroup.purposes { + for purpose in purposes { + purpose.recommendations.iter().for_each(|recommendation| { + crates.push(Crates { + name: recommendation.name.clone(), + description: recommendation + .notes + .clone() + .unwrap_or("No description".to_string()), + features: None, + }); + }); + } + } + entries.push(TableEntry { + use_case: String::default(), + crates, + }); + } + }; + Table { entries } + } +} + + #[cfg(test)] mod test { diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index 40291b8..c66ee19 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -1,5 +1,5 @@ use crate::{ - backend::{Categories, CategoriesWithSubCategories, Crates, Table, TableEntry}, + backend::{Categories, CategoriesWithSubCategories, Table, }, scraper::scraper::{scrape_site, CratesData}, }; @@ -37,10 +37,17 @@ impl ContentParser { page_content.crate_groups.iter().for_each(|group| { match group.name.trim().to_lowercase().as_str() { "common" => { - let mut general_group = group.subgroups.as_ref().unwrap().iter(); - let general_table = general_group - .find(|gr| gr.name.trim().to_lowercase().as_str() == "general"); - general_crates = general_table.unwrap().into(); + //extract general table + //the rest collect belongs to common crates , ignoring general + let mut common_table : Table = group.into(); + + let mut general_table = group.subgroups.as_ref().unwrap().iter(); + + general_crates = general_table.find(|sub| sub.name.trim().to_lowercase() == "general").unwrap().into(); + + common_crates = common_table; + + } "math / scientific" => math_crates = group.into(), "ffi / interop" => ffi_crates = group.into(), @@ -69,1061 +76,27 @@ impl ContentParser { } } - //Todo! I think hashtables would be useful in this case rather than vectors pub fn get_general_crates(&self) -> Table { self.general_crates.clone() } - pub fn get_crates(&self, category: Categories) -> Table { - let math_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "num-traits".into(), - description: "Traits like Number, Add, etc that allow you write functions that are generic over the specific numeric -type,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "num-bigint".into(), - description: "It's not the fastest, but it's part of the trusted num library.,".into(), - features : Some(vec!["rand".into()]) - }, - Crates { - name: "rug".into(), - description: "LGPL licensed. Wrapper for GMP. Much faster than num-bigint.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rust_decimal".into(), - description: "The binary representation consists of a 96 bit integer number, a scaling factor used to specify the -decimal fraction and a 1 bit sign.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "ordered-float".into(), - description: "Float types that don't allow NaN and are therefore orderable. You can also use the,total_cmp,method from -the standard library like,.sort_by(|a, b| a.total_cmp(&b)),.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "nalgebra".into(), - description: "General-purpose linear algebra library with transformations and statically-sized or dynamically-sized -matrices. However it supports only vectors (1d) and matrices (2d) and not higher-dimensional tensors.,".into(), - features : Some(vec!["serde_serialize".into()]) - }, - Crates { - name: "ndarray".into(), - description: "Less featureful than nalgebra but supports arbitrarily dimensioned arrays,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "polars".into(), - description: "Similar to the Pandas library in Python but in pure Rust. Uses the Apache Arrow Columnar Format as the -memory model.,".into(), - features : None - }, - Crates { - name: "datafusion".into(), - description: "Apache DataFusion,is an in-memory query engine that uses Apache Arrow as the memory model,".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let ff_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "bindgen".into(), - description: "Generate Rust bindings to C libraries,".into(), - features : None - }, - Crates { - name: "cbindgen".into(), - description: "Generate C bindings to Rust libraries,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "cxx".into(), - description: "Safe C++ <-> Rust interop by generating code for both sides.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "pyo3".into(), - description: "Supports both calling python code from Rust and exposing Rust code to Python,".into(), - features : Some(vec!["extension-module".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "napi".into(), - description: "is a framework for building pre-compiled Node.js addons in Rust.,".into(), - features : None, - }, - Crates { - name: "neon".into(), - description: "Slower than napi, but also widely used and well-maintained,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rutie".into(), - description: "Supports both embedding Rust into Ruby applications and embedding Ruby into Rust -applications,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "objc".into(), - description: "Interop with the Objective-C runtime,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "jni".into(), - description: "Implement Java methods for JVM and Android in Rust. Call Java code from Rust. Embed JVM in Rust -applications.,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "mlua".into(), - description: "Bindings to Lua 5.4, 5.3, 5.2, 5.1 (including LuaJIT),".into(), - features : Some(vec!["lua54 ".into(), "vendored ".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "flutter_rust_bridge".into(), - description: "Works with Dart with or without Flutter,".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rustler".into(), - description: "Safe Rust bridge for creating Erlang NIF functions,".into(), - features : Some(vec!["nif_version_2_16".into()]) - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let cryptography_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "argon2".into(), - description: "no description".into(), - features : Some(vec!["rand".into()]) - }, - Crates { - name: "scrypt".into(), - description: "no description".into(), - features : Some(vec!["password-hash".into()]) - }, - Crates { - name: "bcrypt".into(), - description: "no description".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "sha2".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "sha1".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "md-5".into(), - description: "no description".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "aes-gcm-siv".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "aes-gcm".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "chacha20poly1305".into(), - description: "no description".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rsa".into(), - description: "no description".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "ed25519".into(), - description: "Use in conjunction with the ed25519-dalek crate.".into(), - features : None - }, - Crates { - name: "ecdsa".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "dsa".into(), - description: "no description".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "der".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "pem-rfc7468".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "pkcs8".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "x509-cert".into(), - description: "no description".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "rustls".into(), - description: "A portable pure-rust high-level implementation of TLS. Implements TLS 1.2 and higher.".into(), - features : None - }, - Crates { - name: "native-tls".into(), - description: "Delegates to the system TLS implementations on windows and macOS, and uses OpenSSL on linux.".into(), - features : None - }, - Crates { - name: "webpki".into(), - description: "X.509 Certificate validation. Builds on top of ring.".into(), - features : None - }, - Crates { - name: "ring".into(), - description: "Fork of BoringSSL. Provides low-level cryptographic primitives for TLS/SSL.".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "subtle".into(), - description: "Utilities for writing constant-time algorithms.".into(), - features : None - }, - Crates { - name: "zeroize".into(), - description: "Securely erase memory.".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - + pub fn get_crates(&self, category: &Categories) -> Table { match category { - Categories::Math => math_crates, - Categories::FFI => ff_crates, - Categories::Cryptography => cryptography_crates, + Categories::FFI => self.ffi_crates.clone(), + Categories::Math => self.math_crates.clone(), + Categories::Cryptography => self.cryptography_crates.clone(), } } - pub fn get_crates_with_sub(&self, category: CategoriesWithSubCategories) -> Table { - let cli_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "clap".into(), - description: "Ergonomic, battle-tested, includes the kitchen sink, and is fast at runtime. However compile times can -be slow".into(), - features : Some(vec!["derive".into()]) - }, - Crates { - name: "lexopt".into(), - description: "Fast compile times, fast runtime, pedantic about correctness. API is less ergonomic".into(), - features : None - }, - Crates { - name: "pico-args".into(), - description: "Fast compile times, fast runtime, more lax about correctness. API is more ergonomic".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "globset".into(), - description: "High-performance globbing that allows multiple globs to be evaluated at once".into(), - features : None - }, - Crates { - name: "walkdir".into(), - description: "Basic recursive filesystem walking.".into(), - features : None - }, - Crates { - name: "ignore".into(), - description: "Recursive filesystem walking that respects ignore files (like .gitignore)".into(), - features : None - }, - Crates { - name: "notify".into(), - description: "Watch files or directories and execute a function when they change".into(), - features : Some(vec!["serde".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "termcolor".into(), - description: "Cross-platform terminal colour output".into(), - features : None - }, - Crates { - name: "indicatif".into(), - description: "Progress bars and spinners".into(), - features : None - }, - Crates { - name: "ratatui".into(), - description: "A high-level TUI library with widgets, layout, etc.".into(), - features : Some(vec!["all-widgets".into()]) - }, - Crates { - name: "crossterm".into(), - description: "Low-level cross-platform terminal rendering and event handling".into(), - features : Some(vec!["event-stream".into()]) - }, - Crates { - name: "inquire".into(), - description: "Ask for confirmation, selection, text input and more".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let common_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "anyhow".into(), - description: "Provides a boxed error type that can hold any error, and helpers for generating an application-level -stack trace.".into(), - features : None - }, - Crates { - name: "color-eyre".into(), - description: "A fork of anyhow that gives you more control over the format of the generated error messages. -Recommended if you intend to present error messages to end users. Otherwise anyhow is simpler.".into(), - features : None - }, - Crates { - name: "thiserror".into(), - description: "Helps with generating boilerplate for enum-style error types.".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tracing".into(), - description: "Tracing is now the go-to crate for logging.".into(), - features : None - }, - Crates { - name: "log".into(), - description: "An older and simpler crate if your needs are simple and you are not using any async code.".into(), - features : None - }, - Crates { - name: "tracing".into(), - description: "Tracing is now the go-to crate for logging.".into(), - features : None - }, - Crates { - name: "slog".into(), - description: "Structured logging".into(), - features : Some(vec!["max_level_trace ".into(), "release_max_level_warn ".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "once_cell".into(), - description: "Newer crate with more ergonomic API. Should be preferred for all new projects.".into(), - features : None - }, - Crates { - name: "lazy_static".into(), - description: "Older crate. API is less convenient, but crate is stable and maintained.".into(), - features : None - }, - Crates { - name: "itertools".into(), - description: "A bunch of useful methods on iterators that aren't in the stdlib".into(), - features : None - }, - Crates { - name: "syn".into(), - description: "Parse rust source code".into(), - features : Some(vec!["full".into()]) - }, - Crates { - name: "quote".into(), - description: "Quasi quoting rust (useful for interpolating generated code with literal code)".into(), - features : None - }, - Crates { - name: "paste".into(), - description: "Concatenating and manipulating identifiers".into(), - features : None - }, - Crates { - name: "bytemuck".into(), - description: "no description".into(), - features : Some(vec!["derive".into()]) - }, - Crates { - name: "zerocopy".into(), - description: "no description".into(), - features : None - }, - Crates { - name: "bitflags".into(), - description: "Strongly typed bitflag types".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "memmap2".into(), - description: "The older memmap crate is unmaintained.".into(), - features : None - }, - Crates { - name: "libc".into(), - description: "Bindings for directly calling libc functions.".into(), - features : None - }, - Crates { - name: "windows".into(), - description: "The official Microsoft-provided crate for interacting with windows APIs".into(), - features : Some(vec![ - - "Data_Xml_Dom".into(), - "Win32_Foundation".into(), - "Win32_Security".into(), - "Win32_System_Threading".into(), - "Win32_UI_WindowsAndMessaging".into(), - - - ]) - }, - Crates { - name: "winapi".into(), - description: "Older binding to the windows APIs. Unofficial, but more complete than windows-rs".into(), - features : None - }, - Crates { - name: "nix".into(), - description: "Bindings to the various *nix system functions. (Unix, Linux, MacOS, etc.)".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let graphics_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "gtk4".into(), - description: "Rust bindings to GTK4. These are quite well supported, although you'll often need to use the C -documentation.".into(), - features : Some(vec!["v4_2".into()]) - }, - Crates { - name: "relm4".into(), - description: "A higher-level library that sits on top of gtk4-rs".into(), - features : None - }, - Crates { - name: "tauri".into(), - description: "Electron-like web-based UI. Except it uses system webviews rather than shipping chromium, and non-UI -code is written in Rust rather than node.js".into(), - features : None - }, - Crates { - name: "dioxus".into(), - description: "A very nice API layer that has Tauri, Web, and TUI renderers. A native renderer is coming -soon.".into(), - features : Some(vec!["fullstack".into()]) - }, - Crates { - name: "egui".into(), - description: "Immediate-mode UI. Lots of widgets. The most useable out of the box if your needs are simple and you -don't need to customise of the look and feel".into(), - features : None - }, - Crates { - name: "iced".into(), - description: "Retained mode UI with a nice API. It's useable for basic apps, but has a number of missing features -including multiple windows, layers, and proper text rendering.".into(), - features : None - }, - Crates { - name: "floem".into(), - description: "Inspired by Xilem, Leptos and rui, floem is currently more complete than any of them for native UI. -Used by the Lapce text editor.".into(), - features : None - }, - Crates { - name: "vizia".into(), - description: "Fairly complete with sophisticated layout and text layout, but has yet to make a stable -release.".into(), - features : None - }, - Crates { - name: "winit".into(), - description: "The defacto standard option. Uses an event loop based architecture. Widely used and should probably be -the default choice.".into(), - features : None - }, - Crates { - name: "tao".into(), - description: "A fork of winit by the Tauri project which adds support for things like system menus that desktop apps -need.".into(), - features : None - }, - Crates { - name: "glazier".into(), - description: "A new competitor to winit based on the old druid-shell. Has a callback that may be better than the -event loop architecture for some tasks. Doesn't yet have a stable release.".into(), - features : None - }, - Crates { - name: "baseview".into(), - description: "Specialized window creation library targetting windows to be embedded in other applications (e.g. DAW -plugins)".into(), - features : None - }, - Crates { - name: "femtovg".into(), - description: "OpenGL based. Offers a simple API. Probably the easiest to get started with.".into(), - features : Some(vec!["serde".into()]) - }, - Crates { - name: "skia-safe".into(), - description: "Bindings to the Skia C++ library. The most complete option with excellent performance. However, it can -be difficult to get it to compile.".into(), - features : None - }, - Crates { - name: "vello".into(), - description: "WGPU based and uses cutting edge techniques to render vector paths using the GPU. Still somewhat -immature and hasn't yet put out a stable release.".into(), - features : None - }, - Crates { - name: "vger".into(), - description: "A simpler WGPU based option which is less innovative but currently more stable than vello.".into(), - features : None - }, - Crates { - name: "webrender".into(), - description: "OpenGL based. Mature with production usage in Firefox but documentation and OSS maintenance are -lacking.".into(), - features : None - }, - Crates { - name: "taffy".into(), - description: "Supports Flexbox and CSS Grid algorithms.".into(), - features : Some(vec!["serde".into(), "flexbox".into()]) - }, - Crates { - name: "morphorm".into(), - description: "Implements it's own layout algorithm based on Subform layout".into(), - features : None - }, - Crates { - name: "cosmic-text".into(), - description: "Full text layout including rich text and support for BiDi and non-latin scripts. The best option for -now.".into(), - features : None - }, - Crates { - name: "parley".into(), - description: "Another very accomplished text layout library used by Druid/Xilem.".into(), - features : None - }, - Crates { - name: "accesskit".into(), - description: "Allows you to export a semantic tree representing your UI to make accessible to screen readers and -other assistive technologies".into(), - features : None - }, - Crates { - name: "arboard".into(), - description: "A fork of rust-clipboard that supports copy and pasting of both text and images on Linux -(X11/Wayland), MacOS and Windows.".into(), - features : None - }, - Crates { - name: "rfd".into(), - description: "Platform-native open/save file dialogs. Can be used in conjunction with other UI libraries.".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "bevy".into(), - description: "An ECS based game engine, good for 3D but also capable of 2D.".into(), - features : None - }, - Crates { - name: "fyrox".into(), - description: "An OOP-focused game engine with 3D and 2D support and a full GUI scene editor.".into(), - features : None - }, - Crates { - name: "ggez".into(), - description: "A simpler option for 2d games only.".into(), - features : None - }, - Crates { - name: "macroquad".into(), - description: "A simple and easy to use 2d game library, great for beginners.".into(), - features : None - }, - Crates { - name: "glam".into(), - description: "Fast math library optimised for game development use cases".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let database_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "sqlx".into(), - description: "Works with Postgres, MySQL, SQLite, and MS SQL.Supports compile time checking of queries. Async: -supports both tokio and async-std.".into(), - features : Some(vec!["runtime-tokio".into(), "tls-native-tls".into(), "macros".into(), "chrono".into(), - "mysql".into()]) - }, - Crates { - name: "diesel".into(), - description: "Has excellent performance and takes an approach of strict compile time guarantees. The main crate is -Sync only, but diesel-async provides an async connection implementation.".into(), - features : Some(vec!["mysql".into()]) - }, - Crates { - name: "sea-orm".into(), - description: "Built on top of sqlx (see above). There is also a related sea-query crate that provides a query -builder without full ORM functionality.".into(), - features : None - }, - Crates { - name: "tokio-postgres".into(), - description: "Postgres-specific library. Performs better than SQLx".into(), - features : None - }, - Crates { - name: "mysql_async".into(), - description: "Has a poorly designed API. Prefer SQLx or Diesel for MySQL".into(), - features : Some(vec!["derive".into()]) - }, - Crates { - name: "rusqlite".into(), - description: "Provides a sync API to SQLite + provides access to advanced sqlite features.".into(), - features : Some(vec!["bundled".into()]) - }, - Crates { - name: "tiberius".into(), - description: "MS SQL specific library. Has better support for advanced column types than SQLx.".into(), - features : Some(vec!["chrono".into(), "rustls".into()]) - }, - Crates { - name: "diesel-oci".into(), - description: "Diesel backend and connection implementation for oracle databases".into(), - features : None - }, - Crates { - name: "oracle".into(), - description: "Rust bindings to ODPI-C".into(), - features : Some(vec!["chrono".into(), ]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "redis".into(), - description: "no description ".into(), - features : None - }, - Crates { - name: "mongodb".into(), - description: "no description ".into(), - features : Some(vec!["async-std-runtime".into()]) - }, - Crates { - name: "elasticsearch".into(), - description: "no description ".into(), - features : None - }, - Crates { - name: "rocksdb".into(), - description: "no description ".into(), - features : None - }, - Crates { - name: "cassandra-protocol".into(), - description: "Low-level Cassandra protocol implementation.".into(), - features : None - }, - Crates { - name: "cdrs-tokio".into(), - description: "High-level async Cassandra driver.".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "deadpool".into(), - description: "A dead simple async pool for connections and objects of any type.".into(), - features : Some(vec!["serde".into()]) - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let networking_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tokio".into(), - description: "The oldest async runtime in the Rust ecosystem and still the most widely supported. Recommended for -new projects.".into(), - features : Some(vec!["full".into()]) - }, - Crates { - name: "futures-executor".into(), - description: "A minimal executor. In particular, the block_on function is useful if you want to run an async -function synchronously in codebase that is mostly synchronous.".into(), - features : None - }, - Crates { - name: "futures".into(), - description: "Utility functions for working with Futures and Streams".into(), - features : None - }, - Crates { - name: "async-trait".into(), - description: "Provides a workaround for the lack of language support for async functions in traits".into(), - features : None - }, - Crates { - name: "glommio".into(), - description: "Use if you need io_uring support. Still somewhat experimental but rapidly maturing.".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "http".into(), - description: "The `http` crate doesn't actually contain an HTTP implementation. Just types and interfaces to help -interoperability.".into(), - features : None - }, - Crates { - name: "hyper".into(), - description: "A low-level HTTP implementation (both client and server). Implements HTTP/1, and HTTP/2. Works best -with the tokio async runtime, but can support other runtimes.".into(), - features : None - }, - Crates { - name: "reqwest".into(), - description: "Full-fat HTTP client. Can be used in both synchronous and asynchronous code. Requires tokio -runtime.".into(), - features : Some(vec!["json".into()]) - }, - Crates { - name: "ureq".into(), - description: "Minimal synchronous HTTP client focussed on simplicity and minimising dependencies.".into(), - features : Some(vec!["json".into()]) - }, - Crates { - name: "axum".into(), - description: "A minimal and ergonomic framework. An official part of the tokio project. Recommend for most new -projects.".into(), - features : Some(vec!["multipart".into(),]) - }, - Crates { - name: "actix-web".into(), - description: "A performance focussed framework. All Rust frameworks are fast, but choose actix-web if you need the -absolutely maximum performance.".into(), - features : None - }, - Crates { - name: "async-graphql".into(), - description: "A high-performance graphql server library that's fully specification compliant. Integrates with -actix-web, axum, poem, rocket, tide, warp.".into(), - features : Some(vec!["chrono".into()]) - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tungstenite".into(), - description: "Low-level crate that others build on".into(), - features : None - }, - Crates { - name: "tokio-tungstenite".into(), - description: "If you are using the tokio executor".into(), - features : None - }, - Crates { - name: "async-tungstenite".into(), - description: "If you are using the async-std executor".into(), - features : None - }, - ].to_vec(), - }, - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "tonic".into(), - description: "gRPC over HTTP/2 with full support for asynchronous code. Works with tokio".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - - let concurrency_crates = Table { - entries: [ - TableEntry { - use_case: "".into(), - crates: [ - Crates { - name: "parking_lot".into(), - description: "std::sync::Mutex also works fine. But Parking Lot is faster.".into(), - features : None - }, - Crates { - name: "arc-swap".into(), - description: "Useful for sharing data that has many readers but few writers".into(), - features : None - }, - Crates { - name: "dashmap".into(), - description: "The fastest for general purpose workloads".into(), - features : Some(vec!["serde ".into(), "rayon ".into()]) - }, - Crates { - name: "flurry".into(), - description: "Particularly good for read-heavy workloads.".into(), - features : None - }, - Crates { - name: "crossbeam-channel".into(), - description: "The absolute fastest channel implementation available. Implements Go-like 'select' feature.".into(), - features : None - }, - Crates { - name: "flume".into(), - description: "Smaller and simpler than crossbeam-channel and almost as fast".into(), - features : None - }, - Crates { - name: "tokio".into(), - description: "Tokio's sync module provides channels for using in async code".into(), - features : Some(vec!["full".into()]) - }, - Crates { - name: "postage".into(), - description: "Channels that integrate nicely with async code, with different options than Tokio".into(), - features : None - }, - Crates { - name: "rayon".into(), - description: "Convert sequential computation into parallel computation with one call - `par_iter` instead of -`iter`".into(), - features : None - }, - ].to_vec(), - }, - ].to_vec(), - }; - + pub fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table { match category { - CategoriesWithSubCategories::Clis => cli_crates, - CategoriesWithSubCategories::Common => common_crates, - CategoriesWithSubCategories::Graphics => graphics_crates, - CategoriesWithSubCategories::Databases => database_crates, - CategoriesWithSubCategories::Networking => networking_crates, - CategoriesWithSubCategories::Concurrency => concurrency_crates, + CategoriesWithSubCategories::Clis => self.clis_crates.clone(), + CategoriesWithSubCategories::Common => self.common_crates.clone(), + CategoriesWithSubCategories::Graphics => self.graphics_crates.clone(), + CategoriesWithSubCategories::Databases => self.database_crates.clone(), + CategoriesWithSubCategories::Networking => self.networking_crates.clone(), + CategoriesWithSubCategories::Concurrency => self.concurrency_crates.clone() + } } } diff --git a/src/main.rs b/src/main.rs index 84dddff..8083382 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ + +#![warn(clippy::pedantic)] use std::error::Error; use tui::{ diff --git a/src/scraper/scraper.rs b/src/scraper/scraper.rs index 5539409..69b20ba 100644 --- a/src/scraper/scraper.rs +++ b/src/scraper/scraper.rs @@ -28,44 +28,7 @@ pub struct CratesData { pub crate_groups: Vec, } -impl From<&Group> for Table { - fn from(value: &Group) -> Self { - let mut entries: Vec = Vec::new(); - if let Some(subgroups) = &value.subgroups { - for subgroup in subgroups { - let mut crates: Vec = Vec::new(); - if let Some(purposes) = &subgroup.purposes { - for purpose in purposes { - purpose.recommendations.iter().for_each(|recommendation| { - crates.push(Crates { - name: recommendation.name.clone(), - description: recommendation - .notes - .clone() - .unwrap_or("No description".to_string()), - features: None, - }); - }); - } - } - entries.push(TableEntry { - use_case: String::default(), - crates, - }); - } - } else if let Some(purposes) = &value.purposes { - for purpose in purposes { - let mut crates : Vec = Vec::new(); - - - - } - } - - Table { entries } - } -} pub async fn scrape_site() -> Result> { let response = reqwest::get( diff --git a/src/view/ui.rs b/src/view/ui.rs index a67fa90..105687e 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -1,3 +1,4 @@ +#![warn(clippy::pedantic)] use std::usize; use throbber_widgets_tui::ThrobberState; use tokio::sync::mpsc::UnboundedSender; @@ -5,7 +6,7 @@ use tokio::sync::mpsc::UnboundedSender; use ratatui::{ prelude::*, symbols::border, - widgets::{block::*, *}, + widgets::{block::{Block, Position, Title}, Clear, ListState}, }; use crate::{ @@ -16,23 +17,19 @@ use crate::{ utils::{centered_rect, toggle_dependencies_all, toggle_one_dependency, toggle_status_all}, }; -use super::widgets::{DependenciesListWidget, *}; +use super::widgets::{DependenciesListWidget, CategoriesTabs, CrateItemList, CratesListWidget, FooterInstructions, Popup}; pub struct AppView { pub action_tx: UnboundedSender, pub dependencies_to_add_list: DependenciesList, pub crates_list: CratesList, pub category_tabs: CategoriesTabs, - is_adding_deps: bool, - popup_widget: Popup, - loader_state: throbber_widgets_tui::ThrobberState, - pub exit: bool, - categories_list_state: ListState, + categories_list_state: ListState, general_crates: Vec, math_crates: Vec, ffi_crates: Vec, @@ -43,6 +40,7 @@ pub struct AppView { database_crates: Vec, clis_crates: Vec, graphics_crates: Vec, + } #[derive(Default)] @@ -59,10 +57,7 @@ pub struct DependenciesList { impl DependenciesList { pub const fn new(state: ListState, dependencies_to_add: Vec) -> Self { - Self { - state, - dependencies_to_add, - } + Self { dependencies_to_add, state } } } @@ -98,13 +93,13 @@ impl Widget for &mut AppView { if self.is_adding_deps { let center = centered_rect(60, 20, area); - Clear::default().render(center, buf); + Clear.render(center, buf); StatefulWidget::render( self.popup_widget.clone(), center, buf, &mut self.loader_state, - ) + ); } } } @@ -113,25 +108,27 @@ impl AppView { pub async fn new(action_tx: UnboundedSender) -> Self { let page_contents = ContentParser::new().await; + let mut list_state = ListState::default(); list_state.select(Some(0)); + let general_crates = page_contents.get_general_crates(); - let math_crates = page_contents.get_crates(Categories::Math); - let ffi_crates = page_contents.get_crates(Categories::FFI); - let cryptography_crates = page_contents.get_crates(Categories::Cryptography); + let math_crates = page_contents.get_crates(&Categories::Math); + let ffi_crates = page_contents.get_crates(&Categories::FFI); + let cryptography_crates = page_contents.get_crates(&Categories::Cryptography); - let common_crates = page_contents.get_crates_with_sub(CategoriesWithSubCategories::Common); + let common_crates = page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Common); let concurrency_crates = - page_contents.get_crates_with_sub(CategoriesWithSubCategories::Concurrency); + page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Concurrency); let networking_crates = - page_contents.get_crates_with_sub(CategoriesWithSubCategories::Networking); + page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Networking); let database_crates = - page_contents.get_crates_with_sub(CategoriesWithSubCategories::Databases); - let clis_crates = page_contents.get_crates_with_sub(CategoriesWithSubCategories::Clis); + page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Databases); + let clis_crates = page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Clis); let graphics_crates = - page_contents.get_crates_with_sub(CategoriesWithSubCategories::Graphics); + page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Graphics); Self { action_tx, @@ -208,9 +205,13 @@ impl AppView { pub fn render_main_section(&mut self, area: Rect, buf: &mut Buffer) { let instructions = Title::from(Line::from(vec![ "Move down ".into(), - " ".bold().blue(), + " " + .bold() + .blue(), "Move up ".into(), - " ".bold().blue(), + " " + .bold() + .blue(), "Check docs ".into(), " ".blue(), "Check crates.io ".into(), @@ -544,6 +545,7 @@ impl AppView { } } + #[inline] pub fn show_popup(&mut self) { self.is_adding_deps = true; } @@ -551,7 +553,7 @@ impl AppView { pub fn check_docs(&self) { if let Some(index_selected) = self.crates_list.state.selected() { let crate_name = &self.crates_list.crates_widget_list.crates[index_selected].name; - let url = format!("https://docs.rs/{}/latest/{}/", crate_name, crate_name); + let url = format!("https://docs.rs/{crate_name}/latest/{crate_name}/"); open::that(url).ok(); } @@ -567,7 +569,8 @@ impl AppView { } } + #[inline] pub fn on_tick(&mut self) { - self.loader_state.calc_next() + self.loader_state.calc_next(); } } From d7bdb391831ca6d952a6b7334e087e660045acc7 Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Sat, 25 May 2024 18:01:44 -0500 Subject: [PATCH 07/27] completed parsing --- src/content_parser.rs | 30 ++++++++++++---------- src/content_parser/content_parser.rs | 30 ++++++++++++++-------- src/main.rs | 1 - src/scraper/scraper.rs | 12 +++------ src/view/ui.rs | 38 ++++++++++++++++------------ src/view/widgets.rs | 28 ++++++++++++-------- 6 files changed, 80 insertions(+), 59 deletions(-) diff --git a/src/content_parser.rs b/src/content_parser.rs index cf7833a..6edf830 100644 --- a/src/content_parser.rs +++ b/src/content_parser.rs @@ -7,30 +7,33 @@ impl From<&Group> for Table { fn from(value: &Group) -> Self { let mut entries: Vec = Vec::new(); + //This means this is parsing a category with 1 table if let Some(purposes) = &value.purposes { - for purpose in purposes { - let mut crates : Vec = Vec::new(); + let mut crates: Vec = Vec::new(); for recommendation in &purpose.recommendations { - - crates.push(Crates { name: - recommendation.name.clone(), - description: recommendation.notes.clone().unwrap_or("No description".to_string()), - features: None + crates.push(Crates { + name: recommendation.name.clone(), + description: recommendation + .notes + .clone() + .unwrap_or("No description".to_string()), + features: None, }); } - entries.push( - TableEntry { use_case: String::default(), crates } - ); - + entries.push(TableEntry { + use_case: String::default(), + crates, + }); } - return Table { entries } + return Table { entries }; }; - if let Some(subgroups) = &value.subgroups { + //Parsing a category with multiple tables + if let Some(subgroups) = &value.subgroups { for subgroup in subgroups { let mut crates: Vec = Vec::new(); if let Some(purposes) = &subgroup.purposes { @@ -57,7 +60,6 @@ impl From<&Group> for Table { } } - #[cfg(test)] mod test { diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index c66ee19..5546f1b 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -1,6 +1,6 @@ use crate::{ - backend::{Categories, CategoriesWithSubCategories, Table, }, - scraper::scraper::{scrape_site, CratesData}, + backend::{Categories, CategoriesWithSubCategories, Table}, + scraper::scraper::{scrape_site, CratesData, Group}, }; #[derive(Debug)] @@ -37,17 +37,28 @@ impl ContentParser { page_content.crate_groups.iter().for_each(|group| { match group.name.trim().to_lowercase().as_str() { "common" => { - //extract general table - //the rest collect belongs to common crates , ignoring general - let mut common_table : Table = group.into(); + //extract general table + //the rest belongs to common crates , ignoring general + let mut common_table = Group::default(); let mut general_table = group.subgroups.as_ref().unwrap().iter(); - general_crates = general_table.find(|sub| sub.name.trim().to_lowercase() == "general").unwrap().into(); - - common_crates = common_table; + general_crates = general_table + .find(|sub| sub.name.trim().to_lowercase() == "general") + .unwrap() + .into(); + let new_subgropus: Vec = group + .subgroups + .as_ref() + .unwrap() + .iter() + .filter(|gr| gr.name.trim().to_lowercase() != "general") + .cloned() + .collect(); + common_table.subgroups = Some(new_subgropus); + common_crates = Into::into(&common_table); } "math / scientific" => math_crates = group.into(), "ffi / interop" => ffi_crates = group.into(), @@ -95,8 +106,7 @@ impl ContentParser { CategoriesWithSubCategories::Graphics => self.graphics_crates.clone(), CategoriesWithSubCategories::Databases => self.database_crates.clone(), CategoriesWithSubCategories::Networking => self.networking_crates.clone(), - CategoriesWithSubCategories::Concurrency => self.concurrency_crates.clone() - + CategoriesWithSubCategories::Concurrency => self.concurrency_crates.clone(), } } } diff --git a/src/main.rs b/src/main.rs index 8083382..a171204 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,3 @@ - #![warn(clippy::pedantic)] use std::error::Error; diff --git a/src/scraper/scraper.rs b/src/scraper/scraper.rs index 69b20ba..88490f6 100644 --- a/src/scraper/scraper.rs +++ b/src/scraper/scraper.rs @@ -2,34 +2,30 @@ use std::error::Error; use serde::{Deserialize, Serialize}; -use crate::backend::{Crates, Table, TableEntry}; - -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default, Clone)] pub struct Group { pub name: String, pub subgroups: Option>, pub purposes: Option>, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default, Clone)] pub struct Purpose { pub name: String, pub recommendations: Vec, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default, Clone)] pub struct Recommendation { pub name: String, pub notes: Option, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, Default, Clone)] pub struct CratesData { pub crate_groups: Vec, } - - pub async fn scrape_site() -> Result> { let response = reqwest::get( "https://raw.githubusercontent.com/nicoburns/blessed-rs/main/data/crates.json", diff --git a/src/view/ui.rs b/src/view/ui.rs index 105687e..b3ff639 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -6,7 +6,10 @@ use tokio::sync::mpsc::UnboundedSender; use ratatui::{ prelude::*, symbols::border, - widgets::{block::{Block, Position, Title}, Clear, ListState}, + widgets::{ + block::{Block, Position, Title}, + Clear, ListState, + }, }; use crate::{ @@ -17,14 +20,20 @@ use crate::{ utils::{centered_rect, toggle_dependencies_all, toggle_one_dependency, toggle_status_all}, }; -use super::widgets::{DependenciesListWidget, CategoriesTabs, CrateItemList, CratesListWidget, FooterInstructions, Popup}; +use super::widgets::{ + CategoriesTabs, CrateItemList, CratesListWidget, DependenciesListWidget, FooterInstructions, + Popup, +}; pub struct AppView { pub action_tx: UnboundedSender, pub dependencies_to_add_list: DependenciesList, pub crates_list: CratesList, - pub category_tabs: CategoriesTabs, - is_adding_deps: bool, + + category_tabs: CategoriesTabs, + + is_adding_dependencies: bool, + popup_widget: Popup, loader_state: throbber_widgets_tui::ThrobberState, pub exit: bool, @@ -40,7 +49,6 @@ pub struct AppView { database_crates: Vec, clis_crates: Vec, graphics_crates: Vec, - } #[derive(Default)] @@ -57,7 +65,10 @@ pub struct DependenciesList { impl DependenciesList { pub const fn new(state: ListState, dependencies_to_add: Vec) -> Self { - Self { dependencies_to_add, state } + Self { + dependencies_to_add, + state, + } } } @@ -91,7 +102,7 @@ impl Widget for &mut AppView { self.render_footer_instructions(footer_area, buf); - if self.is_adding_deps { + if self.is_adding_dependencies { let center = centered_rect(60, 20, area); Clear.render(center, buf); StatefulWidget::render( @@ -108,7 +119,6 @@ impl AppView { pub async fn new(action_tx: UnboundedSender) -> Self { let page_contents = ContentParser::new().await; - let mut list_state = ListState::default(); list_state.select(Some(0)); @@ -135,7 +145,7 @@ impl AppView { dependencies_to_add_list: DependenciesList::default(), crates_list: CratesList::default(), category_tabs: CategoriesTabs::default(), - is_adding_deps: false, + is_adding_dependencies: false, loader_state: ThrobberState::default(), general_crates: general_crates.into(), @@ -205,13 +215,9 @@ impl AppView { pub fn render_main_section(&mut self, area: Rect, buf: &mut Buffer) { let instructions = Title::from(Line::from(vec![ "Move down ".into(), - " " - .bold() - .blue(), + " ".bold().blue(), "Move up ".into(), - " " - .bold() - .blue(), + " ".bold().blue(), "Check docs ".into(), " ".blue(), "Check crates.io ".into(), @@ -547,7 +553,7 @@ impl AppView { #[inline] pub fn show_popup(&mut self) { - self.is_adding_deps = true; + self.is_adding_dependencies = true; } pub fn check_docs(&self) { diff --git a/src/view/widgets.rs b/src/view/widgets.rs index 7fe90de..cbae357 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -3,7 +3,10 @@ use strum::{Display, EnumIter, FromRepr, IntoEnumIterator}; use ratatui::{ prelude::*, style::{palette::tailwind, Style}, - widgets::{block::*, *}, + widgets::{ + block::{Block, Padding, Position, Title}, + HighlightSpacing, List, ListDirection, ListItem, ListState, + }, }; use throbber_widgets_tui::{Throbber, ThrobberState}; @@ -43,7 +46,7 @@ impl StatefulWidget for Popup { .throbber_set(throbber_widgets_tui::BRAILLE_SIX) .use_type(throbber_widgets_tui::WhichUse::Spin); - StatefulWidget::render(loader, inner_area, buf, state) + StatefulWidget::render(loader, inner_area, buf, state); } } @@ -101,8 +104,8 @@ impl CrateItemList { Self { name, description, - status, features, + status, } } } @@ -112,17 +115,17 @@ pub struct CratesListWidget { pub crates: Vec, } -impl Into> for CrateItemList { - fn into(self) -> ListItem<'static> { - let (is_selected, bg_color) = match self.status { +impl From for ListItem<'_> { + fn from(val: CrateItemList) -> Self { + let (is_selected, bg_color) = match val.status { ItemListStatus::Selected => ("✓", tailwind::BLUE.c300), ItemListStatus::Unselected => ("☐", Color::default()), }; let line = Line::from(vec![ - self.name.bold().blue(), + val.name.bold().blue(), " ".into(), - self.description.into(), + val.description.into(), " ".into(), is_selected.into(), ]); @@ -148,7 +151,7 @@ impl StatefulWidget for CratesListWidget { } impl CratesListWidget { - pub fn new(crates: &Vec) -> Self { + pub fn new(crates: &[CrateItemList]) -> Self { Self { crates: crates.to_vec(), } @@ -188,6 +191,7 @@ pub enum CategoriesTabs { Graphics, } +//Heavy use of unwrap here, this is infalle, I think impl CategoriesTabs { pub fn next(self) -> Self { let current_index = self as usize; @@ -198,7 +202,11 @@ impl CategoriesTabs { pub fn previous(self) -> Self { let current_index = self as usize; let previous_index = current_index.saturating_sub(1); - Self::from_repr(previous_index).unwrap_or(self) + if current_index == 0 { + return Self::from_repr(Self::iter().len() - 1).unwrap(); + } + + Self::from_repr(previous_index).unwrap() } } From 6032de3c0260e5da6353c43be08fc048d64a6236 Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Sat, 25 May 2024 18:18:24 -0500 Subject: [PATCH 08/27] changed names of some methods --- src/content_parser/content_parser.rs | 2 +- src/tui/handler.rs | 2 +- src/view/ui.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index 5546f1b..65361e7 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -20,7 +20,7 @@ pub struct ContentParser { } impl ContentParser { - pub async fn new() -> Self { + pub async fn parse_content() -> Self { let page_content = scrape_site().await.unwrap(); let mut general_crates = Table::default(); diff --git a/src/tui/handler.rs b/src/tui/handler.rs index d08fa8a..a441dc8 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -122,7 +122,7 @@ pub async fn run() -> Result<(), Box> { let (action_tx, mut action_rx) = mpsc::unbounded_channel::(); - let mut app = AppView::new(action_tx.clone()).await; + let mut app = AppView::setup(action_tx.clone()).await; let task = handle_event(app.action_tx.clone()); diff --git a/src/view/ui.rs b/src/view/ui.rs index b3ff639..b28ec2d 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -116,8 +116,8 @@ impl Widget for &mut AppView { } impl AppView { - pub async fn new(action_tx: UnboundedSender) -> Self { - let page_contents = ContentParser::new().await; + pub async fn setup(action_tx: UnboundedSender) -> Self { + let page_contents = ContentParser::parse_content().await; let mut list_state = ListState::default(); From bcca8078759d2b6b1b87c73de1206ffb810b1d6c Mon Sep 17 00:00:00 2001 From: josueBarretogit Date: Sat, 25 May 2024 18:33:08 -0500 Subject: [PATCH 09/27] implemented dependency inversion for app --- src/content_parser.rs | 25 +++++++++---------------- src/content_parser/content_parser.rs | 20 +++++++++++++++----- src/tui/handler.rs | 5 ++++- src/view/ui.rs | 7 ++++--- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/content_parser.rs b/src/content_parser.rs index 6edf830..3daa852 100644 --- a/src/content_parser.rs +++ b/src/content_parser.rs @@ -1,8 +1,16 @@ -use crate::backend::{Crates, Table, TableEntry}; +use crate::backend::{Categories, CategoriesWithSubCategories, Crates, Table, TableEntry}; use crate::scraper::scraper::Group; pub mod content_parser; +pub trait ContentParser { + fn get_general_crates(&self) -> Table; + + fn get_crates(&self, category: &Categories) -> Table; + + fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table; +} + impl From<&Group> for Table { fn from(value: &Group) -> Self { let mut entries: Vec = Vec::new(); @@ -59,18 +67,3 @@ impl From<&Group> for Table { Table { entries } } } - -#[cfg(test)] - -mod test { - use crate::{ - backend::{Crates, Table, TableEntry}, - content_parser::content_parser::ContentParser, - }; - - #[test] - fn general_table_has_expected_data() { - //I dont know how to test this xd - todo!() - } -} diff --git a/src/content_parser/content_parser.rs b/src/content_parser/content_parser.rs index 65361e7..3173921 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/content_parser.rs @@ -3,8 +3,10 @@ use crate::{ scraper::scraper::{scrape_site, CratesData, Group}, }; +use super::ContentParser; + #[derive(Debug)] -pub struct ContentParser { +pub struct JsonContentParser { pub content: CratesData, general_crates: Table, @@ -19,7 +21,7 @@ pub struct ContentParser { graphics_crates: Table, } -impl ContentParser { +impl JsonContentParser { pub async fn parse_content() -> Self { let page_content = scrape_site().await.unwrap(); @@ -87,11 +89,18 @@ impl ContentParser { } } - pub fn get_general_crates(&self) -> Table { + + +} + + +impl ContentParser for JsonContentParser { + + fn get_general_crates(&self) -> Table { self.general_crates.clone() } - pub fn get_crates(&self, category: &Categories) -> Table { + fn get_crates(&self, category: &Categories) -> Table { match category { Categories::FFI => self.ffi_crates.clone(), Categories::Math => self.math_crates.clone(), @@ -99,7 +108,7 @@ impl ContentParser { } } - pub fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table { + fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table { match category { CategoriesWithSubCategories::Clis => self.clis_crates.clone(), CategoriesWithSubCategories::Common => self.common_crates.clone(), @@ -109,4 +118,5 @@ impl ContentParser { CategoriesWithSubCategories::Concurrency => self.concurrency_crates.clone(), } } + } diff --git a/src/tui/handler.rs b/src/tui/handler.rs index a441dc8..cc4ce87 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -5,6 +5,7 @@ use crossterm::event::{KeyCode, KeyEventKind}; use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; +use crate::content_parser::content_parser::JsonContentParser; use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] @@ -122,7 +123,9 @@ pub async fn run() -> Result<(), Box> { let (action_tx, mut action_rx) = mpsc::unbounded_channel::(); - let mut app = AppView::setup(action_tx.clone()).await; + let json_parser = JsonContentParser::parse_content().await; + + let mut app = AppView::setup(action_tx.clone(), &json_parser); let task = handle_event(app.action_tx.clone()); diff --git a/src/view/ui.rs b/src/view/ui.rs index b28ec2d..7f7a032 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -14,7 +14,7 @@ use ratatui::{ use crate::{ backend::{Categories, CategoriesWithSubCategories}, - content_parser::content_parser::ContentParser, + content_parser::{ContentParser}, dependency_builder::CrateToAdd, tui::handler::Action, utils::{centered_rect, toggle_dependencies_all, toggle_one_dependency, toggle_status_all}, @@ -49,6 +49,7 @@ pub struct AppView { database_crates: Vec, clis_crates: Vec, graphics_crates: Vec, + } #[derive(Default)] @@ -116,8 +117,8 @@ impl Widget for &mut AppView { } impl AppView { - pub async fn setup(action_tx: UnboundedSender) -> Self { - let page_contents = ContentParser::parse_content().await; + pub fn setup(action_tx: UnboundedSender, parser : &dyn ContentParser) -> Self { + let page_contents = parser; let mut list_state = ListState::default(); From e9395d54c6dd73739c0aae0abb7922197e9e65f8 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Tue, 28 May 2024 22:39:30 -0500 Subject: [PATCH 10/27] added popup to show features of a crate --- Cargo.lock | 98 +++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/content_parser.rs | 4 +- src/tui/handler.rs | 7 +++- src/view/ui.rs | 46 +++++++++++++++++--- src/view/widgets.rs | 38 +++++++++++++++++ 6 files changed, 185 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 39bd118..05b752f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,6 +119,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "num-traits", + "serde", +] + [[package]] name = "color-eyre" version = "0.6.3" @@ -175,6 +185,23 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "crates_io_api" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200ad30d24892baf2168f2df366939264d02f2fa0be0914f8e2da4bd3407c58c" +dependencies = [ + "chrono", + "futures", + "reqwest", + "serde", + "serde_derive", + "serde_json", + "serde_path_to_error", + "tokio", + "url", +] + [[package]] name = "crossterm" version = "0.27.0" @@ -287,6 +314,21 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.30" @@ -294,6 +336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -302,6 +345,34 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "futures-sink" version = "0.3.30" @@ -320,10 +391,16 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ + "futures-channel", "futures-core", + "futures-io", + "futures-macro", + "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", + "slab", ] [[package]] @@ -331,6 +408,7 @@ name = "get-blessed" version = "0.1.3" dependencies = [ "color-eyre", + "crates_io_api", "crossterm", "open", "ratatui", @@ -671,6 +749,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + [[package]] name = "num_cpus" version = "1.16.0" @@ -944,6 +1031,7 @@ dependencies = [ "base64", "bytes", "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2", @@ -1093,6 +1181,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" diff --git a/Cargo.toml b/Cargo.toml index cb6fed4..0f498c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,3 +22,4 @@ strum_macros = "0.26" open = "5.1.3" throbber-widgets-tui = "0.5.0" tokio = { version = "1.37.0", features = ["full"] } +crates_io_api = "0.11.0" diff --git a/src/content_parser.rs b/src/content_parser.rs index 3daa852..69b861f 100644 --- a/src/content_parser.rs +++ b/src/content_parser.rs @@ -27,7 +27,7 @@ impl From<&Group> for Table { .notes .clone() .unwrap_or("No description".to_string()), - features: None, + features: Some(vec!["features".to_string(), "test".to_string()]), }); } @@ -53,7 +53,7 @@ impl From<&Group> for Table { .notes .clone() .unwrap_or("No description".to_string()), - features: None, + features: Some(vec!["feature".into(), "test".into()]) }); }); } diff --git a/src/tui/handler.rs b/src/tui/handler.rs index cc4ce87..8f46f4c 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -11,6 +11,7 @@ use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { Tick, + ToggleShowFeatures, ShowLoadingAddingDeps, AddingDeps, ScrollUp, @@ -27,6 +28,8 @@ pub enum Action { pub fn update(app: &mut AppView, action: Action) { match action { + + Action::ToggleShowFeatures => app.toggle_show_features(), Action::ShowAddingDependenciesOperation => { let tx = app.action_tx.clone(); app.set_adding_deps_operation_message("Dependencies added successfully ✓"); @@ -85,8 +88,7 @@ pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> let action = if crossterm::event::poll(tick_rate).unwrap() { if let crossterm::event::Event::Key(key) = crossterm::event::read().unwrap() { if key.kind == KeyEventKind::Press { - match key.code { - KeyCode::Enter => Action::ShowLoadingAddingDeps, + match key.code { KeyCode::Enter => Action::ShowLoadingAddingDeps, KeyCode::Char('q') | KeyCode::Esc => Action::Quit, KeyCode::Tab => Action::ScrollNextCategory, @@ -98,6 +100,7 @@ pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> KeyCode::Char('s') => Action::ToggleOne, KeyCode::Char('d') => Action::CheckDocs, KeyCode::Char('c') => Action::CheckCratesIo, + KeyCode::Char('f') => Action::ToggleShowFeatures, _ => Action::Tick, } diff --git a/src/view/ui.rs b/src/view/ui.rs index 7f7a032..020f3b7 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -14,15 +14,15 @@ use ratatui::{ use crate::{ backend::{Categories, CategoriesWithSubCategories}, - content_parser::{ContentParser}, + content_parser::ContentParser, dependency_builder::CrateToAdd, tui::handler::Action, utils::{centered_rect, toggle_dependencies_all, toggle_one_dependency, toggle_status_all}, }; use super::widgets::{ - CategoriesTabs, CrateItemList, CratesListWidget, DependenciesListWidget, FooterInstructions, - Popup, + CategoriesTabs, CrateItemList, CratesListWidget, DependenciesListWidget, FeaturesPopup, + FooterInstructions, Popup, }; pub struct AppView { @@ -35,8 +35,10 @@ pub struct AppView { is_adding_dependencies: bool, popup_widget: Popup, + list_features_state : ListState, loader_state: throbber_widgets_tui::ThrobberState, pub exit: bool, + is_showing_features: bool, categories_list_state: ListState, general_crates: Vec, @@ -49,7 +51,6 @@ pub struct AppView { database_crates: Vec, clis_crates: Vec, graphics_crates: Vec, - } #[derive(Default)] @@ -113,11 +114,31 @@ impl Widget for &mut AppView { &mut self.loader_state, ); } + + if self.is_showing_features { + let center = centered_rect(80, 20, area); + if let Some(crate_selected) = self.get_current_crate_selected() { + + let features_popup = FeaturesPopup::new( + crate_selected + .features + .unwrap_or(vec!["This crate has no features".to_string()]), + ); + + Clear.render(center, buf); + StatefulWidget::render( + features_popup, + center, + buf, + &mut self.list_features_state, + ); + } + } } } impl AppView { - pub fn setup(action_tx: UnboundedSender, parser : &dyn ContentParser) -> Self { + pub fn setup(action_tx: UnboundedSender, parser: &dyn ContentParser) -> Self { let page_contents = parser; let mut list_state = ListState::default(); @@ -166,8 +187,10 @@ impl AppView { categories_list_state: list_state, exit: false, + is_showing_features: false, popup_widget: Popup::default(), + list_features_state : ListState::default() } } @@ -498,6 +521,14 @@ impl AppView { } } + fn get_current_crate_selected(&self) -> Option { + self.crates_list + .state + .selected() + .map(|index| Some(self.crates_list.crates_widget_list.crates[index].clone())) + .unwrap_or(None) + } + pub fn toggle_select_dependencie(&mut self) { if let Some(index_crate_selected) = self.crates_list.state.selected() { match self.category_tabs { @@ -580,4 +611,9 @@ impl AppView { pub fn on_tick(&mut self) { self.loader_state.calc_next(); } + + #[inline] + pub fn toggle_show_features(&mut self) { + self.is_showing_features = !self.is_showing_features + } } diff --git a/src/view/widgets.rs b/src/view/widgets.rs index cbae357..33cc6cf 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -24,6 +24,44 @@ pub struct Popup { pub message: String, } +#[derive(Debug, Default, Clone)] +pub struct FeaturesPopup { + pub features: Vec, +} + +impl FeaturesPopup{ + pub fn new(features : Vec) -> Self { + Self { features } + } +} + +impl StatefulWidget for FeaturesPopup { + + type State = ListState; + fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { + + Block::bordered().title("").render(area, buf); + + let inner_area = area.inner(&Margin { + vertical: 1, + horizontal: 1, + }); + + let features_list = List::new(self.features) + + .highlight_style(Style::default().blue()) + .highlight_symbol("* ") + .direction(ListDirection::TopToBottom); + + + StatefulWidget::render(features_list, inner_area, buf, state); + + } + +} + + + impl StatefulWidget for Popup { type State = ThrobberState; From 7fc218adfc9adcb367253c40ceb688a67d687124 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Wed, 29 May 2024 14:42:43 -0500 Subject: [PATCH 11/27] add methods to scroll up and down feature list --- src/content_parser.rs | 4 +-- src/tui/handler.rs | 20 ++++++++--- src/view/ui.rs | 79 ++++++++++++++++++++++++++++++++----------- 3 files changed, 77 insertions(+), 26 deletions(-) diff --git a/src/content_parser.rs b/src/content_parser.rs index 69b861f..39ce187 100644 --- a/src/content_parser.rs +++ b/src/content_parser.rs @@ -27,7 +27,7 @@ impl From<&Group> for Table { .notes .clone() .unwrap_or("No description".to_string()), - features: Some(vec!["features".to_string(), "test".to_string()]), + features: None }); } @@ -53,7 +53,7 @@ impl From<&Group> for Table { .notes .clone() .unwrap_or("No description".to_string()), - features: Some(vec!["feature".into(), "test".into()]) + features: None, }); }); } diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 8f46f4c..1ebe11d 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -28,7 +28,6 @@ pub enum Action { pub fn update(app: &mut AppView, action: Action) { match action { - Action::ToggleShowFeatures => app.toggle_show_features(), Action::ShowAddingDependenciesOperation => { let tx = app.action_tx.clone(); @@ -49,8 +48,20 @@ pub fn update(app: &mut AppView, action: Action) { Action::Tick => { app.on_tick(); } - Action::ScrollUp => app.scroll_up(), - Action::ScrollDown => app.scroll_down(), + Action::ScrollUp => { + if app.is_showing_features { + app.scroll_up_features(); + } else { + app.scroll_up(); + } + } + Action::ScrollDown => { + if app.is_showing_features { + app.scroll_down_features(); + } else { + app.scroll_down(); + } + } Action::Quit => app.exit(), Action::ShowLoadingAddingDeps => { @@ -88,7 +99,8 @@ pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> let action = if crossterm::event::poll(tick_rate).unwrap() { if let crossterm::event::Event::Key(key) = crossterm::event::read().unwrap() { if key.kind == KeyEventKind::Press { - match key.code { KeyCode::Enter => Action::ShowLoadingAddingDeps, + match key.code { + KeyCode::Enter => Action::ShowLoadingAddingDeps, KeyCode::Char('q') | KeyCode::Esc => Action::Quit, KeyCode::Tab => Action::ScrollNextCategory, diff --git a/src/view/ui.rs b/src/view/ui.rs index 020f3b7..a68e412 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -35,10 +35,10 @@ pub struct AppView { is_adding_dependencies: bool, popup_widget: Popup, - list_features_state : ListState, + list_features_state: ListState, loader_state: throbber_widgets_tui::ThrobberState, pub exit: bool, - is_showing_features: bool, + pub is_showing_features: bool, categories_list_state: ListState, general_crates: Vec, @@ -117,22 +117,15 @@ impl Widget for &mut AppView { if self.is_showing_features { let center = centered_rect(80, 20, area); - if let Some(crate_selected) = self.get_current_crate_selected() { - - let features_popup = FeaturesPopup::new( - crate_selected - .features - .unwrap_or(vec!["This crate has no features".to_string()]), - ); + let features_popup = FeaturesPopup::new( + self.get_current_crate_selected() + .unwrap() + .features + .unwrap_or(vec!["This crate has no features".to_string()]), + ); - Clear.render(center, buf); - StatefulWidget::render( - features_popup, - center, - buf, - &mut self.list_features_state, - ); - } + Clear.render(center, buf); + StatefulWidget::render(features_popup, center, buf, &mut self.list_features_state); } } } @@ -142,8 +135,10 @@ impl AppView { let page_contents = parser; let mut list_state = ListState::default(); + let mut feature_list_state = ListState::default(); list_state.select(Some(0)); + feature_list_state.select(Some(0)); let general_crates = page_contents.get_general_crates(); @@ -190,7 +185,7 @@ impl AppView { is_showing_features: false, popup_widget: Popup::default(), - list_features_state : ListState::default() + list_features_state: feature_list_state, } } @@ -418,7 +413,6 @@ impl AppView { } None => self.crates_list.state.selected().unwrap_or(0), }; - self.crates_list.state.select(Some(next)); } @@ -440,6 +434,49 @@ impl AppView { self.crates_list.state.select(Some(next_index)); } + pub fn scroll_up_features(&mut self) { + let next_index = match self.list_features_state.selected() { + Some(index) => { + if index == 0 { + self.get_current_crate_selected() + .unwrap() + .features + .unwrap_or_default() + .len() + .saturating_sub(1) + } else { + index.saturating_sub(1) + } + } + None => 1, + }; + self.list_features_state.select(Some(next_index)) + } + + pub fn scroll_down_features(&mut self) { + let next = match self.list_features_state.selected() { + Some(index) => { + if index + == self + .get_current_crate_selected() + .unwrap() + .features + .unwrap_or_default() + .iter() + .len() + .saturating_sub(1) + { + 0 + } else { + index.saturating_add(1) + } + } + None => self.list_features_state.selected().unwrap_or(0), + }; + + self.list_features_state.select(Some(next)) + } + pub fn toggle_select_all_dependencies(&mut self) { match self.category_tabs { CategoriesTabs::Clis => { @@ -614,6 +651,8 @@ impl AppView { #[inline] pub fn toggle_show_features(&mut self) { - self.is_showing_features = !self.is_showing_features + if self.get_current_crate_selected().is_some() { + self.is_showing_features = !self.is_showing_features + } } } From b63e2f527b4b3dcdb87d8b4a37ebaaa51742abfa Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Thu, 30 May 2024 10:31:04 -0500 Subject: [PATCH 12/27] trying to fetch features for each crate --- src/tui/handler.rs | 20 +++++++++-- src/utils.rs | 19 +++++------ src/view/ui.rs | 82 ++++++++++++++++++++++++++++++++++----------- src/view/widgets.rs | 62 +++++++++++++++++++++++++--------- 4 files changed, 133 insertions(+), 50 deletions(-) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 1ebe11d..5ba4cb8 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -8,9 +8,10 @@ use tokio::sync::mpsc::{self, UnboundedSender}; use crate::content_parser::content_parser::JsonContentParser; use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; -#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { Tick, + FetchFeatures(Vec), ToggleShowFeatures, ShowLoadingAddingDeps, AddingDeps, @@ -28,7 +29,19 @@ pub enum Action { pub fn update(app: &mut AppView, action: Action) { match action { - Action::ToggleShowFeatures => app.toggle_show_features(), + Action::FetchFeatures(features) => { + app.set_features(features); + } + Action::ToggleShowFeatures => { + let tx = app.action_tx.clone(); + app.toggle_show_features(); + + tokio::spawn(async move { + let client = crates_io_api::AsyncClient::new("josuebarretogit (josuebarretogit@gmail.com)", Duration::from_millis(500)).unwrap(); + tx.send(Action::FetchFeatures(vec!["feature 1".to_string()])).unwrap() + }); + + } Action::ShowAddingDependenciesOperation => { let tx = app.action_tx.clone(); app.set_adding_deps_operation_message("Dependencies added successfully ✓"); @@ -62,7 +75,6 @@ pub fn update(app: &mut AppView, action: Action) { app.scroll_down(); } } - Action::Quit => app.exit(), Action::ShowLoadingAddingDeps => { let tx = app.action_tx.clone(); @@ -89,6 +101,8 @@ pub fn update(app: &mut AppView, action: Action) { } }); } + + Action::Quit => app.exit(), } } pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> { diff --git a/src/utils.rs b/src/utils.rs index 1e799dd..e46b49b 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -5,23 +5,20 @@ use crate::{ view::widgets::{CrateItemList, ItemListStatus}, }; -pub fn toggle_status_all(dependencies: &mut Vec) { - dependencies.iter_mut().for_each(|item| { +pub fn toggle_status_all(dependencies: &mut [CrateItemList]) { + for item in dependencies.iter_mut() { item.status = match item.status { ItemListStatus::Selected => ItemListStatus::Unselected, ItemListStatus::Unselected => ItemListStatus::Selected, }; - }); + } } -pub fn toggle_dependencies_all( - crates: &Vec, - dependencies_added: &mut Vec, -) { - crates.iter().for_each(|item| { +pub fn toggle_dependencies_all(crates: &[CrateItemList], dependencies_added: &mut Vec) { + for item in crates { let dependency_to_add = CrateToAdd { - crate_name: item.name.to_owned(), - features: item.features.to_owned(), + crate_name: item.name.clone(), + features: item.features.clone(), }; if dependencies_added.contains(&dependency_to_add) && item.status == ItemListStatus::Unselected @@ -30,7 +27,7 @@ pub fn toggle_dependencies_all( } else if item.status == ItemListStatus::Selected { dependencies_added.push(dependency_to_add); } - }) + } } pub fn toggle_one_dependency( diff --git a/src/view/ui.rs b/src/view/ui.rs index a68e412..4735a1c 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -1,5 +1,5 @@ #![warn(clippy::pedantic)] -use std::usize; +use std::{time::Duration, usize}; use throbber_widgets_tui::ThrobberState; use tokio::sync::mpsc::UnboundedSender; @@ -21,8 +21,8 @@ use crate::{ }; use super::widgets::{ - CategoriesTabs, CrateItemList, CratesListWidget, DependenciesListWidget, FeaturesPopup, - FooterInstructions, Popup, + CategoriesTabs, CrateItemList, CratesListWidget, DependenciesListWidget, FeatureItemList, + FeaturesWidgetList, FooterInstructions, Popup, }; pub struct AppView { @@ -35,7 +35,7 @@ pub struct AppView { is_adding_dependencies: bool, popup_widget: Popup, - list_features_state: ListState, + features: Features, loader_state: throbber_widgets_tui::ThrobberState, pub exit: bool, pub is_showing_features: bool, @@ -53,6 +53,12 @@ pub struct AppView { graphics_crates: Vec, } +#[derive(Default)] +pub struct Features { + widget: FeaturesWidgetList, + state: ListState, +} + #[derive(Default)] pub struct CratesList { crates_widget_list: CratesListWidget, @@ -117,15 +123,24 @@ impl Widget for &mut AppView { if self.is_showing_features { let center = centered_rect(80, 20, area); - let features_popup = FeaturesPopup::new( - self.get_current_crate_selected() - .unwrap() - .features - .unwrap_or(vec!["This crate has no features".to_string()]), - ); + let current_crate_selected = self.get_current_crate_selected().unwrap(); + + let features = if current_crate_selected.features.is_some() { + Some( + current_crate_selected + .features + .unwrap() + .iter() + .map(|featu| FeatureItemList::new(featu.to_string())) + .collect(), + ) + } else { + None + }; + let features_popup = FeaturesWidgetList::new(features); Clear.render(center, buf); - StatefulWidget::render(features_popup, center, buf, &mut self.list_features_state); + StatefulWidget::render(features_popup, center, buf, &mut self.features.state); } } } @@ -185,7 +200,7 @@ impl AppView { is_showing_features: false, popup_widget: Popup::default(), - list_features_state: feature_list_state, + features: Features::default(), } } @@ -265,15 +280,43 @@ impl AppView { match self.category_tabs { CategoriesTabs::General => { self.crates_list.crates_widget_list = CratesListWidget::new(&self.general_crates); + StatefulWidget::render( self.crates_list.crates_widget_list.clone(), area, buf, &mut self.crates_list.state, ); + + for item in self.general_crates.clone() { + let tx = self.action_tx.clone(); + + let client = crates_io_api::AsyncClient::new( + "josuebarretogit (josuebarretogit@gmail.com)", + Duration::from_millis(500), + ) + .unwrap(); + tokio::spawn(async move { + let crate_name = item.name.as_str(); + let response = client.get_crate(crate_name).await; + match response { + Ok(information) => { + let features : Vec = match information.versions.first() { + Some(latest) => latest.features.clone().into_keys().collect(), + None => vec!["This crate has no features".to_string()] + }; + tx.send(Action::FetchFeatures(features)); + }, + Err(_) => { + tx.send(Action::FetchFeatures(vec!["This crate has no features".to_string()])); + }, + }; + }); + } } CategoriesTabs::Graphics => { self.crates_list.crates_widget_list = CratesListWidget::new(&self.graphics_crates); + StatefulWidget::render( self.crates_list.crates_widget_list.clone(), area, @@ -435,7 +478,7 @@ impl AppView { } pub fn scroll_up_features(&mut self) { - let next_index = match self.list_features_state.selected() { + let next_index = match self.features.state.selected() { Some(index) => { if index == 0 { self.get_current_crate_selected() @@ -450,11 +493,11 @@ impl AppView { } None => 1, }; - self.list_features_state.select(Some(next_index)) + self.features.state.select(Some(next_index)); } pub fn scroll_down_features(&mut self) { - let next = match self.list_features_state.selected() { + let next = match self.features.state.selected() { Some(index) => { if index == self @@ -471,10 +514,10 @@ impl AppView { index.saturating_add(1) } } - None => self.list_features_state.selected().unwrap_or(0), + None => self.features.state.selected().unwrap_or(0), }; - self.list_features_state.select(Some(next)) + self.features.state.select(Some(next)); } pub fn toggle_select_all_dependencies(&mut self) { @@ -562,8 +605,7 @@ impl AppView { self.crates_list .state .selected() - .map(|index| Some(self.crates_list.crates_widget_list.crates[index].clone())) - .unwrap_or(None) + .map(|index| self.crates_list.crates_widget_list.crates[index].clone()) } pub fn toggle_select_dependencie(&mut self) { @@ -652,7 +694,7 @@ impl AppView { #[inline] pub fn toggle_show_features(&mut self) { if self.get_current_crate_selected().is_some() { - self.is_showing_features = !self.is_showing_features + self.is_showing_features = !self.is_showing_features; } } } diff --git a/src/view/widgets.rs b/src/view/widgets.rs index 33cc6cf..fa560c6 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -12,7 +12,7 @@ use throbber_widgets_tui::{Throbber, ThrobberState}; use crate::dependency_builder::CrateToAdd; -#[derive(Default, Clone, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] pub enum ItemListStatus { Selected, #[default] @@ -24,44 +24,74 @@ pub struct Popup { pub message: String, } + #[derive(Debug, Default, Clone)] -pub struct FeaturesPopup { - pub features: Vec, +pub struct FeatureItemList { + name : String, + status : ItemListStatus } -impl FeaturesPopup{ - pub fn new(features : Vec) -> Self { - Self { features } +impl FeatureItemList { + + pub fn new(name : String) -> Self { + Self { name, status: ItemListStatus::Unselected } + } +} + +impl From for ListItem<'_> { + fn from(value: FeatureItemList) -> Self { + let (is_selected, bg_color) = match value.status { + ItemListStatus::Selected => ("✓", tailwind::BLUE.c300), + ItemListStatus::Unselected => ("☐", Color::default()), + }; + + let line = Line::from(vec![ + value.name.into(), + " ".into(), + is_selected.into(), + ]); + + ListItem::new(line).style(Style::default().bg(bg_color)) + } } -impl StatefulWidget for FeaturesPopup { +#[derive(Debug, Default, Clone)] +pub struct FeaturesWidgetList { + pub features: Option>, +} + +impl FeaturesWidgetList { + pub fn new(features: Option>) -> Self { + Self { features } + } +} + +impl StatefulWidget for FeaturesWidgetList { type State = ListState; fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { - Block::bordered().title("").render(area, buf); let inner_area = area.inner(&Margin { vertical: 1, horizontal: 1, }); + let features = if self.features.is_some() { + self.features.unwrap() + } else { + vec![FeatureItemList::new("Fetching features".to_string())] + }; - let features_list = List::new(self.features) - + let features_list = List::new(features) .highlight_style(Style::default().blue()) .highlight_symbol("* ") .direction(ListDirection::TopToBottom); - StatefulWidget::render(features_list, inner_area, buf, state); - } - } - - impl StatefulWidget for Popup { type State = ThrobberState; @@ -175,7 +205,7 @@ impl From for ListItem<'_> { impl StatefulWidget for CratesListWidget { type State = ListState; fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { - let block = Block::default().padding(Padding::uniform(1)); + let block = Block::bordered().padding(Padding::uniform(1)); let list = List::new(self.crates) .block(block) From 9778fc7df5d76d06dbb3223c1b51d02050db8ee4 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Thu, 30 May 2024 13:50:55 -0500 Subject: [PATCH 13/27] trying to fetch features for each crate part 2 --- src/tui/handler.rs | 18 +++++------- src/view/ui.rs | 73 +++++++++++++++++++++++++++++----------------- 2 files changed, 54 insertions(+), 37 deletions(-) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 5ba4cb8..853347e 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -8,10 +8,11 @@ use tokio::sync::mpsc::{self, UnboundedSender}; use crate::content_parser::content_parser::JsonContentParser; use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; -#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { Tick, - FetchFeatures(Vec), + FetchFeatures, + UpdateFeatures(Vec, usize), ToggleShowFeatures, ShowLoadingAddingDeps, AddingDeps, @@ -29,18 +30,12 @@ pub enum Action { pub fn update(app: &mut AppView, action: Action) { match action { - Action::FetchFeatures(features) => { - app.set_features(features); + Action::UpdateFeatures(features, index) => { + app.update_features_crates(features, index); + } Action::ToggleShowFeatures => { - let tx = app.action_tx.clone(); app.toggle_show_features(); - - tokio::spawn(async move { - let client = crates_io_api::AsyncClient::new("josuebarretogit (josuebarretogit@gmail.com)", Duration::from_millis(500)).unwrap(); - tx.send(Action::FetchFeatures(vec!["feature 1".to_string()])).unwrap() - }); - } Action::ShowAddingDependenciesOperation => { let tx = app.action_tx.clone(); @@ -103,6 +98,7 @@ pub fn update(app: &mut AppView, action: Action) { } Action::Quit => app.exit(), + _ => {} } } pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> { diff --git a/src/view/ui.rs b/src/view/ui.rs index 4735a1c..b55395d 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -1,4 +1,4 @@ -#![warn(clippy::pedantic)] +#![allow(clippy::too_many_lines)] use std::{time::Duration, usize}; use throbber_widgets_tui::ThrobberState; use tokio::sync::mpsc::UnboundedSender; @@ -30,7 +30,7 @@ pub struct AppView { pub dependencies_to_add_list: DependenciesList, pub crates_list: CratesList, - category_tabs: CategoriesTabs, + pub category_tabs: CategoriesTabs, is_adding_dependencies: bool, @@ -40,6 +40,8 @@ pub struct AppView { pub exit: bool, pub is_showing_features: bool, + fetch_once: bool, + categories_list_state: ListState, general_crates: Vec, math_crates: Vec, @@ -201,6 +203,7 @@ impl AppView { popup_widget: Popup::default(), features: Features::default(), + fetch_once: true, } } @@ -288,30 +291,41 @@ impl AppView { &mut self.crates_list.state, ); - for item in self.general_crates.clone() { - let tx = self.action_tx.clone(); - - let client = crates_io_api::AsyncClient::new( - "josuebarretogit (josuebarretogit@gmail.com)", - Duration::from_millis(500), - ) - .unwrap(); - tokio::spawn(async move { - let crate_name = item.name.as_str(); - let response = client.get_crate(crate_name).await; - match response { - Ok(information) => { - let features : Vec = match information.versions.first() { - Some(latest) => latest.features.clone().into_keys().collect(), - None => vec!["This crate has no features".to_string()] - }; - tx.send(Action::FetchFeatures(features)); - }, - Err(_) => { - tx.send(Action::FetchFeatures(vec!["This crate has no features".to_string()])); - }, - }; - }); + if self.fetch_once { + self.fetch_once = false; + for (index, item) in self.general_crates.iter().cloned().enumerate() { + let tx = self.action_tx.clone(); + + let client = crates_io_api::AsyncClient::new( + "josuebarretogit (josuebarretogit@gmail.com)", + Duration::from_millis(500), + ) + .unwrap(); + + tokio::spawn(async move { + let crate_name = item.name.as_str(); + let response = client.get_crate(crate_name).await; + match response { + Ok(information) => { + let features: Vec = match information.versions.first() { + Some(latest) => { + latest.features.clone().into_keys().collect() + } + None => vec!["This crate has no features".to_string()], + }; + + tx.send(Action::UpdateFeatures(features, index)).unwrap(); + } + Err(_) => { + tx.send(Action::UpdateFeatures( + vec!["This crate has no features".to_string()], + index, + )) + .unwrap(); + } + }; + }); + } } } CategoriesTabs::Graphics => { @@ -697,4 +711,11 @@ impl AppView { self.is_showing_features = !self.is_showing_features; } } + + pub fn update_features_crates(&mut self, features: Vec, index: usize) { + match self.category_tabs { + CategoriesTabs::General => self.general_crates[index].features = Some(features), + _ => {} + } + } } From 38c823e9dbb018dd1fa01f56339648a8017cf8a7 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Thu, 30 May 2024 18:51:24 -0500 Subject: [PATCH 14/27] trying to fetch features for each crate part 3 --- src/tui/handler.rs | 85 ++++++++++++++++++++++++--- src/view/ui.rs | 137 ++++++++++++++++---------------------------- src/view/widgets.rs | 14 +++-- 3 files changed, 134 insertions(+), 102 deletions(-) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 853347e..f822ab9 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -6,13 +6,14 @@ use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; use crate::content_parser::content_parser::JsonContentParser; +use crate::view::widgets::{CategoriesTabs, CrateItemList}; use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { + FetchFeatures(CategoriesTabs), + UpdateFeatures(CategoriesTabs, Vec), Tick, - FetchFeatures, - UpdateFeatures(Vec, usize), ToggleShowFeatures, ShowLoadingAddingDeps, AddingDeps, @@ -30,10 +31,6 @@ pub enum Action { pub fn update(app: &mut AppView, action: Action) { match action { - Action::UpdateFeatures(features, index) => { - app.update_features_crates(features, index); - - } Action::ToggleShowFeatures => { app.toggle_show_features(); } @@ -96,9 +93,73 @@ pub fn update(app: &mut AppView, action: Action) { } }); } + Action::FetchFeatures(category) => { + let client = crates_io_api::AsyncClient::new( + "josuebarretogit (josuebarretogit@gmail.com)", + Duration::from_millis(500), + ) + .unwrap(); + match category { + CategoriesTabs::General => { + let mut general_crates = app.general_crates.clone(); + let tx = app.action_tx.clone(); + tokio::spawn(async move { + for crateitem in general_crates.iter_mut() { + let crate_name = crateitem.name.as_str(); + let response = client.get_crate(crate_name).await; + + if let Ok(information) = response { + let features: Vec = match information.versions.first() { + Some(latest) => latest.features.clone().into_keys().collect(), + None => vec!["This crate has no features".to_string()], + }; + + crateitem.features = Some(features); + }; + } + tx.send(Action::UpdateFeatures( + CategoriesTabs::General, + general_crates, + )) + .unwrap(); + }); + } + CategoriesTabs::Common => { + let mut common_crates = app.common_crates.clone(); + let tx = app.action_tx.clone(); + tokio::spawn(async move { + for crateitem in common_crates.iter_mut() { + let crate_name = crateitem.name.as_str(); + let response = client.get_crate(crate_name).await; + + if let Ok(information) = response { + let features: Vec = match information.versions.first() { + Some(latest) => latest.features.clone().into_keys().collect(), + None => vec!["This crate has no features".to_string()], + }; + + crateitem.features = Some(features); + }; + } + tx.send(Action::UpdateFeatures( + CategoriesTabs::Common, + common_crates, + )) + .unwrap(); + }); + } + _ => {} + } + + } + + Action::UpdateFeatures(category, items) => match category { + CategoriesTabs::General => app.general_crates = items, + CategoriesTabs::Common => app.common_crates = items, + _ => {} + }, Action::Quit => app.exit(), - _ => {} } } pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> { @@ -123,7 +184,6 @@ pub fn handle_event(tx: UnboundedSender) -> tokio::task::JoinHandle<()> KeyCode::Char('d') => Action::CheckDocs, KeyCode::Char('c') => Action::CheckCratesIo, KeyCode::Char('f') => Action::ToggleShowFeatures, - _ => Action::Tick, } } else { @@ -152,6 +212,15 @@ pub async fn run() -> Result<(), Box> { let mut app = AppView::setup(action_tx.clone(), &json_parser); + std::thread::spawn(move || { + action_tx + .send(Action::FetchFeatures(CategoriesTabs::General)) + .unwrap(); + action_tx + .send(Action::FetchFeatures(CategoriesTabs::Common)) + .unwrap(); + }); + let task = handle_event(app.action_tx.clone()); loop { diff --git a/src/view/ui.rs b/src/view/ui.rs index b55395d..6b2c4eb 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -1,7 +1,7 @@ #![allow(clippy::too_many_lines)] -use std::{time::Duration, usize}; +use std::{thread::spawn, time::Duration, usize}; use throbber_widgets_tui::ThrobberState; -use tokio::sync::mpsc::UnboundedSender; +use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender}; use ratatui::{ prelude::*, @@ -40,19 +40,17 @@ pub struct AppView { pub exit: bool, pub is_showing_features: bool, - fetch_once: bool, - - categories_list_state: ListState, - general_crates: Vec, - math_crates: Vec, - ffi_crates: Vec, - cryptography_crates: Vec, - common_crates: Vec, - concurrency_crates: Vec, - networking_crates: Vec, - database_crates: Vec, - clis_crates: Vec, - graphics_crates: Vec, + pub categories_list_state: ListState, + pub general_crates: Vec, + pub math_crates: Vec, + pub ffi_crates: Vec, + pub cryptography_crates: Vec, + pub common_crates: Vec, + pub concurrency_crates: Vec, + pub networking_crates: Vec, + pub database_crates: Vec, + pub clis_crates: Vec, + pub graphics_crates: Vec, } #[derive(Default)] @@ -157,22 +155,31 @@ impl AppView { list_state.select(Some(0)); feature_list_state.select(Some(0)); - let general_crates = page_contents.get_general_crates(); - - let math_crates = page_contents.get_crates(&Categories::Math); - let ffi_crates = page_contents.get_crates(&Categories::FFI); - let cryptography_crates = page_contents.get_crates(&Categories::Cryptography); - - let common_crates = page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Common); - let concurrency_crates = - page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Concurrency); - let networking_crates = - page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Networking); - let database_crates = - page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Databases); - let clis_crates = page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Clis); - let graphics_crates = - page_contents.get_crates_with_sub(&CategoriesWithSubCategories::Graphics); + let general_crates: Vec = page_contents.get_general_crates().into(); + + let math_crates: Vec = page_contents.get_crates(&Categories::Math).into(); + let ffi_crates: Vec = page_contents.get_crates(&Categories::FFI).into(); + let cryptography_crates: Vec = + page_contents.get_crates(&Categories::Cryptography).into(); + + let common_crates: Vec = page_contents + .get_crates_with_sub(&CategoriesWithSubCategories::Common) + .into(); + let concurrency_crates: Vec = page_contents + .get_crates_with_sub(&CategoriesWithSubCategories::Concurrency) + .into(); + let networking_crates: Vec = page_contents + .get_crates_with_sub(&CategoriesWithSubCategories::Networking) + .into(); + let database_crates: Vec = page_contents + .get_crates_with_sub(&CategoriesWithSubCategories::Databases) + .into(); + let clis_crates: Vec = page_contents + .get_crates_with_sub(&CategoriesWithSubCategories::Clis) + .into(); + let graphics_crates: Vec = page_contents + .get_crates_with_sub(&CategoriesWithSubCategories::Graphics) + .into(); Self { action_tx, @@ -182,19 +189,17 @@ impl AppView { is_adding_dependencies: false, loader_state: ThrobberState::default(), - general_crates: general_crates.into(), - - math_crates: math_crates.into(), - ffi_crates: ffi_crates.into(), + general_crates, - cryptography_crates: cryptography_crates.into(), - - common_crates: common_crates.into(), - concurrency_crates: concurrency_crates.into(), - networking_crates: networking_crates.into(), - database_crates: database_crates.into(), - clis_crates: clis_crates.into(), - graphics_crates: graphics_crates.into(), + math_crates, + ffi_crates, + cryptography_crates, + common_crates, + concurrency_crates, + networking_crates, + database_crates, + clis_crates, + graphics_crates, categories_list_state: list_state, @@ -203,7 +208,6 @@ impl AppView { popup_widget: Popup::default(), features: Features::default(), - fetch_once: true, } } @@ -282,6 +286,7 @@ impl AppView { fn render_crates_list(&mut self, area: Rect, buf: &mut Buffer) { match self.category_tabs { CategoriesTabs::General => { + self.crates_list.crates_widget_list = CratesListWidget::new(&self.general_crates); StatefulWidget::render( @@ -290,43 +295,6 @@ impl AppView { buf, &mut self.crates_list.state, ); - - if self.fetch_once { - self.fetch_once = false; - for (index, item) in self.general_crates.iter().cloned().enumerate() { - let tx = self.action_tx.clone(); - - let client = crates_io_api::AsyncClient::new( - "josuebarretogit (josuebarretogit@gmail.com)", - Duration::from_millis(500), - ) - .unwrap(); - - tokio::spawn(async move { - let crate_name = item.name.as_str(); - let response = client.get_crate(crate_name).await; - match response { - Ok(information) => { - let features: Vec = match information.versions.first() { - Some(latest) => { - latest.features.clone().into_keys().collect() - } - None => vec!["This crate has no features".to_string()], - }; - - tx.send(Action::UpdateFeatures(features, index)).unwrap(); - } - Err(_) => { - tx.send(Action::UpdateFeatures( - vec!["This crate has no features".to_string()], - index, - )) - .unwrap(); - } - }; - }); - } - } } CategoriesTabs::Graphics => { self.crates_list.crates_widget_list = CratesListWidget::new(&self.graphics_crates); @@ -711,11 +679,4 @@ impl AppView { self.is_showing_features = !self.is_showing_features; } } - - pub fn update_features_crates(&mut self, features: Vec, index: usize) { - match self.category_tabs { - CategoriesTabs::General => self.general_crates[index].features = Some(features), - _ => {} - } - } } diff --git a/src/view/widgets.rs b/src/view/widgets.rs index fa560c6..3922f0e 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -71,21 +71,23 @@ impl FeaturesWidgetList { impl StatefulWidget for FeaturesWidgetList { type State = ListState; fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { - Block::bordered().title("").render(area, buf); + + Block::bordered().title("Features").render(area, buf); let inner_area = area.inner(&Margin { vertical: 1, horizontal: 1, }); + let features = if self.features.is_some() { self.features.unwrap() } else { - vec![FeatureItemList::new("Fetching features".to_string())] + vec![FeatureItemList::new("Fetching features, please wait a moment".to_string())] }; let features_list = List::new(features) .highlight_style(Style::default().blue()) - .highlight_symbol("* ") + .highlight_symbol(">> ") .direction(ListDirection::TopToBottom); StatefulWidget::render(features_list, inner_area, buf, state); @@ -118,7 +120,7 @@ impl StatefulWidget for Popup { } } -#[derive(Default, Clone)] +#[derive(Default, Clone, PartialEq, Eq, PartialOrd, Ord, Debug)] pub struct CrateItemList { pub name: String, pub description: String, @@ -205,7 +207,7 @@ impl From for ListItem<'_> { impl StatefulWidget for CratesListWidget { type State = ListState; fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { - let block = Block::bordered().padding(Padding::uniform(1)); + let block = Block::default().padding(Padding::uniform(1)); let list = List::new(self.crates) .block(block) @@ -226,7 +228,7 @@ impl CratesListWidget { } } -#[derive(Default, Clone, Copy, Display, FromRepr, EnumIter)] +#[derive(Default, Clone, Copy, Display, FromRepr, EnumIter, PartialEq, Eq, PartialOrd, Ord, Debug)] pub enum CategoriesTabs { #[strum(to_string = "General")] #[default] From c4747de04efe886186200a21005dfca8e6643a8b Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Fri, 31 May 2024 18:57:04 -0500 Subject: [PATCH 15/27] trying to fetch features for each crate part 4 --- src/tui/handler.rs | 188 ++++++++++++++++++++++++++++----------------- 1 file changed, 118 insertions(+), 70 deletions(-) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index f822ab9..0dbd3df 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -1,6 +1,8 @@ -use core::panic; +use core::{alloc, panic}; +use std::sync::Arc; use std::{error::Error, time::Duration}; +use crates_io_api::CratesQueryBuilder; use crossterm::event::{KeyCode, KeyEventKind}; use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; @@ -11,7 +13,7 @@ use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { - FetchFeatures(CategoriesTabs), + FetchFeatures, UpdateFeatures(CategoriesTabs, Vec), Tick, ToggleShowFeatures, @@ -29,6 +31,7 @@ pub enum Action { Quit, } +#[allow(clippy::too_many_lines)] pub fn update(app: &mut AppView, action: Action) { match action { Action::ToggleShowFeatures => { @@ -85,7 +88,7 @@ pub fn update(app: &mut AppView, action: Action) { tokio::spawn(async move { match deps_builder.add_dependencies() { - Ok(_) => { + Ok(()) => { tx.send(Action::ShowAddingDependenciesOperation).unwrap(); } Err(e) => panic!("An Error ocurred, please report it on github: https://github.com/josueBarretogit/get_blessed_rs \n @@ -93,70 +96,95 @@ pub fn update(app: &mut AppView, action: Action) { } }); } - Action::FetchFeatures(category) => { - let client = crates_io_api::AsyncClient::new( - "josuebarretogit (josuebarretogit@gmail.com)", - Duration::from_millis(500), - ) - .unwrap(); - match category { - CategoriesTabs::General => { - let mut general_crates = app.general_crates.clone(); - let tx = app.action_tx.clone(); - tokio::spawn(async move { - for crateitem in general_crates.iter_mut() { - let crate_name = crateitem.name.as_str(); - let response = client.get_crate(crate_name).await; - - if let Ok(information) = response { - let features: Vec = match information.versions.first() { - Some(latest) => latest.features.clone().into_keys().collect(), - None => vec!["This crate has no features".to_string()], - }; - - crateitem.features = Some(features); - }; - } - tx.send(Action::UpdateFeatures( - CategoriesTabs::General, - general_crates, - )) - .unwrap(); - }); - } - CategoriesTabs::Common => { - let mut common_crates = app.common_crates.clone(); - let tx = app.action_tx.clone(); - tokio::spawn(async move { - for crateitem in common_crates.iter_mut() { - let crate_name = crateitem.name.as_str(); - let response = client.get_crate(crate_name).await; - - if let Ok(information) = response { - let features: Vec = match information.versions.first() { - Some(latest) => latest.features.clone().into_keys().collect(), - None => vec!["This crate has no features".to_string()], - }; - - crateitem.features = Some(features); - }; - } - tx.send(Action::UpdateFeatures( - CategoriesTabs::Common, - common_crates, - )) - .unwrap(); - }); - } - _ => {} - } + Action::FetchFeatures => { + let client = Arc::new( + crates_io_api::AsyncClient::new( + "josuebarretogit (josuebarretogit@gmail.com)", + Duration::from_millis(100), + ) + .unwrap(), + ); + + fetch_features( + app.general_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::General, + ); + + fetch_features( + app.common_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Common, + ); + + fetch_features( + app.math_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Math, + ); + + fetch_features( + app.ffi_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::FFI, + ); + + fetch_features( + app.clis_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Clis, + ); + + + fetch_features( + app.graphics_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Graphics, + ); + + + fetch_features( + app.database_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Databases, + ); + + + fetch_features( + app.networking_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Networking, + ); + + + fetch_features( + app.concurrency_crates.clone(), + app.action_tx.clone(), + Arc::clone(&client), + CategoriesTabs::Concurrency, + ); } Action::UpdateFeatures(category, items) => match category { CategoriesTabs::General => app.general_crates = items, CategoriesTabs::Common => app.common_crates = items, - _ => {} + CategoriesTabs::Math => app.math_crates = items, + CategoriesTabs::FFI => app.ffi_crates = items, + CategoriesTabs::Clis => app.clis_crates = items, + CategoriesTabs::Graphics => app.graphics_crates = items, + CategoriesTabs::Databases => app.database_crates = items, + CategoriesTabs::Networking => app.networking_crates = items, + CategoriesTabs::Concurrency => app.concurrency_crates = items, + CategoriesTabs::Cryptography => app.cryptography_crates = items, }, Action::Quit => app.exit(), @@ -212,17 +240,10 @@ pub async fn run() -> Result<(), Box> { let mut app = AppView::setup(action_tx.clone(), &json_parser); - std::thread::spawn(move || { - action_tx - .send(Action::FetchFeatures(CategoriesTabs::General)) - .unwrap(); - action_tx - .send(Action::FetchFeatures(CategoriesTabs::Common)) - .unwrap(); - }); - let task = handle_event(app.action_tx.clone()); + action_tx.send(Action::FetchFeatures).unwrap(); + loop { terminal.draw(|f| { let area = f.size(); @@ -242,3 +263,30 @@ pub async fn run() -> Result<(), Box> { Ok(()) } + +fn fetch_features( + crates: Vec, + tx: UnboundedSender, + client: Arc, + category: CategoriesTabs, +) { + let mut crates_with_features = crates; + tokio::spawn(async move { + for crateitem in &mut crates_with_features { + let crate_name = crateitem.name.as_str(); + let response = client.get_crate(crate_name).await; + + if let Ok(information) = response { + match information.versions.first() { + Some(latest) => { + crateitem.features = Some(latest.features.clone().into_keys().collect()); + } + None => crateitem.features = None, + }; + }; + } + + tx.send(Action::UpdateFeatures(category, crates_with_features)) + .unwrap(); + }); +} From 5454af784cae9bca3b9b9fa1274f5a317056614d Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Sat, 1 Jun 2024 20:43:27 -0500 Subject: [PATCH 16/27] fetching features in a concurrent manner i think --- src/tui/handler.rs | 153 ++++++++++++++++++++++++++------------------- 1 file changed, 87 insertions(+), 66 deletions(-) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 0dbd3df..c8a0fb0 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -2,7 +2,6 @@ use core::{alloc, panic}; use std::sync::Arc; use std::{error::Error, time::Duration}; -use crates_io_api::CratesQueryBuilder; use crossterm::event::{KeyCode, KeyEventKind}; use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; @@ -14,7 +13,7 @@ use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { FetchFeatures, - UpdateFeatures(CategoriesTabs, Vec), + UpdateFeatures(CategoriesTabs, Vec, usize), Tick, ToggleShowFeatures, ShowLoadingAddingDeps, @@ -106,85 +105,108 @@ pub fn update(app: &mut AppView, action: Action) { ); fetch_features( - app.general_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), + &app.general_crates, + &app.action_tx, + &client, CategoriesTabs::General, ); fetch_features( - app.common_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), + &app.common_crates, + &app.action_tx, + &client, CategoriesTabs::Common, ); fetch_features( - app.math_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), - CategoriesTabs::Math, + &app.ffi_crates, + &app.action_tx, + &client, + CategoriesTabs::FFI, ); fetch_features( - app.ffi_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), - CategoriesTabs::FFI, + &app.math_crates, + &app.action_tx, + &client, + CategoriesTabs::Math, ); fetch_features( - app.clis_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), + &app.clis_crates, + &app.action_tx, + &client, CategoriesTabs::Clis, ); - fetch_features( - app.graphics_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), + &app.graphics_crates, + &app.action_tx, + &client, CategoriesTabs::Graphics, ); + fetch_features( + &app.networking_crates, + &app.action_tx, + &client, + CategoriesTabs::Networking, + ); fetch_features( - app.database_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), + &app.database_crates, + &app.action_tx, + &client, CategoriesTabs::Databases, ); - fetch_features( - app.networking_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), - CategoriesTabs::Networking, + &app.cryptography_crates, + &app.action_tx, + &client, + CategoriesTabs::Cryptography, ); - fetch_features( - app.concurrency_crates.clone(), - app.action_tx.clone(), - Arc::clone(&client), + &app.concurrency_crates, + &app.action_tx, + &client, CategoriesTabs::Concurrency, ); - } - Action::UpdateFeatures(category, items) => match category { - CategoriesTabs::General => app.general_crates = items, - CategoriesTabs::Common => app.common_crates = items, - CategoriesTabs::Math => app.math_crates = items, - CategoriesTabs::FFI => app.ffi_crates = items, - CategoriesTabs::Clis => app.clis_crates = items, - CategoriesTabs::Graphics => app.graphics_crates = items, - CategoriesTabs::Databases => app.database_crates = items, - CategoriesTabs::Networking => app.networking_crates = items, - CategoriesTabs::Concurrency => app.concurrency_crates = items, - CategoriesTabs::Cryptography => app.cryptography_crates = items, + Action::UpdateFeatures(category, features, crate_index_to_update) => match category { + CategoriesTabs::General => { + app.general_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Common => { + app.common_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::FFI => { + app.ffi_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Math => { + app.math_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Clis => { + app.clis_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Graphics => { + app.graphics_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Databases => { + app.database_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Networking => { + app.networking_crates[crate_index_to_update].features = Some(features); + } + + CategoriesTabs::Concurrency => { + app.concurrency_crates[crate_index_to_update].features = Some(features); + } + CategoriesTabs::Cryptography => { + app.cryptography_crates[crate_index_to_update].features = Some(features); + } }, Action::Quit => app.exit(), @@ -265,28 +287,27 @@ pub async fn run() -> Result<(), Box> { } fn fetch_features( - crates: Vec, - tx: UnboundedSender, - client: Arc, + crates: &[CrateItemList], + tx: &UnboundedSender, + client: &Arc, category: CategoriesTabs, ) { - let mut crates_with_features = crates; - tokio::spawn(async move { - for crateitem in &mut crates_with_features { - let crate_name = crateitem.name.as_str(); - let response = client.get_crate(crate_name).await; - + for (index, crateitem) in crates.iter().enumerate() { + let crate_name = crateitem.name.clone(); + let tx = tx.clone(); + let client = Arc::clone(client); + tokio::spawn(async move { + let response = client.get_crate(&crate_name).await; if let Ok(information) = response { - match information.versions.first() { - Some(latest) => { - crateitem.features = Some(latest.features.clone().into_keys().collect()); - } - None => crateitem.features = None, + if let Some(latest) = information.versions.first() { + tx.send(Action::UpdateFeatures( + category, + latest.features.clone().into_keys().collect(), + index, + )) + .unwrap(); }; }; - } - - tx.send(Action::UpdateFeatures(category, crates_with_features)) - .unwrap(); - }); + }); + } } From adb572d0d7aaa752c5745d3be7af79c1cd59a2b8 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Sat, 1 Jun 2024 21:08:40 -0500 Subject: [PATCH 17/27] make functions to select features --- src/tui/handler.rs | 20 ++++++++++-- src/view/ui.rs | 80 ++++++++++++++++++++++++++------------------- src/view/widgets.rs | 48 ++++++++++++++++----------- 3 files changed, 93 insertions(+), 55 deletions(-) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index c8a0fb0..471c2ad 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -48,9 +48,23 @@ pub fn update(app: &mut AppView, action: Action) { Action::CheckDocs => app.check_docs(), Action::CheckCratesIo => app.check_crates_io(), - Action::ScrollPreviousCategory => app.previos_tab(), - Action::ScrollNextCategory => app.next_tab(), - Action::ToggleOne => app.toggle_select_dependencie(), + Action::ScrollPreviousCategory => { + if !app.is_showing_features { + app.previos_tab(); + } + } + Action::ScrollNextCategory => { + if !app.is_showing_features { + app.next_tab(); + } + } + Action::ToggleOne => { + if app.is_showing_features { + app.toggle_select_one_feature(); + } else { + app.toggle_select_dependencie(); + } + } Action::ToggleAll => app.toggle_select_all_dependencies(), Action::Tick => { app.on_tick(); diff --git a/src/view/ui.rs b/src/view/ui.rs index 6b2c4eb..2f685a4 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -110,6 +110,10 @@ impl Widget for &mut AppView { self.render_footer_instructions(footer_area, buf); + if self.is_showing_features { + self.render_features_popup(area, buf); + } + if self.is_adding_dependencies { let center = centered_rect(60, 20, area); Clear.render(center, buf); @@ -120,28 +124,6 @@ impl Widget for &mut AppView { &mut self.loader_state, ); } - - if self.is_showing_features { - let center = centered_rect(80, 20, area); - let current_crate_selected = self.get_current_crate_selected().unwrap(); - - let features = if current_crate_selected.features.is_some() { - Some( - current_crate_selected - .features - .unwrap() - .iter() - .map(|featu| FeatureItemList::new(featu.to_string())) - .collect(), - ) - } else { - None - }; - - let features_popup = FeaturesWidgetList::new(features); - Clear.render(center, buf); - StatefulWidget::render(features_popup, center, buf, &mut self.features.state); - } } } @@ -286,7 +268,6 @@ impl AppView { fn render_crates_list(&mut self, area: Rect, buf: &mut Buffer) { match self.category_tabs { CategoriesTabs::General => { - self.crates_list.crates_widget_list = CratesListWidget::new(&self.general_crates); StatefulWidget::render( @@ -462,9 +443,9 @@ impl AppView { pub fn scroll_up_features(&mut self) { let next_index = match self.features.state.selected() { Some(index) => { + let (current_crate_selected, _) = self.get_current_crate_selected().unwrap(); if index == 0 { - self.get_current_crate_selected() - .unwrap() + current_crate_selected .features .unwrap_or_default() .len() @@ -481,10 +462,9 @@ impl AppView { pub fn scroll_down_features(&mut self) { let next = match self.features.state.selected() { Some(index) => { + let (current_crate_selected, _) = self.get_current_crate_selected().unwrap(); if index - == self - .get_current_crate_selected() - .unwrap() + == current_crate_selected .features .unwrap_or_default() .iter() @@ -583,11 +563,11 @@ impl AppView { } } - fn get_current_crate_selected(&self) -> Option { - self.crates_list - .state - .selected() - .map(|index| self.crates_list.crates_widget_list.crates[index].clone()) + fn get_current_crate_selected(&self) -> Option<(CrateItemList, usize)> { + self.crates_list.state.selected().map(|index| { + let crate_item = self.crates_list.crates_widget_list.crates[index].clone(); + (crate_item, index) + }) } pub fn toggle_select_dependencie(&mut self) { @@ -679,4 +659,38 @@ impl AppView { self.is_showing_features = !self.is_showing_features; } } + + pub fn toggle_select_one_feature(&mut self) {} + + fn render_features_popup(&mut self, area: Rect, buf: &mut Buffer) { + let center = centered_rect(80, 40, area); + let (current_crate_selected, index_current_crate_selected) = + self.get_current_crate_selected().unwrap(); + let features = if current_crate_selected.features.is_some() { + Some( + current_crate_selected + .features + .unwrap() + .iter() + .map(|featu| FeatureItemList::new(featu.to_string())) + .collect(), + ) + } else { + None + }; + + self.features.widget = FeaturesWidgetList::new( + index_current_crate_selected, + current_crate_selected.name, + features, + ); + + Clear.render(center, buf); + StatefulWidget::render( + self.features.widget.clone(), + center, + buf, + &mut self.features.state, + ); + } } diff --git a/src/view/widgets.rs b/src/view/widgets.rs index 3922f0e..7393273 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -24,17 +24,18 @@ pub struct Popup { pub message: String, } - #[derive(Debug, Default, Clone)] pub struct FeatureItemList { - name : String, - status : ItemListStatus + name: String, + status: ItemListStatus, } impl FeatureItemList { - - pub fn new(name : String) -> Self { - Self { name, status: ItemListStatus::Unselected } + pub fn new(name: String) -> Self { + Self { + name, + status: ItemListStatus::Unselected, + } } } @@ -45,34 +46,39 @@ impl From for ListItem<'_> { ItemListStatus::Unselected => ("☐", Color::default()), }; - let line = Line::from(vec![ - value.name.into(), - " ".into(), - is_selected.into(), - ]); + let line = Line::from(vec![value.name.into(), " ".into(), is_selected.into()]); ListItem::new(line).style(Style::default().bg(bg_color)) - } } - #[derive(Debug, Default, Clone)] pub struct FeaturesWidgetList { + pub index_current_crate: usize, + pub crate_name: String, pub features: Option>, } impl FeaturesWidgetList { - pub fn new(features: Option>) -> Self { - Self { features } + pub fn new( + index_current_crate: usize, + crate_name: String, + features: Option>, + ) -> Self { + Self { + index_current_crate, + crate_name, + features, + } } } impl StatefulWidget for FeaturesWidgetList { type State = ListState; fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { - - Block::bordered().title("Features").render(area, buf); + Block::bordered() + .title(format!("Features of crate: {}", self.crate_name)) + .render(area, buf); let inner_area = area.inner(&Margin { vertical: 1, @@ -82,7 +88,9 @@ impl StatefulWidget for FeaturesWidgetList { let features = if self.features.is_some() { self.features.unwrap() } else { - vec![FeatureItemList::new("Fetching features, please wait a moment".to_string())] + vec![FeatureItemList::new( + "Fetching features, please wait a moment".to_string(), + )] }; let features_list = List::new(features) @@ -228,7 +236,9 @@ impl CratesListWidget { } } -#[derive(Default, Clone, Copy, Display, FromRepr, EnumIter, PartialEq, Eq, PartialOrd, Ord, Debug)] +#[derive( + Default, Clone, Copy, Display, FromRepr, EnumIter, PartialEq, Eq, PartialOrd, Ord, Debug, +)] pub enum CategoriesTabs { #[strum(to_string = "General")] #[default] From 2cce339f52a3f7d65d820c23d7037698beed4a88 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Sun, 2 Jun 2024 16:13:05 -0500 Subject: [PATCH 18/27] added loading screen for features --- src/backend.rs | 21 +++++++++++++-------- src/dependency_builder.rs | 31 +++++++++++++++++++++++++++++-- src/tui/handler.rs | 16 +++++++++++++--- src/utils.rs | 21 +++++---------------- src/view/ui.rs | 36 ++++++++++++++++-------------------- src/view/widgets.rs | 12 +++++++----- 6 files changed, 83 insertions(+), 54 deletions(-) diff --git a/src/backend.rs b/src/backend.rs index 7556f83..e0ea7c9 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -1,6 +1,6 @@ use strum::{Display, EnumIter, FromRepr}; -use crate::view::widgets::{CrateItemList, ItemListStatus}; +use crate::view::widgets::{CrateItemList, FeatureItemList, ItemListStatus}; pub mod backend; @@ -26,16 +26,21 @@ impl From for Vec { fn from(val: crate::backend::Table) -> Self { let mut items: Vec = vec![]; - val.entries.iter().for_each(|entr| { - entr.crates.iter().for_each(|cr| { + for entr in val.entries { + for krate in entr.crates { items.push(CrateItemList::new( - cr.name.clone(), - cr.description.clone(), + krate.name.clone(), + krate.description.clone(), ItemListStatus::default(), - cr.features.clone(), + krate.features.clone().map(|features| { + features + .iter() + .map(|feat| FeatureItemList::new(feat.clone())) + .collect() + }), )); - }); - }); + } + } items } diff --git a/src/dependency_builder.rs b/src/dependency_builder.rs index f5e3ff0..b62320f 100644 --- a/src/dependency_builder.rs +++ b/src/dependency_builder.rs @@ -1,8 +1,11 @@ +use std::fmt::Write; use std::{io, ops::Deref, process::Command}; +use crate::view::widgets::{CrateItemList, ItemListStatus}; + pub mod dependency_builder; -#[derive(Clone, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct CrateToAdd { pub crate_name: String, pub features: Option>, @@ -15,6 +18,26 @@ impl Deref for CrateToAdd { } } +impl From for CrateToAdd { + fn from(value: CrateItemList) -> Self { + Self { + crate_name: value.name, + features: value.features.map(|features| { + features + .iter() + .filter_map(|feature_item| { + if feature_item.status == ItemListStatus::Selected { + Some(feature_item.name.clone()) + } else { + None + } + }) + .collect() + }), + } + } +} + pub struct DependenciesBuilder { crates_to_add: Vec, } @@ -27,7 +50,11 @@ impl DependenciesBuilder { pub fn add_dependencies(&self) -> io::Result<()> { for dependency in self.crates_to_add.clone() { if let Some(features) = dependency.features { - let features: String = features.iter().map(|feat| format!(" {} ", feat)).collect(); + let features: String = + features.iter().fold(String::new(), |mut output, feature| { + let _ = write!(output, " {feature} "); + output + }); Command::new("cargo") .arg("add") .arg(dependency.crate_name) diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 471c2ad..07f14dd 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -7,13 +7,13 @@ use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; use crate::content_parser::content_parser::JsonContentParser; -use crate::view::widgets::{CategoriesTabs, CrateItemList}; +use crate::view::widgets::{CategoriesTabs, CrateItemList, FeatureItemList}; use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub enum Action { FetchFeatures, - UpdateFeatures(CategoriesTabs, Vec, usize), + UpdateFeatures(CategoriesTabs, Vec, usize), Tick, ToggleShowFeatures, ShowLoadingAddingDeps, @@ -192,34 +192,44 @@ pub fn update(app: &mut AppView, action: Action) { Action::UpdateFeatures(category, features, crate_index_to_update) => match category { CategoriesTabs::General => { app.general_crates[crate_index_to_update].features = Some(features); + app.general_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Common => { app.common_crates[crate_index_to_update].features = Some(features); + app.common_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::FFI => { app.ffi_crates[crate_index_to_update].features = Some(features); + app.ffi_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Math => { app.math_crates[crate_index_to_update].features = Some(features); + app.math_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Clis => { app.clis_crates[crate_index_to_update].features = Some(features); + app.clis_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Graphics => { app.graphics_crates[crate_index_to_update].features = Some(features); + app.graphics_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Databases => { app.database_crates[crate_index_to_update].features = Some(features); + app.database_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Networking => { app.networking_crates[crate_index_to_update].features = Some(features); + app.networking_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Concurrency => { app.concurrency_crates[crate_index_to_update].features = Some(features); + app.concurrency_crates[crate_index_to_update].is_loading = false; } CategoriesTabs::Cryptography => { app.cryptography_crates[crate_index_to_update].features = Some(features); + app.cryptography_crates[crate_index_to_update].is_loading = false; } }, @@ -316,7 +326,7 @@ fn fetch_features( if let Some(latest) = information.versions.first() { tx.send(Action::UpdateFeatures( category, - latest.features.clone().into_keys().collect(), + latest.features.clone().into_keys().map(|feat| FeatureItemList::new(feat)).collect(), index, )) .unwrap(); diff --git a/src/utils.rs b/src/utils.rs index e46b49b..63868b0 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -6,7 +6,7 @@ use crate::{ }; pub fn toggle_status_all(dependencies: &mut [CrateItemList]) { - for item in dependencies.iter_mut() { + for item in dependencies { item.status = match item.status { ItemListStatus::Selected => ItemListStatus::Unselected, ItemListStatus::Unselected => ItemListStatus::Selected, @@ -16,10 +16,8 @@ pub fn toggle_status_all(dependencies: &mut [CrateItemList]) { pub fn toggle_dependencies_all(crates: &[CrateItemList], dependencies_added: &mut Vec) { for item in crates { - let dependency_to_add = CrateToAdd { - crate_name: item.name.clone(), - features: item.features.clone(), - }; + let dependency_to_add = CrateToAdd::from(item.clone()); + if dependencies_added.contains(&dependency_to_add) && item.status == ItemListStatus::Unselected { @@ -37,20 +35,11 @@ pub fn toggle_one_dependency( match crate_selected.status { ItemListStatus::Selected => { crate_selected.status = ItemListStatus::Unselected; - dependencies_added.retain(|item| { - *item - != CrateToAdd { - crate_name: crate_selected.name.clone(), - features: crate_selected.features.clone(), - } - }); + dependencies_added.retain(|item| *item.crate_name != crate_selected.name); } ItemListStatus::Unselected => { crate_selected.status = ItemListStatus::Selected; - dependencies_added.push(CrateToAdd { - crate_name: crate_selected.name.clone(), - features: crate_selected.features.clone(), - }); + dependencies_added.push(CrateToAdd::from(crate_selected.clone())); } } } diff --git a/src/view/ui.rs b/src/view/ui.rs index 2f685a4..1b2b244 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -8,7 +8,7 @@ use ratatui::{ symbols::border, widgets::{ block::{Block, Position, Title}, - Clear, ListState, + Clear, ListState, Paragraph, }, }; @@ -656,6 +656,7 @@ impl AppView { #[inline] pub fn toggle_show_features(&mut self) { if self.get_current_crate_selected().is_some() { + self.features.state.select(Some(0)); self.is_showing_features = !self.is_showing_features; } } @@ -666,31 +667,26 @@ impl AppView { let center = centered_rect(80, 40, area); let (current_crate_selected, index_current_crate_selected) = self.get_current_crate_selected().unwrap(); - let features = if current_crate_selected.features.is_some() { - Some( - current_crate_selected - .features - .unwrap() - .iter() - .map(|featu| FeatureItemList::new(featu.to_string())) - .collect(), - ) - } else { - None - }; self.features.widget = FeaturesWidgetList::new( index_current_crate_selected, current_crate_selected.name, - features, + current_crate_selected.features, ); Clear.render(center, buf); - StatefulWidget::render( - self.features.widget.clone(), - center, - buf, - &mut self.features.state, - ); + + if current_crate_selected.is_loading { + Paragraph::new("Fetching features, please wait a moment") + .block(Block::bordered().title(self.features.widget.crate_name.clone())) + .render(center, buf); + } else { + StatefulWidget::render( + self.features.widget.clone(), + center, + buf, + &mut self.features.state, + ); + } } } diff --git a/src/view/widgets.rs b/src/view/widgets.rs index 7393273..03d7c5a 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -24,10 +24,10 @@ pub struct Popup { pub message: String, } -#[derive(Debug, Default, Clone)] +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct FeatureItemList { - name: String, - status: ItemListStatus, + pub name: String, + pub status: ItemListStatus, } impl FeatureItemList { @@ -132,8 +132,9 @@ impl StatefulWidget for Popup { pub struct CrateItemList { pub name: String, pub description: String, - pub features: Option>, + pub features: Option>, pub status: ItemListStatus, + pub is_loading: bool, } #[derive(Clone, Default)] @@ -177,13 +178,14 @@ impl CrateItemList { name: String, description: String, status: ItemListStatus, - features: Option>, + features: Option>, ) -> Self { Self { name, description, features, status, + is_loading : true, } } } From fd802cdefe286205733adb3796a1c7583d595516 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Sun, 2 Jun 2024 17:13:12 -0500 Subject: [PATCH 19/27] added function to select features of a crate --- src/utils.rs | 32 +++++++++++++++++++++----- src/view/ui.rs | 62 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 86 insertions(+), 8 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index 63868b0..5c79b39 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,8 +1,11 @@ -use ratatui::layout::{Constraint, Layout, Rect}; +use ratatui::{ + layout::{Constraint, Layout, Rect}, + widgets::ListState, +}; use crate::{ dependency_builder::CrateToAdd, - view::widgets::{CrateItemList, ItemListStatus}, + view::widgets::{CrateItemList, FeatureItemList, ItemListStatus}, }; pub fn toggle_status_all(dependencies: &mut [CrateItemList]) { @@ -18,10 +21,12 @@ pub fn toggle_dependencies_all(crates: &[CrateItemList], dependencies_added: &mu for item in crates { let dependency_to_add = CrateToAdd::from(item.clone()); - if dependencies_added.contains(&dependency_to_add) + if dependencies_added + .iter() + .any(|dependency| dependency.crate_name == dependency_to_add.crate_name) && item.status == ItemListStatus::Unselected { - dependencies_added.retain(|it| *it != *dependency_to_add); + dependencies_added.retain(|it| *it.crate_name != *dependency_to_add.crate_name); } else if item.status == ItemListStatus::Selected { dependencies_added.push(dependency_to_add); } @@ -44,10 +49,25 @@ pub fn toggle_one_dependency( } } -pub fn trim_ending(text: &str) -> String { - todo!() +pub fn toggle_one_feature(current_crate: &mut CrateItemList, features_list_state: &ListState) { + if let Some((index, current_crate_features)) = features_list_state + .selected() + .zip(current_crate.features.as_mut()) + { + let current_feature_selected = &mut current_crate_features[index]; + + match current_feature_selected.status { + ItemListStatus::Selected => { + current_feature_selected.status = ItemListStatus::Unselected; + } + ItemListStatus::Unselected => { + current_feature_selected.status = ItemListStatus::Selected; + } + } + }; } + /// helper function to create a centered rect using up certain percentage of the available rect `r` pub fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { let popup_layout = Layout::vertical([ diff --git a/src/view/ui.rs b/src/view/ui.rs index 1b2b244..2ce85a4 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -17,7 +17,10 @@ use crate::{ content_parser::ContentParser, dependency_builder::CrateToAdd, tui::handler::Action, - utils::{centered_rect, toggle_dependencies_all, toggle_one_dependency, toggle_status_all}, + utils::{ + centered_rect, toggle_dependencies_all, toggle_one_dependency, toggle_one_feature, + toggle_status_all, + }, }; use super::widgets::{ @@ -661,7 +664,62 @@ impl AppView { } } - pub fn toggle_select_one_feature(&mut self) {} + pub fn toggle_select_one_feature(&mut self) { + match self.category_tabs { + CategoriesTabs::General => { + let current_crate = + &mut self.general_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::Common => { + let current_crate = + &mut self.common_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::FFI => { + let current_crate = &mut self.ffi_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + + CategoriesTabs::Math => { + let current_crate = &mut self.math_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + + CategoriesTabs::Clis => { + let current_crate = &mut self.clis_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + + CategoriesTabs::Graphics => { + let current_crate = + &mut self.graphics_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + + CategoriesTabs::Databases => { + let current_crate = + &mut self.database_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::Networking => { + let current_crate = + &mut self.networking_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::Concurrency => { + let current_crate = + &mut self.concurrency_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + + CategoriesTabs::Cryptography => { + let current_crate = + &mut self.cryptography_crates[self.features.widget.index_current_crate]; + toggle_one_feature(current_crate, &self.features.state); + } + } + } fn render_features_popup(&mut self, area: Rect, buf: &mut Buffer) { let center = centered_rect(80, 40, area); From a780476678abde3777bbab9878a595d1fb72349c Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Sun, 2 Jun 2024 17:54:24 -0500 Subject: [PATCH 20/27] added instructions for selecting features --- Cargo.lock | 4 +- src/tui/handler.rs | 2 +- src/utils.rs | 4 ++ src/view/ui.rs | 111 ++++++++++++++++++++++++-------------------- src/view/widgets.rs | 12 ++++- 5 files changed, 78 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 05b752f..921a2ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1307,9 +1307,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.65" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 07f14dd..84cc7b2 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -59,7 +59,7 @@ pub fn update(app: &mut AppView, action: Action) { } } Action::ToggleOne => { - if app.is_showing_features { + if app.is_showing_features { app.toggle_select_one_feature(); } else { app.toggle_select_dependencie(); diff --git a/src/utils.rs b/src/utils.rs index 5c79b39..465a57b 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -54,6 +54,10 @@ pub fn toggle_one_feature(current_crate: &mut CrateItemList, features_list_state .selected() .zip(current_crate.features.as_mut()) { + if current_crate_features.is_empty() { + return + } + let current_feature_selected = &mut current_crate_features[index]; match current_feature_selected.status { diff --git a/src/view/ui.rs b/src/view/ui.rs index 2ce85a4..42fc5d9 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -1,6 +1,6 @@ #![allow(clippy::too_many_lines)] use std::{thread::spawn, time::Duration, usize}; -use throbber_widgets_tui::ThrobberState; +use throbber_widgets_tui::{symbols::throbber, Throbber, ThrobberState}; use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender}; use ratatui::{ @@ -248,6 +248,8 @@ impl AppView { " ".blue(), "Check crates.io ".into(), " ".blue(), + "Select features ".into(), + " ".blue(), ])); Block::bordered() @@ -665,58 +667,57 @@ impl AppView { } pub fn toggle_select_one_feature(&mut self) { - match self.category_tabs { - CategoriesTabs::General => { - let current_crate = - &mut self.general_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } - CategoriesTabs::Common => { - let current_crate = - &mut self.common_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } - CategoriesTabs::FFI => { - let current_crate = &mut self.ffi_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } + let (current_crate_selected, index_current_crate_selected) = + self.get_current_crate_selected().unwrap(); + if !current_crate_selected.is_loading { + match self.category_tabs { + CategoriesTabs::General => { + let current_crate = &mut self.general_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::Common => { + let current_crate = &mut self.common_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::FFI => { + let current_crate = &mut self.ffi_crates[index_current_crate_selected]; + if !current_crate.is_loading { + toggle_one_feature(current_crate, &self.features.state); + } + } - CategoriesTabs::Math => { - let current_crate = &mut self.math_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } + CategoriesTabs::Math => { + let current_crate = &mut self.math_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } - CategoriesTabs::Clis => { - let current_crate = &mut self.clis_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } + CategoriesTabs::Clis => { + let current_crate = &mut self.clis_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } - CategoriesTabs::Graphics => { - let current_crate = - &mut self.graphics_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } + CategoriesTabs::Graphics => { + let current_crate = &mut self.graphics_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } - CategoriesTabs::Databases => { - let current_crate = - &mut self.database_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } - CategoriesTabs::Networking => { - let current_crate = - &mut self.networking_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } - CategoriesTabs::Concurrency => { - let current_crate = - &mut self.concurrency_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); - } + CategoriesTabs::Databases => { + let current_crate = &mut self.database_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::Networking => { + let current_crate = &mut self.networking_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } + CategoriesTabs::Concurrency => { + let current_crate = &mut self.concurrency_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } - CategoriesTabs::Cryptography => { - let current_crate = - &mut self.cryptography_crates[self.features.widget.index_current_crate]; - toggle_one_feature(current_crate, &self.features.state); + CategoriesTabs::Cryptography => { + let current_crate = &mut self.cryptography_crates[index_current_crate_selected]; + toggle_one_feature(current_crate, &self.features.state); + } } } } @@ -735,9 +736,17 @@ impl AppView { Clear.render(center, buf); if current_crate_selected.is_loading { - Paragraph::new("Fetching features, please wait a moment") - .block(Block::bordered().title(self.features.widget.crate_name.clone())) - .render(center, buf); + Block::bordered().render(center, buf); + + let loader = Throbber::default() + .label(format!( + "Fetching features of {}, please wait a moment", + self.features.widget.crate_name + )) + .throbber_set(throbber_widgets_tui::BRAILLE_SIX) + .use_type(throbber_widgets_tui::WhichUse::Spin); + + StatefulWidget::render(loader, center, buf, &mut self.loader_state); } else { StatefulWidget::render( self.features.widget.clone(), diff --git a/src/view/widgets.rs b/src/view/widgets.rs index 03d7c5a..0903b8a 100644 --- a/src/view/widgets.rs +++ b/src/view/widgets.rs @@ -78,6 +78,16 @@ impl StatefulWidget for FeaturesWidgetList { fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) { Block::bordered() .title(format!("Features of crate: {}", self.crate_name)) + .title_bottom(Line::from(vec![ + "Toggle select ".into(), + " ".bold().blue(), + "Move down ".into(), + " ".bold().blue(), + "Move up ".into(), + " ".bold().blue(), + "Close ".into(), + "".bold().blue(), + ])) .render(area, buf); let inner_area = area.inner(&Margin { @@ -185,7 +195,7 @@ impl CrateItemList { description, features, status, - is_loading : true, + is_loading: true, } } } From 5a8fcf227d3a997ef2b5bb0ea7c614409348c903 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Mon, 3 Jun 2024 21:41:17 -0500 Subject: [PATCH 21/27] added feature crate will be selected if features were selected --- Cargo.lock | 857 ++++++++++++++++++++++++++++++++++++++++++++- src/tui/handler.rs | 19 +- src/utils.rs | 61 +++- src/view/ui.rs | 59 +++- 4 files changed, 959 insertions(+), 37 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 921a2ee..0fc31a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,6 +24,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -35,6 +36,15 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +[[package]] +name = "atoi" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" +dependencies = [ + "num-traits", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -62,12 +72,24 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bitflags" version = "1.3.2" @@ -79,6 +101,18 @@ name = "bitflags" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +dependencies = [ + "serde", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] [[package]] name = "bumpalo" @@ -86,6 +120,12 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.6.0" @@ -169,6 +209,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + [[package]] name = "core-foundation" version = "0.9.4" @@ -185,6 +231,15 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + [[package]] name = "crates_io_api" version = "0.11.0" @@ -202,6 +257,36 @@ dependencies = [ "url", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + [[package]] name = "crossterm" version = "0.27.0" @@ -228,6 +313,62 @@ dependencies = [ "winapi", ] +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.66", +] + +[[package]] +name = "darling_macro" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" version = "0.3.11" @@ -237,11 +378,77 @@ dependencies = [ "powerfmt", ] +[[package]] +name = "diesel" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35b696af9ff4c0d2a507db2c5faafa8aa0205e297e5f11e203a24226d5355e7a" +dependencies = [ + "diesel_derives", +] + +[[package]] +name = "diesel_derives" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6fdd83d5947068817016e939596d246e5367279453f2a3433287894f2f2996" +dependencies = [ + "diesel_table_macro_syntax", + "dsl_auto_type", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" +dependencies = [ + "syn 2.0.66", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dotenvy" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" + +[[package]] +name = "dsl_auto_type" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab32c18ea6760d951659768a3e35ea72fc1ba0916d665a88dfe048b2a41e543f" +dependencies = [ + "darling", + "either", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "either" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +dependencies = [ + "serde", +] [[package]] name = "encoding_rs" @@ -268,6 +475,23 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if", + "home", + "windows-sys 0.48.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "eyre" version = "0.6.12" @@ -284,6 +508,17 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -356,6 +591,17 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-intrusive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot", +] + [[package]] name = "futures-io" version = "0.3.30" @@ -370,7 +616,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", ] [[package]] @@ -403,6 +649,16 @@ dependencies = [ "slab", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "get-blessed" version = "0.1.3" @@ -410,14 +666,17 @@ dependencies = [ "color-eyre", "crates_io_api", "crossterm", + "diesel", "open", "ratatui", "reqwest", "serde", + "sqlx", "strum", "strum_macros", "throbber-widgets-tui", "tokio", + "tracing", ] [[package]] @@ -466,11 +725,29 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown", +] + [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" @@ -478,6 +755,39 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "http" version = "1.1.0" @@ -574,6 +884,12 @@ dependencies = [ "tracing", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "0.5.0" @@ -654,6 +970,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "libc" @@ -661,6 +980,23 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -692,6 +1028,16 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.7.2" @@ -704,6 +1050,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.7.3" @@ -743,12 +1095,59 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "smallvec", + "zeroize", +] + [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -756,6 +1155,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -826,7 +1226,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", ] [[package]] @@ -871,7 +1271,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.1", "smallvec", "windows-targets 0.52.5", ] @@ -888,6 +1288,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -911,7 +1320,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", ] [[package]] @@ -926,6 +1335,27 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.30" @@ -1013,6 +1443,15 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_syscall" version = "0.5.1" @@ -1028,7 +1467,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "encoding_rs", "futures-channel", @@ -1065,6 +1504,26 @@ dependencies = [ "winreg", ] +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core", + "signature", + "spki", + "subtle", + "zeroize", +] + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -1090,7 +1549,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64", + "base64 0.22.1", "rustls-pki-types", ] @@ -1167,7 +1626,7 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", ] [[package]] @@ -1203,6 +1662,28 @@ dependencies = [ "serde", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -1242,6 +1723,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + [[package]] name = "slab" version = "0.4.9" @@ -1267,6 +1758,232 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "sqlformat" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" +dependencies = [ + "itertools", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" +dependencies = [ + "sqlx-core", + "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", +] + +[[package]] +name = "sqlx-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" +dependencies = [ + "ahash", + "atoi", + "byteorder", + "bytes", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-io", + "futures-util", + "hashlink", + "hex", + "indexmap", + "log", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlformat", + "thiserror", + "tracing", + "url", +] + +[[package]] +name = "sqlx-macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" +dependencies = [ + "proc-macro2", + "quote", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" +dependencies = [ + "dotenvy", + "either", + "heck 0.4.1", + "hex", + "once_cell", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2", + "sqlx-core", + "sqlx-mysql", + "sqlx-sqlite", + "syn 1.0.109", + "tempfile", + "url", +] + +[[package]] +name = "sqlx-mysql" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" +dependencies = [ + "atoi", + "base64 0.21.7", + "bitflags 2.5.0", + "byteorder", + "bytes", + "crc", + "digest", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "percent-encoding", + "rand", + "rsa", + "serde", + "sha1", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" +dependencies = [ + "atoi", + "base64 0.21.7", + "bitflags 2.5.0", + "byteorder", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "itoa", + "log", + "md-5", + "memchr", + "once_cell", + "rand", + "serde", + "serde_json", + "sha2", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" +dependencies = [ + "atoi", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", +] + [[package]] name = "stability" version = "0.2.0" @@ -1274,7 +1991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a" dependencies = [ "quote", - "syn", + "syn 2.0.66", ] [[package]] @@ -1283,6 +2000,23 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "strum" version = "0.26.2" @@ -1298,11 +2032,28 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn", + "syn 2.0.66", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] @@ -1355,6 +2106,26 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "thiserror" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -1438,7 +2209,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", ] [[package]] @@ -1500,9 +2271,21 @@ checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -1540,6 +2323,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + [[package]] name = "unicode-bidi" version = "0.3.15" @@ -1561,6 +2350,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-properties" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" + [[package]] name = "unicode-segmentation" version = "1.11.0" @@ -1583,6 +2378,12 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + [[package]] name = "url" version = "2.5.0" @@ -1594,6 +2395,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "valuable" version = "0.1.0" @@ -1627,6 +2434,12 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + [[package]] name = "wasm-bindgen" version = "0.2.92" @@ -1648,7 +2461,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 2.0.66", "wasm-bindgen-shared", ] @@ -1682,7 +2495,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1703,6 +2516,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "whoami" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" +dependencies = [ + "redox_syscall 0.4.1", + "wasite", +] + [[package]] name = "winapi" version = "0.3.9" @@ -1891,5 +2714,11 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.66", ] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 84cc7b2..0e09e92 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -7,7 +7,9 @@ use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; use crate::content_parser::content_parser::JsonContentParser; -use crate::view::widgets::{CategoriesTabs, CrateItemList, FeatureItemList}; +use crate::dependency_builder::CrateToAdd; +use crate::utils::select_crate_if_features_are_selected; +use crate::view::widgets::{CategoriesTabs, CrateItemList, FeatureItemList, ItemListStatus}; use crate::{dependency_builder::DependenciesBuilder, view::ui::AppView}; #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] @@ -35,6 +37,9 @@ pub fn update(app: &mut AppView, action: Action) { match action { Action::ToggleShowFeatures => { app.toggle_show_features(); + if !app.is_showing_features { + select_crate_if_features_are_selected(app); + } } Action::ShowAddingDependenciesOperation => { let tx = app.action_tx.clone(); @@ -59,7 +64,7 @@ pub fn update(app: &mut AppView, action: Action) { } } Action::ToggleOne => { - if app.is_showing_features { + if app.is_showing_features { app.toggle_select_one_feature(); } else { app.toggle_select_dependencie(); @@ -326,10 +331,14 @@ fn fetch_features( if let Some(latest) = information.versions.first() { tx.send(Action::UpdateFeatures( category, - latest.features.clone().into_keys().map(|feat| FeatureItemList::new(feat)).collect(), + latest + .features + .clone() + .into_keys() + .map(FeatureItemList::new) + .collect(), index, - )) - .unwrap(); + )).unwrap_or(()); }; }; }); diff --git a/src/utils.rs b/src/utils.rs index 465a57b..5c9ba4d 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -5,7 +5,7 @@ use ratatui::{ use crate::{ dependency_builder::CrateToAdd, - view::widgets::{CrateItemList, FeatureItemList, ItemListStatus}, + view::{ui::AppView, widgets::{CategoriesTabs, CrateItemList, FeatureItemList, ItemListStatus}}, }; pub fn toggle_status_all(dependencies: &mut [CrateItemList]) { @@ -49,13 +49,16 @@ pub fn toggle_one_dependency( } } -pub fn toggle_one_feature(current_crate: &mut CrateItemList, features_list_state: &ListState) { +pub fn toggle_one_feature( + current_crate: &mut CrateItemList, + features_list_state: &ListState, +) { if let Some((index, current_crate_features)) = features_list_state .selected() .zip(current_crate.features.as_mut()) { if current_crate_features.is_empty() { - return + return; } let current_feature_selected = &mut current_crate_features[index]; @@ -67,10 +70,60 @@ pub fn toggle_one_feature(current_crate: &mut CrateItemList, features_list_state ItemListStatus::Unselected => { current_feature_selected.status = ItemListStatus::Selected; } - } + }; }; } +pub fn select_crate_if_features_are_selected(app : &mut AppView) { + if let Some((crate_selected, index_current_crate)) = app.get_current_crate_selected() { + if crate_selected.features.as_ref().is_some_and(|features| { + features + .iter() + .any(|feature| feature.status == ItemListStatus::Selected) + }) && !app + .dependencies_to_add_list + .dependencies_to_add + .iter() + .any(|crate_to_add| crate_to_add.crate_name == crate_selected.name) + { + app.dependencies_to_add_list + .dependencies_to_add + .push(CrateToAdd::from(crate_selected)); + match app.category_tabs { + CategoriesTabs::General => { + app.general_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Common => { + app.common_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::FFI => { + app.ffi_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Math => { + app.math_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Clis => { + app.clis_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Graphics => { + app.graphics_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Databases => { + app.database_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Networking => { + app.networking_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Concurrency => { + app.concurrency_crates[index_current_crate].status = ItemListStatus::Selected; + } + CategoriesTabs::Cryptography => { + app.cryptography_crates[index_current_crate].status = ItemListStatus::Selected; + } + } + } + } +} /// helper function to create a centered rect using up certain percentage of the available rect `r` pub fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { diff --git a/src/view/ui.rs b/src/view/ui.rs index 42fc5d9..dd1178e 100644 --- a/src/view/ui.rs +++ b/src/view/ui.rs @@ -25,7 +25,7 @@ use crate::{ use super::widgets::{ CategoriesTabs, CrateItemList, CratesListWidget, DependenciesListWidget, FeatureItemList, - FeaturesWidgetList, FooterInstructions, Popup, + FeaturesWidgetList, FooterInstructions, ItemListStatus, Popup, }; pub struct AppView { @@ -568,7 +568,7 @@ impl AppView { } } - fn get_current_crate_selected(&self) -> Option<(CrateItemList, usize)> { + pub fn get_current_crate_selected(&self) -> Option<(CrateItemList, usize)> { self.crates_list.state.selected().map(|index| { let crate_item = self.crates_list.crates_widget_list.crates[index].clone(); (crate_item, index) @@ -673,50 +673,81 @@ impl AppView { match self.category_tabs { CategoriesTabs::General => { let current_crate = &mut self.general_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + + toggle_one_feature( + current_crate, + &self.features.state, + ); + + } CategoriesTabs::Common => { let current_crate = &mut self.common_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::FFI => { let current_crate = &mut self.ffi_crates[index_current_crate_selected]; - if !current_crate.is_loading { - toggle_one_feature(current_crate, &self.features.state); - } + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Math => { let current_crate = &mut self.math_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Clis => { let current_crate = &mut self.clis_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Graphics => { let current_crate = &mut self.graphics_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Databases => { let current_crate = &mut self.database_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Networking => { let current_crate = &mut self.networking_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Concurrency => { let current_crate = &mut self.concurrency_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } CategoriesTabs::Cryptography => { let current_crate = &mut self.cryptography_crates[index_current_crate_selected]; - toggle_one_feature(current_crate, &self.features.state); + toggle_one_feature( + current_crate, + &self.features.state, + ); } } } From 9f2942a38212b669e133fed6cd78e27613fb3801 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Tue, 4 Jun 2024 19:24:28 -0500 Subject: [PATCH 22/27] left notes --- Cargo.lock | 857 +-------------------------------------------- src/tui/handler.rs | 3 + src/utils.rs | 25 +- 3 files changed, 31 insertions(+), 854 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0fc31a8..921a2ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,7 +24,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", "once_cell", "version_check", "zerocopy", @@ -36,15 +35,6 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -72,24 +62,12 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - [[package]] name = "bitflags" version = "1.3.2" @@ -101,18 +79,6 @@ name = "bitflags" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" -dependencies = [ - "serde", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] [[package]] name = "bumpalo" @@ -120,12 +86,6 @@ version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.6.0" @@ -209,12 +169,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "core-foundation" version = "0.9.4" @@ -231,15 +185,6 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - [[package]] name = "crates_io_api" version = "0.11.0" @@ -257,36 +202,6 @@ dependencies = [ "url", ] -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - [[package]] name = "crossterm" version = "0.27.0" @@ -313,62 +228,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "darling" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.66", -] - -[[package]] -name = "darling_macro" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - [[package]] name = "deranged" version = "0.3.11" @@ -378,77 +237,11 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "diesel" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35b696af9ff4c0d2a507db2c5faafa8aa0205e297e5f11e203a24226d5355e7a" -dependencies = [ - "diesel_derives", -] - -[[package]] -name = "diesel_derives" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6fdd83d5947068817016e939596d246e5367279453f2a3433287894f2f2996" -dependencies = [ - "diesel_table_macro_syntax", - "dsl_auto_type", - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "diesel_table_macro_syntax" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" -dependencies = [ - "syn 2.0.66", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "dsl_auto_type" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab32c18ea6760d951659768a3e35ea72fc1ba0916d665a88dfe048b2a41e543f" -dependencies = [ - "darling", - "either", - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "either" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" -dependencies = [ - "serde", -] [[package]] name = "encoding_rs" @@ -475,23 +268,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "etcetera" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" -dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "eyre" version = "0.6.12" @@ -508,17 +284,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" -[[package]] -name = "flume" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" -dependencies = [ - "futures-core", - "futures-sink", - "spin 0.9.8", -] - [[package]] name = "fnv" version = "1.0.7" @@ -591,17 +356,6 @@ dependencies = [ "futures-util", ] -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - [[package]] name = "futures-io" version = "0.3.30" @@ -616,7 +370,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -649,16 +403,6 @@ dependencies = [ "slab", ] -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "get-blessed" version = "0.1.3" @@ -666,17 +410,14 @@ dependencies = [ "color-eyre", "crates_io_api", "crossterm", - "diesel", "open", "ratatui", "reqwest", "serde", - "sqlx", "strum", "strum_macros", "throbber-widgets-tui", "tokio", - "tracing", ] [[package]] @@ -725,29 +466,11 @@ dependencies = [ "allocator-api2", ] -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown", -] - [[package]] name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" @@ -755,39 +478,6 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "http" version = "1.1.0" @@ -884,12 +574,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.5.0" @@ -970,9 +654,6 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin 0.5.2", -] [[package]] name = "libc" @@ -980,23 +661,6 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libsqlite3-sys" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -1028,16 +692,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest", -] - [[package]] name = "memchr" version = "2.7.2" @@ -1050,12 +704,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.7.3" @@ -1095,59 +743,12 @@ dependencies = [ "tempfile", ] -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand", - "smallvec", - "zeroize", -] - [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1155,7 +756,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", - "libm", ] [[package]] @@ -1226,7 +826,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -1271,7 +871,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.1", + "redox_syscall", "smallvec", "windows-targets 0.52.5", ] @@ -1288,15 +888,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -1320,7 +911,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -1335,27 +926,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - [[package]] name = "pkg-config" version = "0.3.30" @@ -1443,15 +1013,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.5.1" @@ -1467,7 +1028,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "encoding_rs", "futures-channel", @@ -1504,26 +1065,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "rsa" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" -dependencies = [ - "const-oid", - "digest", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core", - "signature", - "spki", - "subtle", - "zeroize", -] - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -1549,7 +1090,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.22.1", + "base64", "rustls-pki-types", ] @@ -1626,7 +1167,7 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -1662,28 +1203,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -1723,16 +1242,6 @@ dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core", -] - [[package]] name = "slab" version = "0.4.9" @@ -1758,232 +1267,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlformat" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" -dependencies = [ - "itertools", - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" -dependencies = [ - "ahash", - "atoi", - "byteorder", - "bytes", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashlink", - "hex", - "indexmap", - "log", - "memchr", - "once_cell", - "paste", - "percent-encoding", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlformat", - "thiserror", - "tracing", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn 1.0.109", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.1", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-mysql", - "sqlx-sqlite", - "syn 1.0.109", - "tempfile", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.5.0", - "byteorder", - "bytes", - "crc", - "digest", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand", - "rsa", - "serde", - "sha1", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" -dependencies = [ - "atoi", - "base64 0.21.7", - "bitflags 2.5.0", - "byteorder", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror", - "tracing", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa" -dependencies = [ - "atoi", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "sqlx-core", - "tracing", - "url", - "urlencoding", -] - [[package]] name = "stability" version = "0.2.0" @@ -1991,7 +1274,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a" dependencies = [ "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -2000,23 +1283,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - [[package]] name = "strum" version = "0.26.2" @@ -2032,28 +1298,11 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", "rustversion", - "syn 2.0.66", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "syn", ] [[package]] @@ -2106,26 +1355,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "thread_local" version = "1.1.8" @@ -2209,7 +1438,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] [[package]] @@ -2271,21 +1500,9 @@ checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - [[package]] name = "tracing-core" version = "0.1.32" @@ -2323,12 +1540,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - [[package]] name = "unicode-bidi" version = "0.3.15" @@ -2350,12 +1561,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-properties" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291" - [[package]] name = "unicode-segmentation" version = "1.11.0" @@ -2378,12 +1583,6 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - [[package]] name = "url" version = "2.5.0" @@ -2395,12 +1594,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - [[package]] name = "valuable" version = "0.1.0" @@ -2434,12 +1627,6 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - [[package]] name = "wasm-bindgen" version = "0.2.92" @@ -2461,7 +1648,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn", "wasm-bindgen-shared", ] @@ -2495,7 +1682,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2516,16 +1703,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "whoami" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9" -dependencies = [ - "redox_syscall 0.4.1", - "wasite", -] - [[package]] name = "winapi" version = "0.3.9" @@ -2714,11 +1891,5 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn", ] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/src/tui/handler.rs b/src/tui/handler.rs index 0e09e92..b63d0c3 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -37,6 +37,9 @@ pub fn update(app: &mut AppView, action: Action) { match action { Action::ToggleShowFeatures => { app.toggle_show_features(); + //After user closes the popup where they can se the features we check if we can add + //the crate if the user selected at least 1 feature + //THe way to do this must be improved since it is really ugly if !app.is_showing_features { select_crate_if_features_are_selected(app); } diff --git a/src/utils.rs b/src/utils.rs index 5c9ba4d..254ff70 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -5,7 +5,10 @@ use ratatui::{ use crate::{ dependency_builder::CrateToAdd, - view::{ui::AppView, widgets::{CategoriesTabs, CrateItemList, FeatureItemList, ItemListStatus}}, + view::{ + ui::AppView, + widgets::{CategoriesTabs, CrateItemList, FeatureItemList, ItemListStatus}, + }, }; pub fn toggle_status_all(dependencies: &mut [CrateItemList]) { @@ -49,10 +52,7 @@ pub fn toggle_one_dependency( } } -pub fn toggle_one_feature( - current_crate: &mut CrateItemList, - features_list_state: &ListState, -) { +pub fn toggle_one_feature(current_crate: &mut CrateItemList, features_list_state: &ListState) { if let Some((index, current_crate_features)) = features_list_state .selected() .zip(current_crate.features.as_mut()) @@ -74,17 +74,20 @@ pub fn toggle_one_feature( }; } -pub fn select_crate_if_features_are_selected(app : &mut AppView) { +pub fn select_crate_if_features_are_selected(app: &mut AppView) { if let Some((crate_selected, index_current_crate)) = app.get_current_crate_selected() { + + let current_crate_is_selected = app + .dependencies_to_add_list + .dependencies_to_add + .iter() + .any(|crate_to_add| crate_to_add.crate_name == crate_selected.name); + if crate_selected.features.as_ref().is_some_and(|features| { features .iter() .any(|feature| feature.status == ItemListStatus::Selected) - }) && !app - .dependencies_to_add_list - .dependencies_to_add - .iter() - .any(|crate_to_add| crate_to_add.crate_name == crate_selected.name) + }) && !current_crate_is_selected { app.dependencies_to_add_list .dependencies_to_add From 11df8e2510e018d4f8929a94e3080c3f72b35005 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Tue, 4 Jun 2024 20:46:57 -0500 Subject: [PATCH 23/27] added test (for real) --- src/backend.rs | 1 - src/backend/backend.rs | 1 - src/content_parser.rs | 107 +++++++++++++++++- ...content_parser.rs => jsoncontentparser.rs} | 18 +-- src/tui/handler.rs | 2 +- 5 files changed, 109 insertions(+), 20 deletions(-) delete mode 100644 src/backend/backend.rs rename src/content_parser/{content_parser.rs => jsoncontentparser.rs} (92%) diff --git a/src/backend.rs b/src/backend.rs index e0ea7c9..f7bfd8d 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -2,7 +2,6 @@ use strum::{Display, EnumIter, FromRepr}; use crate::view::widgets::{CrateItemList, FeatureItemList, ItemListStatus}; -pub mod backend; #[derive(Default, Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct Crates { diff --git a/src/backend/backend.rs b/src/backend/backend.rs deleted file mode 100644 index 8b13789..0000000 --- a/src/backend/backend.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/content_parser.rs b/src/content_parser.rs index 39ce187..fe4bfcc 100644 --- a/src/content_parser.rs +++ b/src/content_parser.rs @@ -1,14 +1,14 @@ use crate::backend::{Categories, CategoriesWithSubCategories, Crates, Table, TableEntry}; use crate::scraper::scraper::Group; -pub mod content_parser; +pub mod jsoncontentparser; pub trait ContentParser { - fn get_general_crates(&self) -> Table; + fn get_general_crates(&self) -> Table; - fn get_crates(&self, category: &Categories) -> Table; + fn get_crates(&self, category: &Categories) -> Table; - fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table; + fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table; } impl From<&Group> for Table { @@ -27,7 +27,7 @@ impl From<&Group> for Table { .notes .clone() .unwrap_or("No description".to_string()), - features: None + features: None, }); } @@ -67,3 +67,100 @@ impl From<&Group> for Table { Table { entries } } } + +#[cfg(test)] +mod test { + use self::jsoncontentparser::JsonContentParser; + + use super::*; + + + async fn setup_json_content_parser() -> JsonContentParser { + JsonContentParser::parse_content().await + } + + fn test_section(entries: &[TableEntry], name_first_recommended_crate: &str) { + assert!(!entries.is_empty()); + + let first_entry = entries.first().unwrap(); + assert!(!first_entry.crates.is_empty()); + + let first_recommended_crate = first_entry.crates.first().unwrap(); + + assert_eq!(first_recommended_crate.name, name_first_recommended_crate); + } + + #[tokio::test] + async fn general_crates_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = json_content_parser.get_general_crates(); + test_section(§ion.entries, "rand"); + } + + #[tokio::test] + async fn common_crates_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = json_content_parser.get_crates_with_sub(&CategoriesWithSubCategories::Common); + test_section(§ion.entries, "anyhow"); + } + + #[tokio::test] + async fn math_section_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = json_content_parser.get_crates(&Categories::Math); + test_section(§ion.entries, "num-traits"); + } + + #[tokio::test] + async fn ffi_section_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = json_content_parser.get_crates(&Categories::FFI); + test_section(§ion.entries, "bindgen"); + } + + #[tokio::test] + async fn cryptography_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = json_content_parser.get_crates(&Categories::Cryptography); + test_section(§ion.entries, "argon2"); + } + + #[tokio::test] + async fn concurrency_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = + json_content_parser.get_crates_with_sub(&CategoriesWithSubCategories::Concurrency); + test_section(§ion.entries, "parking_lot"); + } + + #[tokio::test] + async fn networking_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = + json_content_parser.get_crates_with_sub(&CategoriesWithSubCategories::Networking); + test_section(§ion.entries, "tokio"); + } + + #[tokio::test] + async fn databases_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = + json_content_parser.get_crates_with_sub(&CategoriesWithSubCategories::Databases); + test_section(§ion.entries, "sqlx"); + } + + #[tokio::test] + async fn cli_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = json_content_parser.get_crates_with_sub(&CategoriesWithSubCategories::Clis); + test_section(§ion.entries, "clap"); + } + + #[tokio::test] + async fn graphics_has_expected_data() { + let json_content_parser = setup_json_content_parser().await; + let section = + json_content_parser.get_crates_with_sub(&CategoriesWithSubCategories::Graphics); + test_section(§ion.entries, "gtk4"); + } +} diff --git a/src/content_parser/content_parser.rs b/src/content_parser/jsoncontentparser.rs similarity index 92% rename from src/content_parser/content_parser.rs rename to src/content_parser/jsoncontentparser.rs index 3173921..73a38c6 100644 --- a/src/content_parser/content_parser.rs +++ b/src/content_parser/jsoncontentparser.rs @@ -36,7 +36,7 @@ impl JsonContentParser { let mut clis_crates = Table::default(); let mut graphics_crates = Table::default(); - page_content.crate_groups.iter().for_each(|group| { + for group in &page_content.crate_groups { match group.name.trim().to_lowercase().as_str() { "common" => { //extract general table @@ -72,7 +72,7 @@ impl JsonContentParser { "graphics" => graphics_crates = group.into(), _ => {} } - }); + } Self { content: page_content, @@ -88,19 +88,14 @@ impl JsonContentParser { general_crates, } } - - - } - -impl ContentParser for JsonContentParser { - - fn get_general_crates(&self) -> Table { +impl ContentParser for JsonContentParser { + fn get_general_crates(&self) -> Table { self.general_crates.clone() } - fn get_crates(&self, category: &Categories) -> Table { + fn get_crates(&self, category: &Categories) -> Table { match category { Categories::FFI => self.ffi_crates.clone(), Categories::Math => self.math_crates.clone(), @@ -108,7 +103,7 @@ impl ContentParser for JsonContentParser { } } - fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table { + fn get_crates_with_sub(&self, category: &CategoriesWithSubCategories) -> Table { match category { CategoriesWithSubCategories::Clis => self.clis_crates.clone(), CategoriesWithSubCategories::Common => self.common_crates.clone(), @@ -118,5 +113,4 @@ impl ContentParser for JsonContentParser { CategoriesWithSubCategories::Concurrency => self.concurrency_crates.clone(), } } - } diff --git a/src/tui/handler.rs b/src/tui/handler.rs index b63d0c3..a6cac1d 100644 --- a/src/tui/handler.rs +++ b/src/tui/handler.rs @@ -6,7 +6,7 @@ use crossterm::event::{KeyCode, KeyEventKind}; use ratatui::{backend::CrosstermBackend, Terminal}; use tokio::sync::mpsc::{self, UnboundedSender}; -use crate::content_parser::content_parser::JsonContentParser; +use crate::content_parser::jsoncontentparser::JsonContentParser; use crate::dependency_builder::CrateToAdd; use crate::utils::select_crate_if_features_are_selected; use crate::view::widgets::{CategoriesTabs, CrateItemList, FeatureItemList, ItemListStatus}; From 15d568b8db10364d221e6508df16d9e0b55da6fd Mon Sep 17 00:00:00 2001 From: josueBarretogit <144196149+josueBarretogit@users.noreply.github.com> Date: Tue, 4 Jun 2024 21:22:05 -0500 Subject: [PATCH 24/27] Update README.md --- README.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1317673..c1f090c 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,30 @@ Terminal tool to get you the best crates for your rust projects with a few keybindings, curated by [blessed.rs](https://blessed.rs/crates) +## Motivation +As you may know, the website blessed.rs compiles the most popular crates that almost any rust project needs, so I decided to make a program that lets you look at those crates and add +them to your rust projects right in your terminal. + ## Showcase -![render1716250101340](https://github.com/josueBarretogit/get_blessed_rs/assets/144196149/2969f312-b973-4562-859e-01df5d9f84ed) +![showcase](https://github.com/josueBarretogit/get_blessed_rs/assets/144196149/74841eda-d0c1-4db1-86b0-03638a622a33) + +## Features + + +- Check out a crate documentation you can by pressing `` (Opens a tab in your default web browser) +- Check out a crate crates.io page you can by pressing `` (Opens a tab in your default web browser) +- Change categories with `` or `` +- Move up and down with either arroy keys or with `` / `` +- Select the crate you want to add to your project by pressing `` +- Select all the crates from a category by pressing `` +- Select a crate with features by pressing `` to select its features +- Add the selected crates to your rust project by pressing `` + +![features](https://github.com/josueBarretogit/get_blessed_rs/assets/144196149/03d7dfbc-4ae6-4843-8175-c9fd249e99ed) + + +- After you are done press `` or `` to quit ## Installation @@ -14,4 +35,6 @@ Terminal tool to get you the best crates for your rust projects with a few keybi Arch Linux users can install [from the AUR](https://aur.archlinux.org/packages/get-blessed) via `paru -S get-blessed`. +After you are done adding the best crates to your rust project also consider making a .gitignore [add-gitignore-cli](https://crates.io/crates/add-gitignore-cli) + Please feel free to suggest new features or report any bugs / inconsistencies From ed78c97a61d4a539be1ef7cb43d74b95eeba48c8 Mon Sep 17 00:00:00 2001 From: josuebarretogit Date: Tue, 4 Jun 2024 21:26:57 -0500 Subject: [PATCH 25/27] updated cargo.toml --- Cargo.lock | 2 +- Cargo.toml | 8 +++++++- README.md | 4 ++-- public/features.gif | Bin 0 -> 936151 bytes public/showcase.gif | Bin 0 -> 675502 bytes src/view/widgets.rs | 2 +- 6 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 public/features.gif create mode 100644 public/showcase.gif diff --git a/Cargo.lock b/Cargo.lock index 921a2ee..3480f02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -405,7 +405,7 @@ dependencies = [ [[package]] name = "get-blessed" -version = "0.1.3" +version = "0.2.0" dependencies = [ "color-eyre", "crates_io_api", diff --git a/Cargo.toml b/Cargo.toml index 0f498c2..0d3ef33 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "get-blessed" -version = "0.1.3" +version = "0.2.0" edition = "2021" authors = ["Josue "] readme = "README.md" @@ -11,6 +11,12 @@ keywords = ["cli", "command-line", "developer-tools", "dependencies"] categories = ["utilities", "development-tools" , "command-line", "dependencies"] license = "MIT" +[package] +exclude = [ + "public/*" +] + + [dependencies] reqwest = { version = "0.12.4" , features = ["json"]} ratatui = { version = "0.26.3", features = ["all-widgets"] } diff --git a/README.md b/README.md index c1f090c..a3ab2fa 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ them to your rust projects right in your terminal. ## Showcase -![showcase](https://github.com/josueBarretogit/get_blessed_rs/assets/144196149/74841eda-d0c1-4db1-86b0-03638a622a33) +![showcase](./public/showcase.gif) ## Features @@ -22,7 +22,7 @@ them to your rust projects right in your terminal. - Select a crate with features by pressing `` to select its features - Add the selected crates to your rust project by pressing `` -![features](https://github.com/josueBarretogit/get_blessed_rs/assets/144196149/03d7dfbc-4ae6-4843-8175-c9fd249e99ed) +![features](./public/features.gif) - After you are done press `` or `` to quit diff --git a/public/features.gif b/public/features.gif new file mode 100644 index 0000000000000000000000000000000000000000..eb1e35c83f9580e95d957b13ab48a06d7a318ffa GIT binary patch literal 936151 zcmeFZcTm%7+co-2NFan3igYm)=_MddL`^~qh!T({O?s0K(gY06stbA&~V{6mbkN@Y|xlm^{4P6@yQCL84m-1S9w@`QQKa?|&~& zT2_5?b6r|SO-fc>T3%CDUQKhuHnp@;+YcIBUT<+{DX{+hJcKyc9-msp! zzFR}XBco;mu(3OLC#R;BCT1QyoP9KN|M9cuFXoz`&cAy7W-;UC(!2K`K87r>tbf}0 zY_s-d>)ZDq_|2aX16tT~VNYKiiknNduC-zy@dH1xl+;$Kmdv})`{^u;_;4n6TPI;% z`cn014vkc4H+t#yo;*dDu~NhKn%gCs!OKra+iUNZ;{(|O_G0U%s&=KGR}P@bOxKcg z)B@rl>P($=Gg}#+k~8g!yp(eP!7jZMG9Cx0WkHTjPrA;bd@iVT8QHQj-B2;Y#I1-T z0~it;#!Xj51|(b14#v_SxcgNetap!hUwVBu`xLgOlT}B`k6rKi{BE}W z)QdaUuYO&b8%W(_a^u?8r=^+3lXq`i|NeFL<#@Tt%^N?zZ+?3B;_l6x+uIPM^xQTD z!MllOV3e$zi)B?G8G^IxOV3kzEIsGr`Q7X06NE#T<`c0A(hErv`JM~O(lvDpDe|35 z3#qsv>6dA$4?JI{Yrd&_nW6n<>18IKQRWp*m)Gl67D=-HRkpGE+gCYceVNy}=9XTs z^Q_(LU+3F}zI|Qbm>~0}&^6!dO_66!{hMN+&bMz$0)}K3OG6%bEtZA9sb4%F_2uni zIfYSniB9G9UaClvY*?yHQ(s=HqUp=NtW9yLYyQYo@-tU^b-!!~yx%OrG-Njx;x%aJuyr)qYlu_p1XK1NpT<9xI=tpg=@7Kq1!}6adR3G|$x~;j`^y!ZF*Y}_9;+YgSCUyCIH>OBZ z%^TCk8Xq=h$Oa0Z@0nZqe!g$*(fs*=UD$`u4;>Q~zRbE7_Ou}{~BFHZu7 z6}~e}*XL1RKYV>bVN%?jqw@J}&L>H=Y%Zi}eB69VGf>=mm22g<^}5ib zWo!FQY1qfDMS7y*x25U=zi)5rYFoZ7H+6md_O5kU@%#IZhkoBbbT77i|9I`|$L}k> zOiDji2l@Petc^%r{INcvvGU{7q=C}UjeA!9KR?fUT>SavY1qoouXBk?zcybL`2X5k zs=fH@+xxDSU*A`Um9~FuJoMlGxw&|8``3@JD*%G5bcl)63m06app5BozL8!=t<@Mz z8XX};>OVD%sk2tHm- z(444X4;vW}`L>#fXRX8}k_N>D*OExam0SfQgOXZn$>g+3o?6l^S(~*K>xoLotI_m{#1H&=1;`Q7* z;|sD@qhppm>v^qd7vwz*$88?3=XXzBPz)O#clfqm(92qbOEjEt7W`B=VqBwAFgoF` z^{Hqwtwy!h@V2+jr{dX(8uhNx+kTOsO6FK=HHQuF1QmZOT{5oKdN_JaNDt`376N(h zw-}%xG&BV}03{lbje#CiZ*On=`E6&v0K%}H2u;|Z4A(KDJ)d)Q@+51?oo;E5zTQ{$ z>z7|u{f3wKi`ZMuUgv-K_^2qTUk_|Zp1%L_CNzPU-#P@oJBpCH&3t*pLJnmlS^{W%6+@%{VS+PgERVav;}XV2cu zuuU-6Ah_te9z7L8-}+{+rDLC%u64vh*Uqi_B=1XC_b1M-+Q+OPhoYKWS^|T^%??_w zczOjN3jlJlnenLQxOI~=kH3xTd60Ip$t?hg&Yts$M7LhSaZtj6~&8|5`WA={A(MWd>zYAmwt0=0y&PlKB z+}_}3Jp=N}IR+&SqNb8|^f7GQ@R&zIS>%~>K&uuPU%rkXtMe!>UH^2*)RuU{nU)F-iIk9xo!8`c82~bX{Ffy*GX4>Ov$_`t0MF*u-)Z^TfN; zK@Ask7GBM{xc!KS&gvPf=^V{_v(#Z>y_|_s{R92?9G#CHFc0hKzU+J9 z(xpp<#%9*h)RYIa^opvm@U!s~cNP|&2RFAV$Z0C79F$euuea~u!F~GLDmaq!DbJ$v zd-tcwrZ$&5JIgjU>>S+g+?nw83o+6nZ&6{V%Bypam>L;dT=J>3KH)@7NGVxc_dRUz zIqjjkrj8=vaB5nnPNGAwkysF(MAbiPSm<`%Ia}FC$NhVD&($m4-CgE4Lu1H$e2<*c zGCY2gAnmr1@hj`OJzhF%ZXqQ#W6HtF`jCu2o)p@4Ia>FK#};j$nSs}-KpizDx%~$Y z1zW1y9_2{#)%7!{;q9|X!tU5f8KifMHqi5U~(&F+Vb!2qd zSEw|DO)vXfb0ndbd#rZ~&xza5h>;{Y)*n%II}>NW=X`>vr$kCr&p$ zyy!TPa(ec3)1!9J8D53P&gLgw0eY9xk94&>yNX&|csAa(Vs-s21B*x$4{m-SiF-h` zsk`mvuz3veyzvzky`lVlr~J|)+86IeABYn<`mK3sy6$-5!RDUJ?;f_gjGvD-oybLZ z1P`ANbelRZfWT1|rYkfnlG;-E4y%~*x-IrtO=DVLhXqh8COr@0uu1GVv{&>tokojg z-%Vn~(!$g9cAxL$rR@9KgaM45pIbgnx56|=5hf)JnPFDp zO!9ftu^6eqE(fB)60R5GmT03Ta9yAc%WIiVCc+r&91V3l`72`4+sf5qsfvECVkue` zrU(S)UN?rOOC%$pj-*dcNt~vRw-PZvs9pxRYAW+6ULiWR9aGLTR|(UIA3RDN1wi`@l(gto3$464H(?xLkMP{5M*? zW?feAF6~3T6dV*FN)nZR>>jpL}5zlGQr$H2v?9rgO^zkq$rE-ch+TR zy5)(8kmaWzlPB}{w(A^3xFAx~#CSF)_4eGJl-CK5om4t3yb&~kipU;Tyviyz&8bIW z>Xp#rAv|X%@vJ$`piQAZNDadELDF%`lq8PZ+XoHhZCIfpwm{=9qOcTpFdiya#r31_ zIEX?@Ew}|rBULCvQ#rg2Vw76a70ZcH8c?>)rZHT9!bTN1;3ZV;! zgvYMo;x~En>(dzh!-JJ@=cr2kdyZp64x)FZom*jfRl->K3(CqCrNYzsA+AHcDl%%W z0zQrmEYDA4!1Q*Z`3KdAmmuCO2=c<=IiN|xJ_^p$ID7<7!ozFoCm~5=2J{{kv=-Kt z`2+)m*h?ZnxfKE@H~YA@ML4thqof%i+%TjSK;w7CGWeIEc-2qS*jeeEIkSCG;Y%7v zh*a`h(OZO0Ds7*!0Xx(h0~z78V7&`iPhFG%hf19M>{Nz^CTTI&-~s|W$XqvYOV+Y2 z>CTk~VK_OCheF&i}ggEl!3@dxZ?s=8p`2u zfRf;yKBD&gz3lw6y~*A5#Q70DBe)Yq73yVYq#z(&C+HA_#T4Km95WFQVCwrI3=GosG-7dS zG9y-EDUwZ2Y&94PcMVnRDE|UC^HepGY;gRba5Yfd!FRu;&4lWR%m8nLSX{wr2;0cBZoF4W5oxm=8kGfv?V-G_<` zzg1!Y&GA5ZU$}`(3{5`#BlfL=Y-p_<^v>boHTVczr}8mI;}r&~!irhivOq0b2$b0- z6ExR%grY`ma@TvOu)p;X8#875$h4K>FmKGk! z;Na@4Q^lXv>%;@;>%t@a8siefO<4|*^i>$K`Vc8&I~_F-TkfpDENS0!@AD1o!ivW@_=D}WLPI`x7ahphG8Do_q~EcF~oo@5|yM4Ix3JBd4?q3uRP@zK(Lb_EOZpF0q>+0uNOnKE-yPpjUE< zU-|Hi(wuZOzym7r93-e}QBS(?i-4A%VyV=3h%iHCjSvc?4nd6HS@KOL-f+|%ZG z#Bss#G6lA=&iE68-ibShdHCN@hY>K+(TSMr0Wdx?Bp*P4a45f3blx1}XB^k=d%jE^ zVvHEpM-)uw9CAD#v$i3{IEOq~Mb#&Z=z3DQ`p~txn0?l98nb9UyN26GN z5w!`$6jw?!w8BPQWukOUeN>p43GDgnq9v2oo>1cJHs(FCh%Gwi363c~ACpR9(57KL zR+)pbim}_Iq*8Inw3RK8hf`xR2_49ou&R~pnUrMhQNGHoosEgJPQtXYjwEn4ZNNoL z(RiFn8~*ea1VVDsnwgVX5}S(ZgGtgI1^RYlT490Vm=4EOIbOtMV%V;EW=n2v2^_l` z5q9CB#7q+A?vgFPD2p3KtR0u45vaoIl*Y6MQ^sb@bz?d(46}7yi4 za0_G5-62`RUOdRvEbLa+?)}*kS2#rlviBBc%gS&{F=xwdW#fu43NqQsCvw`AS>9d5 zd2uM`ARTiKF$*n`*`D>X%J0uP9Fg0g%rcE*oF(TfB>SCzKF~9+{z6qDoC7Xzdy%n z#as|6P#87O>Vn}o7LgrWR2WWRyC1;55l|>yUzjbx_YTjd%UqkPYqoeVL=-nL?}EYp+_31K8x{+0*uDSbh6Sf9h%)6B_j~&UDepV<{P`10 ztCJ@kJ*-YR%FF%EG@YEiic8Am<2u>1DuK;i$fE(@n`HHqnm%tfPRdr!} zd=%U-{r!F5EHXM`4lW&Vq0G+Sqr}7~r=)`;C^S6UKOi(b;w&XL-oVfdToX5L-iVD$ zdir#>x370*W-^YNe6#oFt)amO4`yD!o`3UZVQJ|lII+Qn3$E<-^$+0C1}F3C>N2>s z<>fR(iH64N>f`n&_bI5ad3rT^maQaDgQL6F)be&jmxGRD@yaSV#!u`&xZvuR=a70c zsOj|?qnz~p1^((lzU5JwQi5U-0Gkbi`4lwpRa}?WSWt(Y8mQ~VFs0k;^4q7^|T{r~^%f5DI7_YI2@CbiOk$JqaR!|Fkdiob7I zr=bjR!wMVzPO+up<%KIvnZ^om_Wjh+OAGnw8Xmmwxrb`*l;bQaB_LI&f<*fav1g=? zr9tGeDx)%^yvoT2aKkE~Yv$>(E)aFs?CAxe7(axOfHhKqvXAwN;E#q@c|CcAkSeAS zTP+xKvWADpc-4T|FMg3%54&#EC(4m~$We34$u%Z#7gqo|Ak$nTv*K7&GA4vL1(7u- zh;JPCWQ8K8m1iH%W$$es=5pQ5MeJwbV?1kzy5P!HmSXs2gk?^bfzviMQnEYB5gl_z zO!p$X;ML>w9_G;PbE6dtfi%6dlIMy%-;_2>5gkvPwch^n9paff#P6^SC7rZ07bfZR z^UM+7m4yuBMdqxy9JsH{(e)a%rq4ij`ZO0qV(ufn5&K{@@v*Pl3!>T~ zNel*k-@3{R_11|d5}8j5v5j+F-$)_v&-Q1-JBti@Z6&D8A(+)okloK z)=&`I?(K&~WFV64Szy_d&7IyGS=9_{%a{w+5k^xMC2R$?d}67;M86SSY-V zg!_n28?k%T%VThg`#(}_zb==Z6#F%t!isA&!FZf`KTOh? zMuA1@ly1H*Jn)*a4dvSz%d&44zxkx7z%SC!%jY%?4)dV&&E}Vb6dN~Bh8SSx*f?aX zhcQU8Q_b-RtyR1ZQ*Mq3NU^OpRv?6?Pxz;MRyS#5W40j0hC3ZT_;v34Zph8T)gP)a!N^A8)ytj0Qafk|EQD}kRl(y5Rgs+*#M~`5D6d^SFUs) z!W)5fFD;$c-ri2oIeNs{!o$6-`?&TeD=gzpByYJN0oev)t zS5}t)X1Ko+ARr{+L?fUmBvoyoC>7tn15vpX(QTq7cT(30NXudr5~xe@>Kc#}ASysn zfSiD^703*TcXe!CfT#dP0r~I8)o5{2C zYKPoB{D8m!!Tyi3!n93+{;gU}K9RLkE#|8fCzqCiYO$)i%IiX1(y{tDgQknEZI}L3 zi``dxu4c+m%jq}bdavEeI-ckfe=22cH0|)kiQGHM7ICOJfmnaubY2GBq!CggM>Q7gnC! z7!Y-v<*Ax)Jgp#cPke8tP=I4qv=*;dwJ}VUHtY)-vqSx~kGny&coi|(2iqW!K(%;> z3u3@HVkmHdfN+-r&zcC*Ze|=fsGeJp;Yf*aGL-wZ9#o6@QC7VSLdAv>&Z(gS(e3bsy%EP-sTsw_q?rLN5cOw0LyO%V1}^JGQv-Yb!NU`5eUn$&ax}tV-@yrcM->GX zP~IrZYl8CTk&_E(abCN*|HynAZ+Q-MIbgx>M0Nwa*>v3MVr#1{(E;>2pn3;&PQF8$ zr3T@^Q7fOr2Ea-J4@%ayP}0-^txV~sPkQ$5i;D{;TJrk{hM?C`kk{($?7VQ2*X(qZ znt~>1eL!mhTAV7^e9-8e(=(orVDhP`0oGGSX+JQ&NmDbj3YuM3w$GkFeh_`*bJ_zZ zXK&E-05Z|WX*d$3Kxd<4@rO{kK5r;<}m!Y8c?ufi>T$Tarm8kvc~JOCM|S19AgO5gS`)P??091V@;j2F(g+ zQxw$*z`@Jz+aG*1Kuv=Ps+9l8xBt=G|C=lIoP5Ze@Sip-z?Hi8xkw&oFAc=a@Wd*) zx0=gj8>VKddo4ee{@|voTI9f!+n=>`EK@&IWN%Ffojp#z*xjcusZu;fW0zUpn8o}| z3Xv(}ol)m|?${_Zhy8+8bJnq@<7NmLB^xiv)h=6oiVt$QvU|WREmb+EPaK)$btGxi z@nv=;udF1$K(92E$FZ-2)@rRQtSRkK&*?R%1zmuxN^2TAw#L-kbF&@|@a=2oKOreg z;$OuZm?Bz&UXhgg<~Y-JbkEcBRtU&w_@-=lMM%b^xGe12ZoEwFNv_as4H@^uAzOhd z76~2Y=HC0_^=o%L4Y3GXDCSpQ;W_$x?Dsq>%utT?9xpV_BTYWd8ZR~(BYH4DOMcgs zDMp<$o{2);YeC+l-_6G3Ow`9vxgc?LZY+K;yQ>i4B8=?JhDujvG$C*4XYua(nTW~c zIbjx)!K9ot$s*;b$^`k~RoMtB{H~%p?dIWG2`213uT34R5#^qCyMxI7eD>m8s-j!7 zSsp=qBdT@xvFW-KkEk>EW;1U&lk?bORNeFhmrr2IbH!u?|_N z)iSqC?}m-8XZNb4_mjOI@%mMI3b7KB7s@J&hKWCAI@0jh$vilsy``%I>FRFt5#5)9 zxk$ZQu|fA)+O#2&y~ey8)kB(-d!6R{I~1^2P`%AY;Nq687yL zyt1m8YyJwZtaqhH-c`i(P4UU!Zz~Eeh_=veMgF|4=rQ8=RQpT%F#F_oPygoOmP=2ZL$O!EdmXZzh1p73V)P81g`fLo^B-8JmLZsN^3; zafy7H3}Ykre(y!;s(`l@H?~BCOi|!%MVm|z4~1t1ysfB_$UL)Ag=KogiBHJ-{kB4v z^^v}wR#3t}Vj+&-0*r>FAZM7!KUr`&1x*E|1HgX+H3dQf*bM|iK$Srh1cbSz<+njs z#AyR11{M>jFA!IttSYK_5GDb7)zdcxNfL19AW{O#Ju)%`)EekCFz!IhLG2HO8Cdh; z;!>dKATa`h4MH8D*`OW=EU$ft1QH{6Pk)dVfzSwKPEIafrpIjwL}Q@w(h3^D;sbRD zRvxInsyYE=OW+0oRsdN1Gtn{k?@xm~2^;{qc?CesfMWo@9|TSyQUat84hE1~f$R#z zPC(?q%>bzU{rfi)6Jy|10B!>u5<5W@$h5%a04xQFrhov0vjK!vKwUtr1)K*EHV}yc zCk?W${|dSPSJIsSXu+urw10oyS5FQ2|yd^|Vz>iyEkm8skZbX%cC9@Iq!sUaK0xE|y<2{9CVRV>y#t(dh`HAO z?rdUs+sokeJxA{FMqF|;i`jXd!}=S-ijXpJkv#tdVeq;I9FhkP>d!v9Utiw<01Hs5 zyzel;2!O`5YuCU$jgMJ@2QeV!JVv(e=;#0#>FVxEOiHV(t6zBe0=zE)&;Y~Fq~$z% zd>{P80dfIS02aV8FnS=e9c4CPtFTj!ZY5QSlp&Ch7XH` zg_Fe-6NynmBz{4ve`J&|jE$A%Y$9&uPTIv(XcKv+%z$0E!Xlf2F^&`BsJCt8+07^_ z5axx>CNZOpvI4C8imngF4|@&`3|?}%J>o_9b7V081_&Mig!f+n0^IBL^xf(UwSYLl zB*8qvBmuuTyLtl((>E{$4xnZScVO%QdSLPZePHqcfMDzZ ztzhzC>;QoO%trv200ID;00jV^|2xe8|1zvax?`~^1g~OZLydUE`FD@uO2X|gP2W$P zc`26CH^;wuwwqu)uGb{2OhTLLfu z_azt&kSOre20v;*4`7sFgLl>!>@Lt7AU0rSca{~1%5QD^v#elE!GZ$i0DJj&9l=`f z5C#}DfXxox0MY=80Biv2{=rPH-aBXkr~`=FAtZo9fWRGE0yx}ZCV<9&BPW2&9dQCk z01(|_ssC+Zz?l1+8{`F(W2#kTJhjS(>v&r24qcp)zchA@c-hA9p&XQW>s8HuIri%D zQ(lhFOOEm`{&tZvS+Wd*OnzQxOc_OtSP@j$1OpCcM2@g{x&x}HC=(Le!$4fU0&d3b+Qa51SH zPBCML5U>PGZBrgT11^a3{882;5{XD=QDG7Of}>292z>(#`a}rLq1@B8KGSEg-+AQb zu(#t5IJkbZ$Zv2+|4+ct@(*wTWc=R+1V94_H2~B91;mce06^J6#tv=lz+y+H01iNY z4L|@O_!j|x#}C-$@A!c<0mcFd0OJST_Sa|p9sl3KgQ@Ru81TS51{lm6APkVo|GF{% z#{}fRWRlDOkyFRQl2el5=@}V`Sy`#6nfcj;)ZCQ(%%bv=w6gT_q6!#r%GtH`@Wv)C z>>d%$%Bn)fat3h@2BctDS!>oV-jbFWp7@7J04);2{RQzxgQ;i; zQ8zP~fZO+#5GbULaE0 z5Bww9l=+PrlmDnZe@>^JZUdkNu*uE>?~HF}X?LdfcVvGLnST=;0DzsFWk+_vu>MX8 z&<7atU-J5&VG_{Uf67yUkN#5C4mbf60oeW-qJWkD+t>d886N&CZj~`}M|l!ss?Bzk zC&Vz?=EAJlX|HJan-qoiCkT&QhCz?C^%{}yzx2`T@zcxUs+c00Fauw>Yoq~;QOHOb z0rTgHw-Mz*U({JR;-8Mq3m#Uv44TmK6rG>Q$z!Ww7aNHp9dDYh4jtm?RI zgydj$sc!VVVb$wbG(0hMVWeT)*?)&uq<&*00APgkUw8$e0KfrkJOBug6`&ws(@U+!KZ%l)@u3sq-*)>p6#eW0=Lk-e6ckfXXz>c1WF>#m4ej?1GrP}R6}~!Oa8JTIv0&)3$18+1-!Pq@`%$6t zm1^B3(qv9W1U;bl*dLrTB-XU*Caeq`x<^k?fARMw@2jN z#3!~6jHEirY{}oYW*z@jA6fb^`L_MzgA+e`nxYRdpSl4*Cgdml>`Zr|-AA=_t?`Bf zN7J8j$nUvmrsxqnhPS1zh^U-#>-0_C7vR)&Wc_1SQ20O*Cv}@9W~O66p3jmQfYxm{ z{Yt43(%K)#`Tge%j|=})@NzP7MkH;>3kqLhuOpvdezWVRq4KjS&jT0NF4ddOA25DI zl3cgkFj1~Ky7vz2;N*k+LT8I1!EY9GW@WhR*}G2XNjE2w7K5JZwYuKJ{<03$j+}nn za40ZK-A%OyYf~C@E4@VK6wB=rNr9I~db}H;o#}9;gpnv*{fPd->}Axhd2G zey$G9TYI)--pIn=*-V$8T7D*9ujDQ^an@c@!F=)V>)2;+Ts}TvK2S6xy14P=+lN!9 z?#%q0c^u)tJQ{DAopZ$M#C(U1b-u>QgX%^(`cn-acdoCyFMTuR*#7l^n?kl=mbm2UIiLUR5bVCo9@~x2?isOD5quMoJc0(+PKLJ)M3Wx%8DPCd*B@kw4*U$<6DOTw zS{iaN9zLju>zQRer9(9paz5z1_S{8Iol9cx_g$OxEF;Cy>TJD)hp$eW9y4^yvvf!% z@mi;JxfM8^Wp*!gPSJEPazCH!Ui@}%y?cq@4d&XstXqa2WuecL2TQ|0j(U_+dOt~s zMIe_wDiYKUJw5HGF29V<*p2q84q_CT^zFO9_7V zEk>hNZ%>C!#y6Z!^iJGl8(~X=dV?3VYuk$B@_{F1#NW9w zK01BeJH*TCTb zj6JZBz&Qe`fAwk(Tn8XZ0R9mWGKe;S5P;(oxP74WKxF_4gJ1%Lra*LnkpzkZbO&5F zAnX9z0n$?tG=T4n6O&RmHa>zk6(E}csVZ=ez{re@41+uc&_v5A><50lps@Jm%lV?SJs@YBss90lH6SP~Ik-++lMEg#ws&-c8_>$w7szfo z{Q|H~7ZQg%E?)+zBXHtCoxN?TAScc*C?*l@K(Gzsp&|N*NRPa`lXpg|)-Gnw*xI{- zFRtIdU39gI0v~Myr4BiLrZM%-+}y(DoX44AEq7|Zj*g9LX&B$W@MWKhF2$!z@32*8 z`f7kHGT+=#NyaHeK>7DtGHETN`1rr&Ua`#Z}|RvhnDR;oR9nSCHkAO1M0zo*K!a^W9%wXHV9esTJRlO zj;#Gy$6MX=dIz~q7h{(1oHuXxex?x#E~gS;x<-E%7Qo zz8d~%`B^HDF%Qdy)=kg)e1(x7@z=%jJ~ZVQ!?aWII3~fPr0M!jP@;9F~D0ur^LC+;L7gWZG1U9LK>msLx@@FSZAI8o?yu|L03| z)+uZPK1`JokKam{7LDh<5mt6qBJ`_$IK!03Nk8bGG&%V&qo!kwkd`KldjEr_81!R{ ziB7z$r|}HGCqZ*B@uji>jrLW55h~KXR9EAtKnlQca?{u1xDL~?7#?|fM_q;pRJ9Hh z(iJl(!QjgYgNX{`2Z$(bQ6xgze3J8g*Yji`F_Q zC`aDCD+<#uBq#h%x;nc>27HOW{(1pVlkaJ$8fU`n@>I)JGh2DWkBrE-!mVRHn2uO3G}QSxXdH9l%$JCo`nop>{=@DWEJV&JS6uI? zG{!}jmf?A3BIfLops-&*0y}`6w0o3a%3vWv^S4Y zfex2|=&Lb=0~0v1FT!`OA1^FH$G|;NuXJF#j?JHulF(!t5_*b>$2-I+bm|`S!D3Kd z_qP?uv+!v8WkPw!su}gTRkRvG%KF`kKlF5dG!_c*CBI~lsifl5CbHu2t|j*P-Rc~z z?c@3^yFH&cG5Zg zJu)Erk(Q*cDuzi-8rb`Vj$|UC&=w<9I2k6&LhCDlXw1S*PRwkxf*xp4c}mQs;pPTr zD^ZjKJXiy}4KaSDy{N802y(*2;>W^=5Y>TVDwr5N|A2vN11BUt*~^L{pkn34SeQl^ zc#*ODW3ZHTh!Vq$?8n2|bx{ZSQLF)uhUz_mT-p+NjMs>+gh*h5QPjNbna#1il5NSC zeB2a*BaT=-=F0DObyEtHF?RfBmel7nFKfN+fS(#m&%&~W55f{6A)%%~>=pt#c6#i%)??1h zNCcjoY;!M}XD*oU`fc-MZ}XUd7$zo924P0C@?x%gfnO06KFaHvDZ4v?zJen*N0QAo zTQ*w4Z_63le4CC%%vCo;WZ|(+%=PHJ#*kejc5Fv1s%q5gtzOqUb!wRpJFC>Y>5&Km zsn!=`Et*)J9PM_ETTTKOM0_4i?LOu^wEL4Z?Uh(Hx+{Q$80oTstgS>fqs4>Xc~h8g+G4(Z$?F~N@yY0v zd$cU8(RX_9#fTS17{nflYcDO50xfi2+ziwZy@P~8V7+r6vkR}b=uMp~QSSQr;MGl} zlQMyhOLUn-m~a}c;Ke3O50ENuL5@_`{!d(-*C+~>)=(9XJVvBzZFs88&pbWNb?^9P zDBClM%hC}EMa`+3->Azgw_u9#tY9UI4k}$@g@i(iwsp0@|7byIj=SDXb3~^F8;=Z1 zV`Lp-^sOU0!)WGwLfnBO3B+a2Ec4?gW9bD|Z!WV%P8}6Ph|f7Zby4EkwMV@udT~kbpL) zLwoBe3_skG8LjDvJ&N63eMbXRUF=@^ZV!SeZ#C98IC2)3xm8TP?J3AZXC;z}rU(cB zBcVTDiZ1T&+kbuK?Di95;^Faefsd;O___tYyPHF|j{3(2f1hJ6?+{1QFlEf=fKn5 zqIRgL81aDc_>)`zJqS;cUH^}mD z3EID~&Hf`O#hbL*)Y^59d2Pa>7vWUQ*_D-;D1w7hi(~oO4T+-fYZkh3a`e5;Bbhfg z?2SLY)M4efyXb9LWbe=Ql5)HIT_c-!{g*zp9~OUp?&gn0lXD-G z_I&)j=lb_gN?Dtqz?&6*%GIp1@T911J;t}kDQqzmralUKlY-%oF`uU(2r*omKJ0~X z*?<^SMGVt?j4*$!m}aarEEeGuD^Yh6TgVV787m)-Q7Vj8(Tr0?aVnEA8rE?UyW%#b zVt&=e;rXfiNEBkX*>{83!`4)zZYr8YH6}&Er{XvZsV16=q2zdL>9DUJ(I+%1{=@Nn zq!g(KB(LuHv~7}LB7ay|5@+&eQhs=HBq6CVi8qTs;ek|qNfKWUf69rv z0Z6!gMBB$`k&Kg+k12&5Vi7c%7uQ zH{BWUH`5=_W+)|OsF2cEtux21GrrWt!<}NpM>4+`QnvVMvrC!3q-io)F+$RD(wZ0+ zFB*G9D%&F(hZh%CI!jnOi+6vP;8qf65ltw9OKvt+v@ni=kiDlUEjE!$#!FDHh)>ch zTS|aSdnBc2DI*ewD%|cx%T2*ft|Dbxg)E&o3H4k$_1s*mIj>Z9?OB7Q8PpIJxp(7p zZToViUgk2u@{Ia&4n4wb^5^hOr6Wn1#%)ZDcqa5bA4Qa(w+)sVps$7JbPOyo;;MoHL?`*DIE*S%CYDAy?QWNu{k=ijyHN z!aTg9gd?VeA6ClbRE(L*D-_@?7NC?CaZ+$d3IyH4q6-6N_Pd}q6*B+*II=UaDg+(4-MJbWh-+NUtdW#8rOK22h zImhToG;|_cG=4#XTv?9oFV`uSV4W{PF@Rz#27)od-1S%H<5^JgKla>=!uHBN~sx7f%Cep31}T_IehG=Oew+a(ojCN)y5bnyh{ z`g&7utaAQ>(u<%bA@OD(f^v^6rm#|`bV0_Yy?LIiDqF3kWLl;>9#W#q8_hAtS~jdt zH{F0YqqAVb80hpW<8F-7duPL?9!}U4DtZTIt?;=xD4k|GHTWy96fjOlZU5Q0Q6f{nSopBD8=MCM0pkzm= z3WBoeb)9pU7nzG=ZykF(a5!wBR<2QuRKGUOsPNV;?zkgOe1EP^`-m<6#`ZX-?@U*DiBP{6CVCm8 zf2M;as}v&D@xv|$K~NL@at#d~1fdHYAuVPo-v$NE6+v?-#sD;2wAb?h=EEx!wyYa) zQPW@v48w&kKP1Gy7gJS@N$wzZ%INR<(Ho>|3gwv#yOv$D98dh0~q{a*h@^ZoHQuCJL;qBj0lt(n&>oYX8u>@c52?<}$dF+qnKtEyjJQUt)JQXMLA5^IGKd4^}M`ZOw9rQxrts$^o zo!}oUc%qWc!p|wWvG9E_s3y+%Z6~}U;j*PEo)S2U%?Z61@=Tf#@$E&g8Ln?w@_9@e za{S&@2b!Owbl*hAmwIk~tekc2sEw#G<5dQ#wT>AnaaZnTh79J3%^u#}8Jl6X2u zc=#+&DS#^L#>-lJvDt%IS|n`KzJM&N89y&Zc>qG zR)o5mf{266yJZ8oqySM@B%u2yy%K+(1o-W_GbRM?oC>}pHD`5mmV9iMcGz_e7yaY) zIBEf2JDoB7VE)45{AN7<HO^A$+v@eT{f@N_NO2)f1;xIbgZs&Pu z$b1fjTPW4|udeM}QQH7=X?}ZAP2gI76OtZYg#`FY0lx1aA0vUOC^c-Z1K+KrDP+h| zgNCEu^^+=d@qA9lK9|MfekQ@Y(-eNDsl80Wh9sdHl6=il7Hn1`ZBuv3j>U((^ASl7 zeRM2l{up}Uo!{U)2i$v`hGPNJ#}+Y9+%)C|ycH}+fFy{@#P^-vb?GzT^R!GLzYW)V zr4v%;@!n*>yai61fF3@dI`iZMp#5PwG9lt#f}eDvYkG>rz4t+9=P<>9FcqSqE#9D+ zR@Sy!6eP{o#2>5r2ulVKoN6@Woo~9jIZsO1x3$)w6t~pi|C7yo_S zF!SdZEal|D!>^}IPu3a=e34%7j>7-Y6inx)u~<$ul^W7p8wnZ!FAq+4eed%cSQGwOzWfBJv8z1S^bOO zU!_BjpaC*SffA7fR=tSMWi{G&GxH^5^K%#GHmhxsI1)?*4~a{9_$`;8us+V;dV2N! zjQg$6F8n`C&9|na)}y~Jp0-|!+ui(6s?2S7EA`N1Xz;eyF?LqYk!^Wqv9#g#*{7$aer?M%LUW$d@`7J&^8BZ*@~gr;Q%mLixg)>MYXBD> z=Nx@2*bJcR0nqQM@J%hotuuK}U%#J;*lxeFEnB^%ya6nd_!e6DGaz5&k{h26i+UOY zF2{GgRfP7O2_ss9PlNG3$4gXeO5J@0r-Sj6!2(Zqzs8#$|BLY{QPTNic;?T&Tiepr z{2L_xZ+N~nl29Rw{}+qz7k;O~T(F6RJsW`c(B=b71OXjcj0k|hNn4e>E?5AhjCDMh z%eG_+iUswR>&PPc({)vAiF>G84!^bB^6Dgs22%)p0_GmYpv5ZXwDq3kl+*SwnpAD%`?5Ei_Qj}4Wz!@#OeMx5>Z z(F;!t_H|SdI2^!?UUaA0rolj*yE7eoU^Fo zr!g34$L*eBe~Q0NV`Zbka-onfK5h8&1MnlW~ z)#!XRH!uk&p=jE1Z>u+OxgW*jk! zO(>AqHevel#FA-@ zPXQ?|`&Qzo9JS3&n2PGV8xyy623Wcq;{~;SI@KoTi;LyzwcE=i{Y<+a{KqlLZj!)e zxaY9W-%WRG9@)MjC*9}j(a&5w0yrqTQlo{n=am4|5Y{MJ7NBpNFn#EPN!{mw`qwGX z#qYTvGW}j(clY&Rk`QpSZJM@E>H}|0!wHMY`s1)D;plQ+@(r0IS3`;3xjL*U?^ zAyYJ9nM-l0piTSkW%^SaFWKL2w6EQ273Om+cckjD&pC2bqWP0Zr~64pa!UPx&u?wE zD3GrM3L4sd=;ah}NnnBg8fTSexPG6_RKT471yfh;ifg+hbS`C6I53hgqj&^b;Bv+rLt^B_7#6K|zgkaA(M>whdo4x1W>?AeT)xTaV zbXa;F*K#-$lAvfZoc86~^)lCJdFE-OweFi+P%K^P)HP>%A&ZjO|M8zoOns&1UZHqI zIScB@n|b2s=m#Z9pj(GObF~ISW`BkM8&9*U)jRj6rt7iU(9sF&BO*EOZLB`5GN$P& zjo%_83_?L zvzBs}pb=^T8+qsDC9NFnc|s4|fDB!P`@e>coAhjea7~u%F3Xm(wQ)9m_9|&X$IfW4 zHn6)aTr2R6&BN1M+>L{>rN1ekH5j0?(mO_}^D5jPVL|dORE{=EEE}@ln^n|G3*Qs< zK;pA7Olv66p-q<47KGrWAcDkS9A3c`h!DUQBLEy+4akzRYfZ2T9YY3C@q7v#64td_ z$ZZ``ZdEM1Z$<)WjJ8&f71+yVDU>f<^xojOFkE-(+!PAbi(R$@z_99XK6q1RHR*ru zuKTO~wtTl)#*H;=uh$<9-M>b%UGEXo7#=Vu)E4q&1-J}EkB}|Sv(5{LE9|>}-Wtj- z4u+FeAW0*I3WA4fdxrM;afa#27HC9BpJa+F{$%)h+|kAhn#aXP4?}l3Me^OXv-)Tt zOwQvX;u>$9s>)~q3BdWQ0Rk!aM*@-Vm$FiOkQgX5GVr_FmBCz+=64=P*zRS+ARfS-S~ZpPV`X;Gvrw-FjadJkrAywpGF20D zIKG@E`2`P1ELkb?;+doYS%QG0wdxiXNC{X*CPM);aj;k*nu=tStY+XL)_eeo*FxD& zDXAq#kyqrxUE?7!B`oB$UZ7ra=$z|-7w#(h{(#~X>Rgr&iqjv zqBtx&x#mp=Lx6OVIL`*Z=X7=87IGttw=o5w!nMNg?sv5ktkQ<*ih18iUC9f4c;WfY z$gS(p9)?va55?+X z{aVk9Tobqd6e@uQ-Yk0GTL>p4o4a2$7G~S^{8c}Om4gYe&Z!RQUEkfAI`pmV0=PR} zMEO>|_m71?)wTXr)Bk{U=Km^`U$5B@yyzMAdlM+~+{Cyy(@gMOh@?1O!RO5O>n ztMym&=|zI&;v8YUv}_13fa9}-35mV}cu-`(q*h2ifZGju4e(T4E4}IZ#Ih<8ggqlH zv+80v@_a2zYL#v zT%q^*Ko2x;Ks(}D@&ORw05?0#l!6RW7#Yl%(m9s^I#7G`$BnD*l!(YhGBU)*melOZ zl7EF8#x1u4ObyHPbu0pKbQqbOwItqh&|>M=6BPPezMlKL0}Wz8(dnu=_8W1tLqBf< zEt)l7C0875?*pT7&;Y{vAZw|1MMdvOb6OyAGtp6MZfcNny7DYFm?4m?!#o9Pabr+h zNQ4M|i#0bYqhm?tidZcS-z%;mLXj^2IM4XPH7^+Ceami z6}x!N4oOCLVgd9t5jYq*Cc3-a`Cdn2FW1f(?y`(v$;sTmc{PSC(5#w7dth}d*+c^v zr$(B}TfIemNDsmC0n)Bpa8=nrl&;+Ud>O_f)_!wTzs=ebDxK9s;9q2{dPxI)4bc>mOujyPb^Y2GJ5! zW(S=#)dEmVaVPpN)M%$T!jHm0?<6bOP>uzaY2wPDQ$eUfRkkus6i?e1oppKU;g`7U z=4{Y58qmpr`dpX6w19+YEx-;4nC_=hvoKuX&=76rBly(Unn48j6qiK?{hm%XKoT9( z2tt*!Ff7!U6RpO#8ORn;kn|vIqkjuC5Tb4a7!2%Z+7zw!2ZXa@ZVbe=p-f@{p=g+n z{a_j#@F}tOW3-!Fhp0j4J|aC!BBvVq1~hLLkB4X;PRmF z4eO-eS(#n7jOfAOTDuU&PyuKg*Joq&2PMD+3Cw=g`!EwWh|GZat26bqb?A+DVPkgm z3>zkcwM4b!%fju{ZFHvAAfpFM30 z_zXk_xa? z@n}JKt>z0fW}TzLk?TxjZ8J?Oz|lpGv^k9^D2*_Ir3a{iojf)be9|>G($_W#-~VhH zH9f{0EOdJ6#Dx2>7#%RRSsizXAD4CT>(p^H{Gf;eD@Oi>e1Z(W{<(g~ zJ7LWK{-Q2;6((CV3-tIeJ!GE#@lpxl)4U1~_hA~X!l@wqGaQT}?v+AdC-5-s7M`ot zesvLkbil7#(GQr&^6x;X7|^gu53+yc2bDvkiAW>-#qfyi!>)8wrYX4`N+ycAap0w# zY)CPzG>_kl1=B01F)RG_8vTp#5YzHkuxKPz$000)Dbe2vs9Hbo9a^Rw#dr_g1Bs@O0hkZ z_}ER1usfsJ#3x&F;Cx`OX<4{$*$WPHrm58b;%M<-rj_L^ML>vpV|Mh(?1}~|03vLp zg6dnbUW)L|CKDp^G(V&bt@Y2&>xrzj&u+FC+ZE#{KNk;Zh}dQc)^-P;G!;H5FGPXN ze|TOxUDtR(2j!EDwj4fxj`OO*Yv%E~*ZD?dkPg${j;_YdR$ND(>&V6&%h6p2_}6oA zk7#`Vs7I7hn7dS7?>x&1hO8ZkvxAwe=x@P!b9F!ufCt7w0Cq3TTj5Rs>-ga_QV+X$eS+8yU8_N(r=(~X_YrV7@v=k(Qdusf@+Jc z_sOcKHLew|)|7U{3KcXQUyI0Q-gJA=q$H6ygNdUPKYp0-Ir&4gp}D@v>|>5y9DOD( zQ*eb={*i`SOM@zO+W1<%HmhxxUnuyP-C5g4XBHVNhdT>-PXFlIU z8`v>m<{-ez8W?>jx`&F`E0?>hm(y5@?#eNTJin|~C4Rn}SO~_DE!#h?slT`#lS^-U zM^l@FYO$N+ipp;?$VY&oo8GenlT5W1jQZ!b&Zg<+XHCs=zF%*im7o8n!NoLhNH=G* znx>#_yGYSqphyr`G*7%`_%jHe)JnSGTwCkDJ@AbiYffo z8-J^{XKTGDvg7lCuQ2nC2Nx&QjN7N7>Wrl1Nz9EskL&;~Z<3olStdJmY^riDKiF=F z!KBia5y$gCzj~DQ`fdt{1eLXzDq5)dtpu*V)WC4JzNKDaUvjWK49eN6oD zh5pgyiyjYP(C~$MJf>S}W8GU%dGwBUbF%9L3#F@i0xy}?mM9Az(Ds?lSL1eD4|4<9 zW}#!dxt6Zutr5#3kLgTZtAeZE*wpOx1LCl+o+sK-hvtpK;%;Dyt&7Keb`?GS+D+7c zh#ooOH}4G-{z0=#6A5MpUugG_`WpBtt!F&#vxn+DUDfGc+aE8K)Ik*Gaw?s4OhVzn z0n0mb=6bQVDKiEMibvd(Zsp5@%XCuC_B1T-`nNZaz8w>tRnuaoUWw1!Q)@RgzD+dV zpPR4vXm!T&%csPnE(T14i571FxJW}9Jx!z^1a=vRw@qaN=OENLe zv^<9FM^(!kU44`BJ7;sSHU0Mi=B+nJTJCI{J>EPkW3JZQfpG2A!9K|DxX-#8VJ>6r z^_Yp~$;1YyT{v-^K65;P=a={4;{fWx6`o_+V5YBQ<`(i-#Zw>Fm5qq>{>Z1tbC~h# z^Y>%5m`#IQG?r15qjAy1{p~K_R6@F}VtQjnj_x-2HUoL~59mrI?YD!?(bHe^ojiU| z=@Ad`_$B4!W7w&;dZ*7|ytM&^8JJNAL&@d4QPg*bRifcc2;C>twUHsow+P-l3T*F8 zoD0p%{UsOE^DS~qIDjI=YjOSILscs!F+5@SsU}lEy<3QJiZmutcxeB+Q0<0s&x<3! zV4ui{_~WW$W)TNb#FB1$^r;*cdFSIV&l5e$pFa8?WXh^D<%A=)o^h7{TQ|D??_&eG zYT$1U-a<~-7>Ec!1v*dS1Am`5Sk}rRnq*4-){$fU?gz98MR7L!t*DWTGs> zy2};dj6mt)2cbzc7^kubr6(7?j^kwSx8l{DXwk7ivfOK;wM~`jM)wByo3TGsU)=D!wjVK(_HjVF@1&yR9oc26$QX;XJ8tVQ zbOHP(&{2(U4(L3Ftq*+jf?G{F`CzvN5=Z=axYmK++!-+nLXs)~l8!5iBMnQ%(CG2x zBAbw2(oZq3mTxO#mmy50gx}XtoeKO!b+DRLfRQwbSeQx;>CF|OELKl&t@-HIL8#+X zp@jo-BH|TnsIdhWbB>5Vc(#j_l#5rCYnkR)pp}ruuFBs}hJBfP2qCcpC+>D{cb$56 zk001gdGhcuOG3ocm5dfKpiYP*h^1E&|LFb5J%(d$Sf%`Ze(cS`vMy?tY?aTZCrmKf zla7ZbflO(6LJ5E%w5@|S+9P&XJrsLH7fu4M+stgD&B4GlfZZrpAb{pK=IY<0dFFTTzj2K+Q54c`HI@f zmi~E98Gz&PBd+C8h{W?&|Aarn@_jS~4O>0kn&(oZ$RBF*lC1^L?;*1byjw?lE^6L! z>5pUGcmMHVvTG?Z{FcohaVzbv7dAgMJu${2>r%@pB^)71S$tOCLBpNty4KF$IzzGr zCi@2qjyvt&9Z|V(^4YNJgPr|j8NWpjJkfh|^1!%ZZbY|?0J3PMb^6&-k)xU6N~!;sm}T*Z z(}wT0ZL4UQ%3j{z&b0-5+3L0HnjIg++aDQys<>1|cWljd`s3X3=8^H&hksn|d=W?N z8gF=hn7=*uDza(EV@z~9ePc3it;=g#Ch}Cnj8OC6q0c#Erb9W7=KtKH-^W{Fs=h6Z z5-v5r{b!S2%gx>uRVQx#bB{Suw>t$=d-6w(*0Z&0k0hqsLGcsWoO5YpBsz5jh9q@s zC)H;0kCh<1s*CutY!Whm3ZOlA);;74Xxw!pj&Te*(#7AMjiPg z8LV5qjO0S^RtrdD>VWQPUYPXIOm_wc2FY-iPh>24jAZ<0ydMcqsa=wO8;y?@xCuF^ zJp}M(shIV|3+DHgNE`OpUAWnjt)Y7b`HWj2^i5Wbli`5t#Oni_Ez#AIbsqIu{MX2b zV%>LZF*sfwniE(JdEc2&qOnB;g#p`(i*;IeXf}G@5#@#j6e%&7Q?aa&Dr4GLLX*mp zji;uMD)=dC*qb>?=RoGxky=0!oLbW3GY-IrXSbAWq?@gv)m8RWgGm5fDD;PtdG2*sn|?(D$2x_o5VDOFLqSZSIQ;6Q!K#hl zhik^3P@z{GE1k?0lvAUuK(aQ9R1cs4VN2n16k4^OjWh%;4j_DE9D`pAi!-yda2)7k z{Uo@0IYiZHY6xYb&5+$5CIuMS5Ng-avzu%nsT>s0?a7f==*ByzVRqr`Nen$#*7YF7 z_10R4=a&Mw(8{Fl8h{0eZp#AkaPnSg>UH0V3?;2|Bn&!VKKj?L5)&BbUsUT^FAj%h zo5qJiTC&keWyVPKr+|Y~PW1S@cf?gRqV`RAPVki>0{_PPU}=6&3E?*)Ow|B_>&pl4 z+EuP9Cd9`0%Sb3g`Lk7+5x4@Mv$yZwz7VKsha&rHY~E0vtccWGsqwyB6@9w{HxmCL z_Hb7$_PU>ln(q@o{M^}l_m10rR(K)d4>++gALlfV-;ABVne(ANsWc(!V5t9(cZA0e zS5SMs%VK_$#*;CYRr;p}oqMONCEjWC0J_D{P+iqf~h2U@OE6Y z+NlpTd&{iv1es4%o&-C)+I=_UCzbx2 zeP@$SY2wh1%P%3|_FK(Z_c*uzUX#9<-J`fvu6ccb{gQ)xdj$LKNQOKYQD6rOnuG)c zpv3DbP1K_cfyv3DeONnq+cy&JGt@Y;`}o#Q_(%d<(UDe~eNS<8nfLdPh?a2#`+l{3v&#L}y~QA}CLt7rx~dEtVxUJ6Qlu@-x8!Ld&+lBL!aD9_i3+&b?T0r2j% zb|x)R8FoK;W~9C}sx!HIBa=l|yJoe&=`A5v3m(AULYT%3r}xPrpcRoJ$gnM z-|~_0ZMqe`M{2tG6OH>C(Q4-C37`Qs7xqTW?q}Y8>W8@SpAThrpnZo6j}Xt8f3|ruZeRKChJRlwMhH4c;k| zK|(ov<-nbG$o6dC5QIEz{noi7n6fSHNhF=pX7d|RU5Qt|lc?Vnd7vCNuXvvruavCV zGi>A)w+WIho(fmpmHDnigT727T=>w?4fJJh`QD*5I`r1E|?7}l4vHl zfn+hXgu65V<=D*i$q>d@x?Ss;7cUiAyzi&&$x&5nEh1T#AH+aO08lf40tP+hB8=E* zxqX>65OC2A{`&LEyx87X6an6KNM8AnO*oYAMz^3YNKv;SI0b7ZFz}y13WsAW*^i3m z@RFdi@o>m*Ic?0mbknI#hH;&arUGxnq|E zfb#n9g7-^R+stMu7G9xDT(u!CP&oekHNy@FPDybGVe|54Wj`8WklsOxI<}XuihSEE_AXV1Y#F%=eKA@B@N#l=(`VO{#w8lGCGbN^Q7+ zbePGvw+>LU<0SSFpT$9$^gZU zs%GymNO5HCd?3E(>uj`X0=yRDNtP5z$XBU;nH<_dUT7d+&sCP7Pkx=8nKWP(N->eM z-ChyVtZQhYy-TQ3>wt!nVPO_9CB|Ynk)ci`SBB(7D%V4F>%(5`RN6z=AC#9EJZE zne@Wy^K?#f=3D34$iy#7(Px!nZuh0+!*^x(#od16k^+~Us65j2?$|e__{FR7;_!rV z1)yTtjZ7u;oj;?{E$6e(Hag1mHQZJbGBHLr@I}~0il(mBQ=HyMm(_ce)ShYCXWOA< zTM;$r{3Zz*K^an*goH2%aJqZgkaWAyNMt(XQH}e$J#N#i3f&x{Zhq&-ntX9@8A%T1K<*oyHFo}|?r-Ttb1_zk4$K6v+O^p44eN z@-4>YZWA_04M+kr$JU(3ID8xckJ<%!Ca!oe0t>dr3nKePPM%kB#iLWRPNntg1oYvf zX*M9JW%tZi?^+Ntn=swY6Jq%XpQWWsp|B{Ac4YZ0dJ~emMWq%clxn)=)JqflN@5w* zeBp*!h%yzbxo20dg94kvx?BrYvgLaSS&>CkUZhdjwDA!LsqaQQGwEQ&&K zV^~ue9+i<44#R1}D)%qc6##K?0r?@296qX}%R#>)OE?9%u7bT#kWkW%NJw~Tli)Pl z?ZkQCrrM1u8R6L}o$k@t(|FlT+?)$)vMEoX)Fwc6K3j(~Ze^^K_NsOTJykqIloSoX;~&4Yc{bC5HkCAHt#0YEc}%^d+I8s?J6G3ZcdvN-;c?iTv+_4vckY{N$7-)Y^HQx@VGmdcWJ zC89DQ+3TkOL#V{dA^UYIdX=Ir^oVrII{Bby@89_Vpq3(@N-1+w2e@SM)ov{?>nEzk zX8VXT&~n&L8$qwODT#+4NF&$9)l69o5=Oe{NKL81&BE!L)@BuNyF502V zmZ;g?bypFx7%EFJz_q+%kfn(7;3CHb=QwNhx-a5mXM

APv)@!v~ZN# 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 z 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%0D%Rk>Ht?epM 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

!D>gb71P4(dWt4OF1Cn`99 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

SVNu7{k4BVdno>KmRB44OwR^l;>g#F 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%0DhZ;*kh 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 ?h+)CWeHLKkmpxqP4d8d0o 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 w!kJMFMLHz`Spw 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

kU0V~n-C<<3s2Jssm~plpv?@OFs9xOhO5ts) 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