From de2ce4ed316fcd2ec9a98eacd91c234f3b5eba27 Mon Sep 17 00:00:00 2001 From: Musselman Date: Wed, 23 Oct 2024 23:09:10 -0500 Subject: [PATCH] upload diceroller --- .gitignore | 1 + Cargo.lock | 1145 ++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 9 + diceroll.mp3 | Bin 0 -> 65128 bytes src/main.rs | 66 +++ 5 files changed, 1221 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 diceroll.mp3 create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2f7896d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..3527329 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1145 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "alsa" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce" +dependencies = [ + "alsa-sys", + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "alsa-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytemuck" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" + +[[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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" + +[[package]] +name = "cc" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6b81fb3c84f5563d509c59b5a48d935f689e993afa90fe39047f05adef9142" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca6706fd5224857d9ac5eb9355f6683563cc0541c7cd9d014043b57cbec78ac" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "claxon" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688" + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + +[[package]] +name = "coreaudio-sys" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f01585027057ff5f0a5bf276174ae4c1594a2c5bde93d5f46a016d76270f5a9" +dependencies = [ + "bindgen", +] + +[[package]] +name = "cpal" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs", + "dasp_sample", + "jni", + "js-sys", + "libc", + "mach2", + "ndk", + "ndk-context", + "oboe", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows", +] + +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[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 = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hound" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[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.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lewton" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" +dependencies = [ + "byteorder", + "ogg", + "tinyvec", +] + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "mach2" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.6.0", + "jni-sys", + "log", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.5.0+25.2.9519653" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +dependencies = [ + "jni-sys", +] + +[[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-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[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_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "oboe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" +dependencies = [ + "jni", + "ndk", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +dependencies = [ + "cc", +] + +[[package]] +name = "ogg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +dependencies = [ + "byteorder", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +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 = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rodio" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb" +dependencies = [ + "claxon", + "cpal", + "hound", + "lewton", + "symphonia", + "thiserror", +] + +[[package]] +name = "roll" +version = "0.1.0" +dependencies = [ + "clap", + "rand", + "rodio", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "symphonia" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" +dependencies = [ + "lazy_static", + "symphonia-bundle-mp3", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-bundle-mp3" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4" +dependencies = [ + "lazy_static", + "log", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-core" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" +dependencies = [ + "arrayvec", + "bitflags 1.3.2", + "bytemuck", + "lazy_static", + "log", +] + +[[package]] +name = "symphonia-metadata" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" +dependencies = [ + "encoding_rs", + "lazy_static", + "log", + "symphonia-core", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +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 = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[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", + "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", + "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-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[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.6", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..d77d2dc --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "roll" +version = "0.1.0" +edition = "2021" + +[dependencies] +clap = "4.5.10" +rand = "0.8.5" +rodio = "0.19.0" diff --git a/diceroll.mp3 b/diceroll.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f4ed49c05ee274305111e4d81bd2d01027b8a774 GIT binary patch literal 65128 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") + .about("Rolls dice based on the format nDs") + .arg( + Arg::new("dice_notation") + .value_name("DICE") + .help("Sets the dice notation (nDs)") + .required(true), + ) + .get_matches(); + + // Check for the dice_notation argument + let dice_notation = matches + .get_one::("dice_notation") + .unwrap() + .to_uppercase(); + + // Parse the dice notation + let parts: Vec<&str> = dice_notation.split('D').collect(); + if parts.len() != 2 { + eprintln!("Invalid dice notation. Use 'nDs' format."); + process::exit(1); + } + + let num_dice: u32 = parts[0].parse().unwrap_or(1); + let num_sides: u32 = parts[1].parse().unwrap_or(6); + + // Play the diceroll sound + play_dice_roll_sound(); + + // Roll the dice + let mut rng = rand::thread_rng(); + let mut results = vec![]; + + for _ in 0..num_dice { + let roll: u32 = rng.gen_range(1..=num_sides); + results.push(roll); + } + + // Print the results + println!("Rolling {}D{}: {:?}", num_dice, num_sides, results); +} + +// Function to play the dice roll sound +fn play_dice_roll_sound() { + // Embed the MP3 file in the binary + let dice_roll_mp3 = include_bytes!("diceroll.mp3"); + + let (_stream, stream_handle) = OutputStream::try_default().unwrap(); + let sink = Sink::try_new(&stream_handle).unwrap(); + + let cursor = Cursor::new(dice_roll_mp3); + let source = Decoder::new(cursor).unwrap(); + + sink.append(source); + sink.sleep_until_end(); +}