├── .github └── app.png ├── .gitignore ├── .idea ├── .gitignore ├── material_theme_project_new.xml ├── modules.xml ├── paga-nois.iml └── vcs.xml ├── Cargo.lock ├── Cargo.toml ├── README.MD └── src └── main.rs /.github/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielhe4rt/paganois-cli-rs/ed1da61582295c7f3ad8f4ea04eb2105aee15890/.github/app.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | -------------------------------------------------------------------------------- /.idea/material_theme_project_new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/paga-nois.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.22.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "ansi_term" 22 | version = "0.12.1" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 25 | dependencies = [ 26 | "winapi", 27 | ] 28 | 29 | [[package]] 30 | name = "anstream" 31 | version = "0.6.14" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" 34 | dependencies = [ 35 | "anstyle", 36 | "anstyle-parse", 37 | "anstyle-query", 38 | "anstyle-wincon", 39 | "colorchoice", 40 | "is_terminal_polyfill", 41 | "utf8parse", 42 | ] 43 | 44 | [[package]] 45 | name = "anstyle" 46 | version = "1.0.7" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" 49 | 50 | [[package]] 51 | name = "anstyle-parse" 52 | version = "0.2.4" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" 55 | dependencies = [ 56 | "utf8parse", 57 | ] 58 | 59 | [[package]] 60 | name = "anstyle-query" 61 | version = "1.1.0" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" 64 | dependencies = [ 65 | "windows-sys 0.52.0", 66 | ] 67 | 68 | [[package]] 69 | name = "anstyle-wincon" 70 | version = "3.0.3" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" 73 | dependencies = [ 74 | "anstyle", 75 | "windows-sys 0.52.0", 76 | ] 77 | 78 | [[package]] 79 | name = "atomic-waker" 80 | version = "1.1.2" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 83 | 84 | [[package]] 85 | name = "autocfg" 86 | version = "1.3.0" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 89 | 90 | [[package]] 91 | name = "backtrace" 92 | version = "0.3.73" 93 | source = "registry+https://github.com/rust-lang/crates.io-index" 94 | checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" 95 | dependencies = [ 96 | "addr2line", 97 | "cc", 98 | "cfg-if", 99 | "libc", 100 | "miniz_oxide", 101 | "object", 102 | "rustc-demangle", 103 | ] 104 | 105 | [[package]] 106 | name = "base64" 107 | version = "0.22.1" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 110 | 111 | [[package]] 112 | name = "bitflags" 113 | version = "1.3.2" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 116 | 117 | [[package]] 118 | name = "bitflags" 119 | version = "2.6.0" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 122 | 123 | [[package]] 124 | name = "bumpalo" 125 | version = "3.16.0" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 128 | 129 | [[package]] 130 | name = "bytes" 131 | version = "1.6.0" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" 134 | 135 | [[package]] 136 | name = "cc" 137 | version = "1.0.106" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "066fce287b1d4eafef758e89e09d724a24808a9196fe9756b8ca90e86d0719a2" 140 | 141 | [[package]] 142 | name = "cfg-if" 143 | version = "1.0.0" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 146 | 147 | [[package]] 148 | name = "clap" 149 | version = "4.5.8" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" 152 | dependencies = [ 153 | "clap_builder", 154 | "clap_derive", 155 | ] 156 | 157 | [[package]] 158 | name = "clap_builder" 159 | version = "4.5.8" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" 162 | dependencies = [ 163 | "anstream", 164 | "anstyle", 165 | "clap_lex", 166 | "strsim", 167 | ] 168 | 169 | [[package]] 170 | name = "clap_derive" 171 | version = "4.5.8" 172 | source = "registry+https://github.com/rust-lang/crates.io-index" 173 | checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" 174 | dependencies = [ 175 | "heck", 176 | "proc-macro2", 177 | "quote", 178 | "syn 2.0.69", 179 | ] 180 | 181 | [[package]] 182 | name = "clap_lex" 183 | version = "0.7.1" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" 186 | 187 | [[package]] 188 | name = "cli-table" 189 | version = "0.4.9" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "b53f9241f288a7b12c56565f04aaeaeeab6b8923d42d99255d4ca428b4d97f89" 192 | dependencies = [ 193 | "cli-table-derive", 194 | "csv", 195 | "termcolor", 196 | "unicode-width", 197 | ] 198 | 199 | [[package]] 200 | name = "cli-table-derive" 201 | version = "0.4.6" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "3e83a93253aaae7c74eb7428ce4faa6e219ba94886908048888701819f82fb94" 204 | dependencies = [ 205 | "proc-macro2", 206 | "quote", 207 | "syn 1.0.109", 208 | ] 209 | 210 | [[package]] 211 | name = "colorchoice" 212 | version = "1.0.1" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" 215 | 216 | [[package]] 217 | name = "colored" 218 | version = "2.1.0" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" 221 | dependencies = [ 222 | "lazy_static", 223 | "windows-sys 0.48.0", 224 | ] 225 | 226 | [[package]] 227 | name = "core-foundation" 228 | version = "0.9.4" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 231 | dependencies = [ 232 | "core-foundation-sys", 233 | "libc", 234 | ] 235 | 236 | [[package]] 237 | name = "core-foundation-sys" 238 | version = "0.8.6" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 241 | 242 | [[package]] 243 | name = "csv" 244 | version = "1.3.0" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" 247 | dependencies = [ 248 | "csv-core", 249 | "itoa", 250 | "ryu", 251 | "serde", 252 | ] 253 | 254 | [[package]] 255 | name = "csv-core" 256 | version = "0.1.11" 257 | source = "registry+https://github.com/rust-lang/crates.io-index" 258 | checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" 259 | dependencies = [ 260 | "memchr", 261 | ] 262 | 263 | [[package]] 264 | name = "encoding_rs" 265 | version = "0.8.34" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 268 | dependencies = [ 269 | "cfg-if", 270 | ] 271 | 272 | [[package]] 273 | name = "equivalent" 274 | version = "1.0.1" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 277 | 278 | [[package]] 279 | name = "errno" 280 | version = "0.3.9" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 283 | dependencies = [ 284 | "libc", 285 | "windows-sys 0.52.0", 286 | ] 287 | 288 | [[package]] 289 | name = "fastrand" 290 | version = "2.1.0" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" 293 | 294 | [[package]] 295 | name = "fnv" 296 | version = "1.0.7" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 299 | 300 | [[package]] 301 | name = "foreign-types" 302 | version = "0.3.2" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 305 | dependencies = [ 306 | "foreign-types-shared", 307 | ] 308 | 309 | [[package]] 310 | name = "foreign-types-shared" 311 | version = "0.1.1" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 314 | 315 | [[package]] 316 | name = "form_urlencoded" 317 | version = "1.2.1" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 320 | dependencies = [ 321 | "percent-encoding", 322 | ] 323 | 324 | [[package]] 325 | name = "futures-channel" 326 | version = "0.3.30" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 329 | dependencies = [ 330 | "futures-core", 331 | "futures-sink", 332 | ] 333 | 334 | [[package]] 335 | name = "futures-core" 336 | version = "0.3.30" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 339 | 340 | [[package]] 341 | name = "futures-io" 342 | version = "0.3.30" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 345 | 346 | [[package]] 347 | name = "futures-sink" 348 | version = "0.3.30" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 351 | 352 | [[package]] 353 | name = "futures-task" 354 | version = "0.3.30" 355 | source = "registry+https://github.com/rust-lang/crates.io-index" 356 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 357 | 358 | [[package]] 359 | name = "futures-util" 360 | version = "0.3.30" 361 | source = "registry+https://github.com/rust-lang/crates.io-index" 362 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 363 | dependencies = [ 364 | "futures-core", 365 | "futures-io", 366 | "futures-sink", 367 | "futures-task", 368 | "memchr", 369 | "pin-project-lite", 370 | "pin-utils", 371 | "slab", 372 | ] 373 | 374 | [[package]] 375 | name = "getrandom" 376 | version = "0.2.15" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 379 | dependencies = [ 380 | "cfg-if", 381 | "libc", 382 | "wasi", 383 | ] 384 | 385 | [[package]] 386 | name = "gimli" 387 | version = "0.29.0" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" 390 | 391 | [[package]] 392 | name = "h2" 393 | version = "0.4.5" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" 396 | dependencies = [ 397 | "atomic-waker", 398 | "bytes", 399 | "fnv", 400 | "futures-core", 401 | "futures-sink", 402 | "http", 403 | "indexmap", 404 | "slab", 405 | "tokio", 406 | "tokio-util", 407 | "tracing", 408 | ] 409 | 410 | [[package]] 411 | name = "hashbrown" 412 | version = "0.14.5" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 415 | 416 | [[package]] 417 | name = "heck" 418 | version = "0.5.0" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 421 | 422 | [[package]] 423 | name = "http" 424 | version = "1.1.0" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 427 | dependencies = [ 428 | "bytes", 429 | "fnv", 430 | "itoa", 431 | ] 432 | 433 | [[package]] 434 | name = "http-body" 435 | version = "1.0.0" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" 438 | dependencies = [ 439 | "bytes", 440 | "http", 441 | ] 442 | 443 | [[package]] 444 | name = "http-body-util" 445 | version = "0.1.2" 446 | source = "registry+https://github.com/rust-lang/crates.io-index" 447 | checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 448 | dependencies = [ 449 | "bytes", 450 | "futures-util", 451 | "http", 452 | "http-body", 453 | "pin-project-lite", 454 | ] 455 | 456 | [[package]] 457 | name = "httparse" 458 | version = "1.9.4" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" 461 | 462 | [[package]] 463 | name = "hyper" 464 | version = "1.4.0" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "c4fe55fb7a772d59a5ff1dfbff4fe0258d19b89fec4b233e75d35d5d2316badc" 467 | dependencies = [ 468 | "bytes", 469 | "futures-channel", 470 | "futures-util", 471 | "h2", 472 | "http", 473 | "http-body", 474 | "httparse", 475 | "itoa", 476 | "pin-project-lite", 477 | "smallvec", 478 | "tokio", 479 | "want", 480 | ] 481 | 482 | [[package]] 483 | name = "hyper-rustls" 484 | version = "0.27.2" 485 | source = "registry+https://github.com/rust-lang/crates.io-index" 486 | checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" 487 | dependencies = [ 488 | "futures-util", 489 | "http", 490 | "hyper", 491 | "hyper-util", 492 | "rustls", 493 | "rustls-pki-types", 494 | "tokio", 495 | "tokio-rustls", 496 | "tower-service", 497 | ] 498 | 499 | [[package]] 500 | name = "hyper-tls" 501 | version = "0.6.0" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 504 | dependencies = [ 505 | "bytes", 506 | "http-body-util", 507 | "hyper", 508 | "hyper-util", 509 | "native-tls", 510 | "tokio", 511 | "tokio-native-tls", 512 | "tower-service", 513 | ] 514 | 515 | [[package]] 516 | name = "hyper-util" 517 | version = "0.1.6" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" 520 | dependencies = [ 521 | "bytes", 522 | "futures-channel", 523 | "futures-util", 524 | "http", 525 | "http-body", 526 | "hyper", 527 | "pin-project-lite", 528 | "socket2", 529 | "tokio", 530 | "tower", 531 | "tower-service", 532 | "tracing", 533 | ] 534 | 535 | [[package]] 536 | name = "idna" 537 | version = "0.5.0" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 540 | dependencies = [ 541 | "unicode-bidi", 542 | "unicode-normalization", 543 | ] 544 | 545 | [[package]] 546 | name = "indexmap" 547 | version = "2.2.6" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 550 | dependencies = [ 551 | "equivalent", 552 | "hashbrown", 553 | ] 554 | 555 | [[package]] 556 | name = "ipnet" 557 | version = "2.9.0" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 560 | 561 | [[package]] 562 | name = "is_terminal_polyfill" 563 | version = "1.70.0" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" 566 | 567 | [[package]] 568 | name = "itoa" 569 | version = "1.0.11" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 572 | 573 | [[package]] 574 | name = "js-sys" 575 | version = "0.3.69" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 578 | dependencies = [ 579 | "wasm-bindgen", 580 | ] 581 | 582 | [[package]] 583 | name = "lazy_static" 584 | version = "1.5.0" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 587 | 588 | [[package]] 589 | name = "libc" 590 | version = "0.2.155" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" 593 | 594 | [[package]] 595 | name = "linux-raw-sys" 596 | version = "0.4.14" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 599 | 600 | [[package]] 601 | name = "log" 602 | version = "0.4.22" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 605 | 606 | [[package]] 607 | name = "memchr" 608 | version = "2.7.4" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 611 | 612 | [[package]] 613 | name = "mime" 614 | version = "0.3.17" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 617 | 618 | [[package]] 619 | name = "miniz_oxide" 620 | version = "0.7.4" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" 623 | dependencies = [ 624 | "adler", 625 | ] 626 | 627 | [[package]] 628 | name = "mio" 629 | version = "0.8.11" 630 | source = "registry+https://github.com/rust-lang/crates.io-index" 631 | checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 632 | dependencies = [ 633 | "libc", 634 | "wasi", 635 | "windows-sys 0.48.0", 636 | ] 637 | 638 | [[package]] 639 | name = "native-tls" 640 | version = "0.2.12" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" 643 | dependencies = [ 644 | "libc", 645 | "log", 646 | "openssl", 647 | "openssl-probe", 648 | "openssl-sys", 649 | "schannel", 650 | "security-framework", 651 | "security-framework-sys", 652 | "tempfile", 653 | ] 654 | 655 | [[package]] 656 | name = "object" 657 | version = "0.36.1" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" 660 | dependencies = [ 661 | "memchr", 662 | ] 663 | 664 | [[package]] 665 | name = "once_cell" 666 | version = "1.19.0" 667 | source = "registry+https://github.com/rust-lang/crates.io-index" 668 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 669 | 670 | [[package]] 671 | name = "openssl" 672 | version = "0.10.64" 673 | source = "registry+https://github.com/rust-lang/crates.io-index" 674 | checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" 675 | dependencies = [ 676 | "bitflags 2.6.0", 677 | "cfg-if", 678 | "foreign-types", 679 | "libc", 680 | "once_cell", 681 | "openssl-macros", 682 | "openssl-sys", 683 | ] 684 | 685 | [[package]] 686 | name = "openssl-macros" 687 | version = "0.1.1" 688 | source = "registry+https://github.com/rust-lang/crates.io-index" 689 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 690 | dependencies = [ 691 | "proc-macro2", 692 | "quote", 693 | "syn 2.0.69", 694 | ] 695 | 696 | [[package]] 697 | name = "openssl-probe" 698 | version = "0.1.5" 699 | source = "registry+https://github.com/rust-lang/crates.io-index" 700 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 701 | 702 | [[package]] 703 | name = "openssl-sys" 704 | version = "0.9.102" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" 707 | dependencies = [ 708 | "cc", 709 | "libc", 710 | "pkg-config", 711 | "vcpkg", 712 | ] 713 | 714 | [[package]] 715 | name = "paga-nois" 716 | version = "0.1.0" 717 | dependencies = [ 718 | "ansi_term", 719 | "clap", 720 | "cli-table", 721 | "colored", 722 | "reqwest", 723 | "serde", 724 | "serde_json", 725 | ] 726 | 727 | [[package]] 728 | name = "percent-encoding" 729 | version = "2.3.1" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 732 | 733 | [[package]] 734 | name = "pin-project" 735 | version = "1.1.5" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" 738 | dependencies = [ 739 | "pin-project-internal", 740 | ] 741 | 742 | [[package]] 743 | name = "pin-project-internal" 744 | version = "1.1.5" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" 747 | dependencies = [ 748 | "proc-macro2", 749 | "quote", 750 | "syn 2.0.69", 751 | ] 752 | 753 | [[package]] 754 | name = "pin-project-lite" 755 | version = "0.2.14" 756 | source = "registry+https://github.com/rust-lang/crates.io-index" 757 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 758 | 759 | [[package]] 760 | name = "pin-utils" 761 | version = "0.1.0" 762 | source = "registry+https://github.com/rust-lang/crates.io-index" 763 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 764 | 765 | [[package]] 766 | name = "pkg-config" 767 | version = "0.3.30" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 770 | 771 | [[package]] 772 | name = "proc-macro2" 773 | version = "1.0.86" 774 | source = "registry+https://github.com/rust-lang/crates.io-index" 775 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 776 | dependencies = [ 777 | "unicode-ident", 778 | ] 779 | 780 | [[package]] 781 | name = "quote" 782 | version = "1.0.36" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 785 | dependencies = [ 786 | "proc-macro2", 787 | ] 788 | 789 | [[package]] 790 | name = "reqwest" 791 | version = "0.12.5" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" 794 | dependencies = [ 795 | "base64", 796 | "bytes", 797 | "encoding_rs", 798 | "futures-channel", 799 | "futures-core", 800 | "futures-util", 801 | "h2", 802 | "http", 803 | "http-body", 804 | "http-body-util", 805 | "hyper", 806 | "hyper-rustls", 807 | "hyper-tls", 808 | "hyper-util", 809 | "ipnet", 810 | "js-sys", 811 | "log", 812 | "mime", 813 | "native-tls", 814 | "once_cell", 815 | "percent-encoding", 816 | "pin-project-lite", 817 | "rustls-pemfile", 818 | "serde", 819 | "serde_json", 820 | "serde_urlencoded", 821 | "sync_wrapper", 822 | "system-configuration", 823 | "tokio", 824 | "tokio-native-tls", 825 | "tower-service", 826 | "url", 827 | "wasm-bindgen", 828 | "wasm-bindgen-futures", 829 | "web-sys", 830 | "winreg", 831 | ] 832 | 833 | [[package]] 834 | name = "ring" 835 | version = "0.17.8" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 838 | dependencies = [ 839 | "cc", 840 | "cfg-if", 841 | "getrandom", 842 | "libc", 843 | "spin", 844 | "untrusted", 845 | "windows-sys 0.52.0", 846 | ] 847 | 848 | [[package]] 849 | name = "rustc-demangle" 850 | version = "0.1.24" 851 | source = "registry+https://github.com/rust-lang/crates.io-index" 852 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 853 | 854 | [[package]] 855 | name = "rustix" 856 | version = "0.38.34" 857 | source = "registry+https://github.com/rust-lang/crates.io-index" 858 | checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" 859 | dependencies = [ 860 | "bitflags 2.6.0", 861 | "errno", 862 | "libc", 863 | "linux-raw-sys", 864 | "windows-sys 0.52.0", 865 | ] 866 | 867 | [[package]] 868 | name = "rustls" 869 | version = "0.23.10" 870 | source = "registry+https://github.com/rust-lang/crates.io-index" 871 | checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" 872 | dependencies = [ 873 | "once_cell", 874 | "rustls-pki-types", 875 | "rustls-webpki", 876 | "subtle", 877 | "zeroize", 878 | ] 879 | 880 | [[package]] 881 | name = "rustls-pemfile" 882 | version = "2.1.2" 883 | source = "registry+https://github.com/rust-lang/crates.io-index" 884 | checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" 885 | dependencies = [ 886 | "base64", 887 | "rustls-pki-types", 888 | ] 889 | 890 | [[package]] 891 | name = "rustls-pki-types" 892 | version = "1.7.0" 893 | source = "registry+https://github.com/rust-lang/crates.io-index" 894 | checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" 895 | 896 | [[package]] 897 | name = "rustls-webpki" 898 | version = "0.102.5" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" 901 | dependencies = [ 902 | "ring", 903 | "rustls-pki-types", 904 | "untrusted", 905 | ] 906 | 907 | [[package]] 908 | name = "ryu" 909 | version = "1.0.18" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 912 | 913 | [[package]] 914 | name = "schannel" 915 | version = "0.1.23" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 918 | dependencies = [ 919 | "windows-sys 0.52.0", 920 | ] 921 | 922 | [[package]] 923 | name = "security-framework" 924 | version = "2.11.0" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" 927 | dependencies = [ 928 | "bitflags 2.6.0", 929 | "core-foundation", 930 | "core-foundation-sys", 931 | "libc", 932 | "security-framework-sys", 933 | ] 934 | 935 | [[package]] 936 | name = "security-framework-sys" 937 | version = "2.11.0" 938 | source = "registry+https://github.com/rust-lang/crates.io-index" 939 | checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" 940 | dependencies = [ 941 | "core-foundation-sys", 942 | "libc", 943 | ] 944 | 945 | [[package]] 946 | name = "serde" 947 | version = "1.0.204" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" 950 | dependencies = [ 951 | "serde_derive", 952 | ] 953 | 954 | [[package]] 955 | name = "serde_derive" 956 | version = "1.0.204" 957 | source = "registry+https://github.com/rust-lang/crates.io-index" 958 | checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" 959 | dependencies = [ 960 | "proc-macro2", 961 | "quote", 962 | "syn 2.0.69", 963 | ] 964 | 965 | [[package]] 966 | name = "serde_json" 967 | version = "1.0.120" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" 970 | dependencies = [ 971 | "itoa", 972 | "ryu", 973 | "serde", 974 | ] 975 | 976 | [[package]] 977 | name = "serde_urlencoded" 978 | version = "0.7.1" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 981 | dependencies = [ 982 | "form_urlencoded", 983 | "itoa", 984 | "ryu", 985 | "serde", 986 | ] 987 | 988 | [[package]] 989 | name = "slab" 990 | version = "0.4.9" 991 | source = "registry+https://github.com/rust-lang/crates.io-index" 992 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 993 | dependencies = [ 994 | "autocfg", 995 | ] 996 | 997 | [[package]] 998 | name = "smallvec" 999 | version = "1.13.2" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1002 | 1003 | [[package]] 1004 | name = "socket2" 1005 | version = "0.5.7" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 1008 | dependencies = [ 1009 | "libc", 1010 | "windows-sys 0.52.0", 1011 | ] 1012 | 1013 | [[package]] 1014 | name = "spin" 1015 | version = "0.9.8" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1018 | 1019 | [[package]] 1020 | name = "strsim" 1021 | version = "0.11.1" 1022 | source = "registry+https://github.com/rust-lang/crates.io-index" 1023 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1024 | 1025 | [[package]] 1026 | name = "subtle" 1027 | version = "2.6.1" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1030 | 1031 | [[package]] 1032 | name = "syn" 1033 | version = "1.0.109" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1036 | dependencies = [ 1037 | "proc-macro2", 1038 | "quote", 1039 | "unicode-ident", 1040 | ] 1041 | 1042 | [[package]] 1043 | name = "syn" 1044 | version = "2.0.69" 1045 | source = "registry+https://github.com/rust-lang/crates.io-index" 1046 | checksum = "201fcda3845c23e8212cd466bfebf0bd20694490fc0356ae8e428e0824a915a6" 1047 | dependencies = [ 1048 | "proc-macro2", 1049 | "quote", 1050 | "unicode-ident", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "sync_wrapper" 1055 | version = "1.0.1" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" 1058 | 1059 | [[package]] 1060 | name = "system-configuration" 1061 | version = "0.5.1" 1062 | source = "registry+https://github.com/rust-lang/crates.io-index" 1063 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 1064 | dependencies = [ 1065 | "bitflags 1.3.2", 1066 | "core-foundation", 1067 | "system-configuration-sys", 1068 | ] 1069 | 1070 | [[package]] 1071 | name = "system-configuration-sys" 1072 | version = "0.5.0" 1073 | source = "registry+https://github.com/rust-lang/crates.io-index" 1074 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 1075 | dependencies = [ 1076 | "core-foundation-sys", 1077 | "libc", 1078 | ] 1079 | 1080 | [[package]] 1081 | name = "tempfile" 1082 | version = "3.10.1" 1083 | source = "registry+https://github.com/rust-lang/crates.io-index" 1084 | checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" 1085 | dependencies = [ 1086 | "cfg-if", 1087 | "fastrand", 1088 | "rustix", 1089 | "windows-sys 0.52.0", 1090 | ] 1091 | 1092 | [[package]] 1093 | name = "termcolor" 1094 | version = "1.4.1" 1095 | source = "registry+https://github.com/rust-lang/crates.io-index" 1096 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 1097 | dependencies = [ 1098 | "winapi-util", 1099 | ] 1100 | 1101 | [[package]] 1102 | name = "tinyvec" 1103 | version = "1.8.0" 1104 | source = "registry+https://github.com/rust-lang/crates.io-index" 1105 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1106 | dependencies = [ 1107 | "tinyvec_macros", 1108 | ] 1109 | 1110 | [[package]] 1111 | name = "tinyvec_macros" 1112 | version = "0.1.1" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1115 | 1116 | [[package]] 1117 | name = "tokio" 1118 | version = "1.38.0" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" 1121 | dependencies = [ 1122 | "backtrace", 1123 | "bytes", 1124 | "libc", 1125 | "mio", 1126 | "pin-project-lite", 1127 | "socket2", 1128 | "windows-sys 0.48.0", 1129 | ] 1130 | 1131 | [[package]] 1132 | name = "tokio-native-tls" 1133 | version = "0.3.1" 1134 | source = "registry+https://github.com/rust-lang/crates.io-index" 1135 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 1136 | dependencies = [ 1137 | "native-tls", 1138 | "tokio", 1139 | ] 1140 | 1141 | [[package]] 1142 | name = "tokio-rustls" 1143 | version = "0.26.0" 1144 | source = "registry+https://github.com/rust-lang/crates.io-index" 1145 | checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" 1146 | dependencies = [ 1147 | "rustls", 1148 | "rustls-pki-types", 1149 | "tokio", 1150 | ] 1151 | 1152 | [[package]] 1153 | name = "tokio-util" 1154 | version = "0.7.11" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" 1157 | dependencies = [ 1158 | "bytes", 1159 | "futures-core", 1160 | "futures-sink", 1161 | "pin-project-lite", 1162 | "tokio", 1163 | ] 1164 | 1165 | [[package]] 1166 | name = "tower" 1167 | version = "0.4.13" 1168 | source = "registry+https://github.com/rust-lang/crates.io-index" 1169 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 1170 | dependencies = [ 1171 | "futures-core", 1172 | "futures-util", 1173 | "pin-project", 1174 | "pin-project-lite", 1175 | "tokio", 1176 | "tower-layer", 1177 | "tower-service", 1178 | ] 1179 | 1180 | [[package]] 1181 | name = "tower-layer" 1182 | version = "0.3.2" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 1185 | 1186 | [[package]] 1187 | name = "tower-service" 1188 | version = "0.3.2" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1191 | 1192 | [[package]] 1193 | name = "tracing" 1194 | version = "0.1.40" 1195 | source = "registry+https://github.com/rust-lang/crates.io-index" 1196 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1197 | dependencies = [ 1198 | "pin-project-lite", 1199 | "tracing-core", 1200 | ] 1201 | 1202 | [[package]] 1203 | name = "tracing-core" 1204 | version = "0.1.32" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1207 | dependencies = [ 1208 | "once_cell", 1209 | ] 1210 | 1211 | [[package]] 1212 | name = "try-lock" 1213 | version = "0.2.5" 1214 | source = "registry+https://github.com/rust-lang/crates.io-index" 1215 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1216 | 1217 | [[package]] 1218 | name = "unicode-bidi" 1219 | version = "0.3.15" 1220 | source = "registry+https://github.com/rust-lang/crates.io-index" 1221 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 1222 | 1223 | [[package]] 1224 | name = "unicode-ident" 1225 | version = "1.0.12" 1226 | source = "registry+https://github.com/rust-lang/crates.io-index" 1227 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1228 | 1229 | [[package]] 1230 | name = "unicode-normalization" 1231 | version = "0.1.23" 1232 | source = "registry+https://github.com/rust-lang/crates.io-index" 1233 | checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" 1234 | dependencies = [ 1235 | "tinyvec", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "unicode-width" 1240 | version = "0.1.13" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" 1243 | 1244 | [[package]] 1245 | name = "untrusted" 1246 | version = "0.9.0" 1247 | source = "registry+https://github.com/rust-lang/crates.io-index" 1248 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1249 | 1250 | [[package]] 1251 | name = "url" 1252 | version = "2.5.2" 1253 | source = "registry+https://github.com/rust-lang/crates.io-index" 1254 | checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 1255 | dependencies = [ 1256 | "form_urlencoded", 1257 | "idna", 1258 | "percent-encoding", 1259 | ] 1260 | 1261 | [[package]] 1262 | name = "utf8parse" 1263 | version = "0.2.2" 1264 | source = "registry+https://github.com/rust-lang/crates.io-index" 1265 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 1266 | 1267 | [[package]] 1268 | name = "vcpkg" 1269 | version = "0.2.15" 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" 1271 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1272 | 1273 | [[package]] 1274 | name = "want" 1275 | version = "0.3.1" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1278 | dependencies = [ 1279 | "try-lock", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "wasi" 1284 | version = "0.11.0+wasi-snapshot-preview1" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1287 | 1288 | [[package]] 1289 | name = "wasm-bindgen" 1290 | version = "0.2.92" 1291 | source = "registry+https://github.com/rust-lang/crates.io-index" 1292 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 1293 | dependencies = [ 1294 | "cfg-if", 1295 | "wasm-bindgen-macro", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "wasm-bindgen-backend" 1300 | version = "0.2.92" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 1303 | dependencies = [ 1304 | "bumpalo", 1305 | "log", 1306 | "once_cell", 1307 | "proc-macro2", 1308 | "quote", 1309 | "syn 2.0.69", 1310 | "wasm-bindgen-shared", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "wasm-bindgen-futures" 1315 | version = "0.4.42" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" 1318 | dependencies = [ 1319 | "cfg-if", 1320 | "js-sys", 1321 | "wasm-bindgen", 1322 | "web-sys", 1323 | ] 1324 | 1325 | [[package]] 1326 | name = "wasm-bindgen-macro" 1327 | version = "0.2.92" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 1330 | dependencies = [ 1331 | "quote", 1332 | "wasm-bindgen-macro-support", 1333 | ] 1334 | 1335 | [[package]] 1336 | name = "wasm-bindgen-macro-support" 1337 | version = "0.2.92" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 1340 | dependencies = [ 1341 | "proc-macro2", 1342 | "quote", 1343 | "syn 2.0.69", 1344 | "wasm-bindgen-backend", 1345 | "wasm-bindgen-shared", 1346 | ] 1347 | 1348 | [[package]] 1349 | name = "wasm-bindgen-shared" 1350 | version = "0.2.92" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 1353 | 1354 | [[package]] 1355 | name = "web-sys" 1356 | version = "0.3.69" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 1359 | dependencies = [ 1360 | "js-sys", 1361 | "wasm-bindgen", 1362 | ] 1363 | 1364 | [[package]] 1365 | name = "winapi" 1366 | version = "0.3.9" 1367 | source = "registry+https://github.com/rust-lang/crates.io-index" 1368 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1369 | dependencies = [ 1370 | "winapi-i686-pc-windows-gnu", 1371 | "winapi-x86_64-pc-windows-gnu", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "winapi-i686-pc-windows-gnu" 1376 | version = "0.4.0" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1379 | 1380 | [[package]] 1381 | name = "winapi-util" 1382 | version = "0.1.8" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" 1385 | dependencies = [ 1386 | "windows-sys 0.52.0", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "winapi-x86_64-pc-windows-gnu" 1391 | version = "0.4.0" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1394 | 1395 | [[package]] 1396 | name = "windows-sys" 1397 | version = "0.48.0" 1398 | source = "registry+https://github.com/rust-lang/crates.io-index" 1399 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1400 | dependencies = [ 1401 | "windows-targets 0.48.5", 1402 | ] 1403 | 1404 | [[package]] 1405 | name = "windows-sys" 1406 | version = "0.52.0" 1407 | source = "registry+https://github.com/rust-lang/crates.io-index" 1408 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1409 | dependencies = [ 1410 | "windows-targets 0.52.6", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "windows-targets" 1415 | version = "0.48.5" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1418 | dependencies = [ 1419 | "windows_aarch64_gnullvm 0.48.5", 1420 | "windows_aarch64_msvc 0.48.5", 1421 | "windows_i686_gnu 0.48.5", 1422 | "windows_i686_msvc 0.48.5", 1423 | "windows_x86_64_gnu 0.48.5", 1424 | "windows_x86_64_gnullvm 0.48.5", 1425 | "windows_x86_64_msvc 0.48.5", 1426 | ] 1427 | 1428 | [[package]] 1429 | name = "windows-targets" 1430 | version = "0.52.6" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1433 | dependencies = [ 1434 | "windows_aarch64_gnullvm 0.52.6", 1435 | "windows_aarch64_msvc 0.52.6", 1436 | "windows_i686_gnu 0.52.6", 1437 | "windows_i686_gnullvm", 1438 | "windows_i686_msvc 0.52.6", 1439 | "windows_x86_64_gnu 0.52.6", 1440 | "windows_x86_64_gnullvm 0.52.6", 1441 | "windows_x86_64_msvc 0.52.6", 1442 | ] 1443 | 1444 | [[package]] 1445 | name = "windows_aarch64_gnullvm" 1446 | version = "0.48.5" 1447 | source = "registry+https://github.com/rust-lang/crates.io-index" 1448 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1449 | 1450 | [[package]] 1451 | name = "windows_aarch64_gnullvm" 1452 | version = "0.52.6" 1453 | source = "registry+https://github.com/rust-lang/crates.io-index" 1454 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1455 | 1456 | [[package]] 1457 | name = "windows_aarch64_msvc" 1458 | version = "0.48.5" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1461 | 1462 | [[package]] 1463 | name = "windows_aarch64_msvc" 1464 | version = "0.52.6" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1467 | 1468 | [[package]] 1469 | name = "windows_i686_gnu" 1470 | version = "0.48.5" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1473 | 1474 | [[package]] 1475 | name = "windows_i686_gnu" 1476 | version = "0.52.6" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1479 | 1480 | [[package]] 1481 | name = "windows_i686_gnullvm" 1482 | version = "0.52.6" 1483 | source = "registry+https://github.com/rust-lang/crates.io-index" 1484 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1485 | 1486 | [[package]] 1487 | name = "windows_i686_msvc" 1488 | version = "0.48.5" 1489 | source = "registry+https://github.com/rust-lang/crates.io-index" 1490 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1491 | 1492 | [[package]] 1493 | name = "windows_i686_msvc" 1494 | version = "0.52.6" 1495 | source = "registry+https://github.com/rust-lang/crates.io-index" 1496 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1497 | 1498 | [[package]] 1499 | name = "windows_x86_64_gnu" 1500 | version = "0.48.5" 1501 | source = "registry+https://github.com/rust-lang/crates.io-index" 1502 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1503 | 1504 | [[package]] 1505 | name = "windows_x86_64_gnu" 1506 | version = "0.52.6" 1507 | source = "registry+https://github.com/rust-lang/crates.io-index" 1508 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1509 | 1510 | [[package]] 1511 | name = "windows_x86_64_gnullvm" 1512 | version = "0.48.5" 1513 | source = "registry+https://github.com/rust-lang/crates.io-index" 1514 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1515 | 1516 | [[package]] 1517 | name = "windows_x86_64_gnullvm" 1518 | version = "0.52.6" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1521 | 1522 | [[package]] 1523 | name = "windows_x86_64_msvc" 1524 | version = "0.48.5" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1527 | 1528 | [[package]] 1529 | name = "windows_x86_64_msvc" 1530 | version = "0.52.6" 1531 | source = "registry+https://github.com/rust-lang/crates.io-index" 1532 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1533 | 1534 | [[package]] 1535 | name = "winreg" 1536 | version = "0.52.0" 1537 | source = "registry+https://github.com/rust-lang/crates.io-index" 1538 | checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" 1539 | dependencies = [ 1540 | "cfg-if", 1541 | "windows-sys 0.48.0", 1542 | ] 1543 | 1544 | [[package]] 1545 | name = "zeroize" 1546 | version = "1.8.1" 1547 | source = "registry+https://github.com/rust-lang/crates.io-index" 1548 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 1549 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "paga-nois" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | clap = { version = "4.5.8", features = ["derive"] } 8 | cli-table = "0.4.9" 9 | colored = "2.1.0" 10 | reqwest = { version = "0.12.5", features = ["blocking", "json"] } 11 | serde = { version = "1.0.204", features = ["derive"] } 12 | serde_json = "1.0.120" 13 | ansi_term = "0.12" 14 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # PagaNois CLI 2 | 3 | ![PagaNois CLI](./.github/app.png) 4 | 5 | A tool that converts my salary based in the spread percentages made by [Husky.io (PagaNois)](https://husky.io/). 6 | 7 | ## Development 8 | 9 | The goal is having the same features for the Ubuntu/Debian notifications also any terminal of your choice. 10 | 11 | * [ ] Ubuntu/Debian notifications 12 | * [x] Terminal output 13 | 14 | ## Installation 15 | 16 | Clone the repository and install the dependencies: 17 | ```bash 18 | git clone git@github.com:DanielHe4rt/paganois-cli-rs.git 19 | cd paganois-cli-rs 20 | cargo build --release 21 | ``` 22 | 23 | ## Usage 24 | 25 | TODO: Add usage instructions 26 | 27 | ```bash 28 | ./target/release/paga-nois --help 29 | ``` 30 | 31 | ## License 32 | 33 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. 34 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use ansi_term::Colour; 2 | use clap::Parser; 3 | use cli_table::format::Justify; 4 | use cli_table::{Cell, Style, Table}; 5 | use colored::Colorize; 6 | use serde::{Deserialize, Serialize}; 7 | 8 | const CURRENCY_API_URL: &str = "https://economia.awesomeapi.com.br/json/last/USD"; 9 | 10 | const ASCII_LOGO: &str = r" 11 | + * 12 | +++++ ***** 13 | ++++++++******** 14 | ++++++*###******* /$$$$$$$ /$$ /$$ /$$ /$$ 15 | +++++*%%%%%##****** | $$__ $$ | $$$ | $$ |__/ |__/ 16 | ++++*%%%%%%%%%##**** | $$ \ $$ /$$$$$$ /$$$$$$ /$$$$$$ | $$$$| $$ /$$$$$$ /$$ /$$$$$$$ /$$ /$$$$$$ 17 | ++*%%%%%%%%%%%%%##*** | $$$$$$$/ |____ $$ /$$__ $$ |____ $$| $$ $$ $$ /$$__ $$| $$ /$$_____/ | $$ /$$__ $$ 18 | +*%%%%%%%%%%%%%%%%%##* | $$____/ /$$$$$$$| $$ \ $$ /$$$$$$$| $$ $$$$| $$ \ $$| $$| $$$$$$ | $$| $$ \ $$ 19 | %%%%%%%%%%%%%%%%%%%## | $$ /$$__ $$| $$ | $$ /$$__ $$| $$\ $$$| $$ | $$| $$ \____ $$ | $$| $$ | $$ 20 | %%%%%%%%%%%%%%%%% | $$ | $$$$$$$| $$$$$$$| $$$$$$$| $$ \ $$| $$$$$$/| $$ /$$$$$$$/ /$$| $$| $$$$$$/ 21 | %%%%%%%%%%%% |__/ \_______/ \____ $$ \_______/|__/ \__/ \______/ |__/|_______/ |__/|__/ \______/ 22 | %%%%%% /$$ \ $$ 23 | | $$$$$$/ ---------------- PagaNoisCLI ---------------- 24 | \______/ --------------- by: danielhe4rt --------------- 25 | "; 26 | 27 | #[derive(Parser, Debug)] 28 | enum Mode { 29 | Terminal, 30 | Push, 31 | } 32 | 33 | #[derive(Parser, Debug)] 34 | #[command(version, about, long_about = None)] 35 | struct Args { 36 | /// Name of the person to greet 37 | #[command(subcommand)] 38 | mode: Mode, 39 | 40 | /// Your current salary 41 | #[arg(short, long, default_value_t = 5000)] 42 | salary: u16, 43 | 44 | #[arg(short, long, default_value_t = 5.505)] 45 | last_bid: f64, 46 | } 47 | 48 | #[derive(Serialize, Deserialize, Debug)] 49 | struct ExchangeRate { 50 | code: String, 51 | #[serde(rename = "codein")] 52 | code_in: String, 53 | name: String, 54 | high: String, 55 | low: String, 56 | #[serde(rename = "varBid")] 57 | var_bid: String, 58 | #[serde(rename = "pctChange")] 59 | pct_change: String, 60 | bid: String, 61 | ask: String, 62 | timestamp: String, 63 | create_date: String, 64 | } 65 | 66 | #[derive(Serialize, Deserialize, Debug)] 67 | struct ExchangeRates { 68 | #[serde(rename = "USDBRL")] 69 | usd_brl: ExchangeRate, 70 | } 71 | 72 | fn display_logo() { 73 | let lines: Vec = ASCII_LOGO.lines().map(|s| s.to_string()).collect(); 74 | let num_lines = lines.len(); 75 | 76 | // Define the gradient colors based on the logo 77 | let start_color = (203, 43, 125); // Dark purple 78 | let mid_color = (243, 63, 113); // Pink 79 | let end_color = (254, 85, 53); // Red-orange 80 | 81 | for (i, line) in lines.iter().enumerate() { 82 | let ratio = i as f32 / (num_lines - 1) as f32; 83 | 84 | let (r, g, b) = if ratio < 0.5 { 85 | let ratio = ratio * 2.0; 86 | ( 87 | (start_color.0 as f32 * (1.0 - ratio) + mid_color.0 as f32 * ratio).round() as u8, 88 | (start_color.1 as f32 * (1.0 - ratio) + mid_color.1 as f32 * ratio).round() as u8, 89 | (start_color.2 as f32 * (1.0 - ratio) + mid_color.2 as f32 * ratio).round() as u8, 90 | ) 91 | } else { 92 | let ratio = (ratio - 0.5) * 2.0; 93 | ( 94 | (mid_color.0 as f32 * (1.0 - ratio) + end_color.0 as f32 * ratio).round() as u8, 95 | (mid_color.1 as f32 * (1.0 - ratio) + end_color.1 as f32 * ratio).round() as u8, 96 | (mid_color.2 as f32 * (1.0 - ratio) + end_color.2 as f32 * ratio).round() as u8, 97 | ) 98 | }; 99 | 100 | let color = Colour::RGB(r, g, b); 101 | println!("{}", color.paint(line)); 102 | } 103 | } 104 | 105 | fn main() { 106 | let args = Args::parse(); 107 | 108 | // TODO: Implement mode selection 109 | // match args.mode { 110 | // Mode::Terminal => { 111 | // println!("Terminal mode"); 112 | // } 113 | // Mode::Push => { 114 | // println!("Push mode"); 115 | // } 116 | // } 117 | 118 | let response = reqwest::blocking::get(CURRENCY_API_URL).unwrap(); 119 | let exchange_rates: ExchangeRates = response.json().unwrap(); 120 | 121 | let final_salary = args.salary as f64 * exchange_rates.usd_brl.bid.parse::().unwrap(); 122 | let previous_salary = args.salary as f64 * args.last_bid; 123 | 124 | let final_less_one_percent = final_salary * 0.99; 125 | let final_less_half_percent = final_salary * 0.995; 126 | let salary_diff = final_salary - previous_salary; 127 | 128 | let table = vec![vec![ 129 | format!("R$ {:.2}", final_salary) 130 | .cell() 131 | .justify(Justify::Center), 132 | format!("R$ {:.2}", args.last_bid) 133 | .cell() 134 | .justify(Justify::Center), 135 | format!( 136 | "R$ {:.2}", 137 | exchange_rates.usd_brl.bid.parse::().unwrap() 138 | ) 139 | .cell() 140 | .justify(Justify::Center), 141 | format!("R$ {:.2}", previous_salary) 142 | .cell() 143 | .justify(Justify::Center), 144 | format!("R$ {:.2}", final_less_half_percent) 145 | .cell() 146 | .justify(Justify::Center), 147 | format!("R$ {:.2}", salary_diff) 148 | .cell() 149 | .justify(Justify::Center), 150 | ]] 151 | .table() 152 | .title(vec![ 153 | "Current Salary".cell().bold(true), 154 | "Last Payment BID".cell().bold(true), 155 | "Current BID".cell().bold(true), 156 | "Previous Salary".cell().bold(true), 157 | "Upcoming Salary".cell().bold(true), 158 | "BID Salary Diff".cell().bold(true), 159 | ]) 160 | .bold(true); 161 | 162 | let husky_table = vec![vec![ 163 | format!("R$ {:.2}", final_salary) 164 | .cell() 165 | .justify(Justify::Center), 166 | format!("R$ {:.2}", final_less_one_percent) 167 | .cell() 168 | .justify(Justify::Center), 169 | format!("R$ {:.2}", final_less_half_percent) 170 | .cell() 171 | .justify(Justify::Center), 172 | format!("R$ {:.2}", final_less_one_percent - final_less_half_percent) 173 | .cell() 174 | .justify(Justify::Center), 175 | ]] 176 | .table() 177 | .title(vec![ 178 | "Current Salary".cell().bold(true), 179 | "With 1% Discount".cell().bold(true), 180 | "With 0.5% Discount".cell().bold(true), 181 | "Discount Diff".cell().bold(true), 182 | ]); 183 | 184 | display_logo(); 185 | println!("{}", "Salary information:".bold()); 186 | println!("{}", table.display().unwrap()); 187 | println!("{}", "Husky information:".bold()); 188 | println!("{}", husky_table.display().unwrap()); 189 | 190 | if salary_diff > 0.0 { 191 | println!("{}", "Status: FAZ O L CARAIO".green()); 192 | } else { 193 | println!("{}", "Status: DESFAÇA O L IMEDIATAMENTE".red()); 194 | } 195 | 196 | println!("\n{}", "Dont forget to drink water!".cyan()); 197 | } 198 | --------------------------------------------------------------------------------