├── .gitignore ├── src ├── constants │ └── mod.rs ├── main.rs ├── cli │ ├── mod.rs │ ├── utils.rs │ └── args.rs ├── lib.rs ├── engine │ ├── mod.rs │ └── utils.rs ├── sounds │ └── mod.rs └── keys │ └── mod.rs ├── README.md ├── Cargo.toml ├── LICENSE └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /src/constants/mod.rs: -------------------------------------------------------------------------------- 1 | pub const DEFAULT_VOLUME: u16 = 100; 2 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | clackit::start(); 3 | } 4 | -------------------------------------------------------------------------------- /src/cli/mod.rs: -------------------------------------------------------------------------------- 1 | use args::Args; 2 | use clap::Parser; 3 | 4 | mod args; 5 | mod utils; 6 | 7 | pub fn parse_args() -> Args { 8 | args::Args::parse() 9 | } 10 | -------------------------------------------------------------------------------- /src/cli/utils.rs: -------------------------------------------------------------------------------- 1 | use lazy_static::lazy_static; 2 | 3 | lazy_static! { 4 | pub static ref HELP_MESSAGES: Vec = vec![ 5 | String::from("Path of the soundpack"), 6 | String::from("Volume to set") 7 | ]; 8 | } 9 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use cli::parse_args; 2 | 3 | mod cli; 4 | mod keys; 5 | mod sounds; 6 | mod constants; 7 | mod engine; 8 | 9 | pub fn start() { 10 | let args = parse_args(); 11 | let soundpack = args.soundpack; 12 | let volume = args.volume.unwrap_or(constants::DEFAULT_VOLUME); 13 | engine::start(soundpack, volume); 14 | } 15 | -------------------------------------------------------------------------------- /src/cli/args.rs: -------------------------------------------------------------------------------- 1 | use clap::Parser; 2 | 3 | use super::utils::HELP_MESSAGES; 4 | 5 | #[derive(Debug, Parser)] 6 | #[clap( 7 | name = "clackit", 8 | version, 9 | about = "A rust cli tool to make a normal keyboard sound like a mechanical keyboard" 10 | )] 11 | 12 | pub struct Args { 13 | #[arg(long, short, help = HELP_MESSAGES[0].as_str())] 14 | pub soundpack: String, 15 | 16 | #[arg(long, short, help = HELP_MESSAGES[1].as_str())] 17 | pub volume: Option 18 | } 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # clackit 2 | 3 | A rust cli tool to make a normal keyboard sound like a mechanical keyboard 4 | 5 | ## Installation 6 | ```bash 7 | cargo install clackit 8 | ``` 9 | 10 | ## Linux 11 | You need To install Advanced Linux Sound Architecture [ ALSA ] 12 | 13 | Ubuntu / debian 14 | ``` 15 | sudo apt-get install alsa-tools 16 | ``` 17 | 18 | Fedora 19 | ``` 20 | sudo dnf install alsa-lib-devel 21 | ``` 22 | 23 | ## Usage 24 | 25 | ``` 26 | clackit -s -v (0-100 | optional) 27 | ``` 28 | ## LICENSE 29 | This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. 30 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "clackit" 3 | description = "A rust cli tool make a normal keyboard to sound like a mechanical keyboard" 4 | version = "0.1.0" 5 | authors = ["Sachin Beniwal "] 6 | readme = "README.md" 7 | keywords = ["keyboard", "mechanical", "cli", "sound"] 8 | license = "MIT" 9 | edition = "2021" 10 | 11 | [lib] 12 | path = "src/lib.rs" 13 | 14 | [[bin]] 15 | path = "src/main.rs" 16 | name = "clackit" 17 | 18 | [dependencies] 19 | clap = { version = "4.5.11", features = ["derive"] } 20 | flume = "0.11.0" 21 | lazy_static = "1.5.0" 22 | libc = "0.2.155" 23 | once_cell = "1.19.0" 24 | rdev = "0.5.3" 25 | rodio_wav_fix = "0.15.0" 26 | serde_json = "1.0.120" 27 | -------------------------------------------------------------------------------- /src/engine/mod.rs: -------------------------------------------------------------------------------- 1 | use rdev::{listen, Event}; 2 | use utils::File; 3 | 4 | mod utils; 5 | 6 | pub fn start(soundpack: String, vol: u16) { 7 | 8 | { 9 | #[cfg(any(target_os = "macos", target_os = "linux"))] 10 | unsafe { 11 | use libc::nice; 12 | if nice(-20) != 0 { 13 | eprintln!("Failed to set process priority"); 14 | } else { 15 | println!("Process priority set successfully."); 16 | } 17 | }; 18 | } 19 | 20 | let mut file = File { content: None }; 21 | file.initialize(soundpack.clone()); 22 | 23 | let event_handler = move |event: Event| { 24 | file.event_handler(event, soundpack.clone(), vol); 25 | }; 26 | 27 | if let Err(err) = listen(event_handler) { 28 | println!("Error: {:?}", err); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 clackit 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/sounds/mod.rs: -------------------------------------------------------------------------------- 1 | use flume::{Receiver, Sender}; 2 | use once_cell::sync::Lazy; 3 | use rodio_wav_fix::{source::Buffered, Decoder, OutputStream, Sink, Source}; 4 | use std::{collections::HashMap, fs::File, io::BufReader, sync::Mutex, thread, time::Duration}; 5 | 6 | type SoundSource = Buffered>>; 7 | 8 | static GLOBAL_DATA: Lazy>> = Lazy::new(|| Mutex::new(HashMap::new())); 9 | static WORKER_CHANNEL: Lazy>> = Lazy::new(|| Mutex::new(new_worker())); 10 | 11 | fn new_worker() -> Sender { 12 | let (sender, receiver) = flume::unbounded(); 13 | thread::spawn(move || worker(receiver)); 14 | sender 15 | } 16 | 17 | pub fn play_sound(soundpack: String, vol: u16) { 18 | let mut sender = WORKER_CHANNEL.lock().unwrap(); 19 | if sender.is_disconnected() { 20 | *sender = new_worker(); 21 | } 22 | sender.send(format!("{}|{}", soundpack, vol)).expect("Couldn't send name to threadpool"); 23 | } 24 | 25 | pub fn worker(receiver: Receiver) { 26 | match OutputStream::try_default() { 27 | Ok((_, stream_handle)) => { 28 | while let Ok(raw) = receiver.recv_timeout(Duration::from_secs(20)) { 29 | let data: Vec<&str> = raw.split("|").collect(); 30 | let name = data[0].to_string(); 31 | let volume = data[1].parse::().expect("Cannot parse volume"); 32 | let file_name = name.clone(); 33 | let source = { 34 | let mut sound_map = GLOBAL_DATA.lock().unwrap(); 35 | sound_map 36 | .entry(name.clone()) 37 | .or_insert_with(|| { 38 | let file = BufReader::new(File::open(&file_name[..]).unwrap()); 39 | Decoder::new(file).unwrap().buffered() 40 | }) 41 | .clone() 42 | }; 43 | let sink = Sink::try_new(&stream_handle).unwrap(); 44 | let vol = volume as f32 / 100.0; 45 | sink.set_volume(vol); 46 | sink.append(source); 47 | sink.detach(); 48 | } 49 | }, 50 | Err(e) => { 51 | eprintln!("Failed to get default output stream: {:?}", e); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/engine/utils.rs: -------------------------------------------------------------------------------- 1 | use std::{collections::HashSet, error::Error, fs, sync::Mutex}; 2 | use once_cell::sync::Lazy; 3 | use rdev::{Event, EventType}; 4 | use serde_json::{Map, Value}; 5 | use std::string::String; 6 | use crate::{keys, sounds}; 7 | 8 | static KEY_DEPRESSED: Lazy>> = Lazy::new(|| Mutex::new(HashSet::new())); 9 | 10 | pub struct File { 11 | pub content: Option>, 12 | } 13 | 14 | impl File { 15 | pub fn initialize(&mut self, soundpack: String) { 16 | let soundpack_config = &format!("{}/config.json", soundpack)[..]; 17 | self.content = Some(initialize_json(soundpack_config).unwrap()); 18 | } 19 | 20 | pub fn event_handler(&self, event: Event, soundpack: String, vol: u16) { 21 | match &self.content { 22 | Some(value) => { 23 | callback(event, value.clone(), soundpack, vol); 24 | }, 25 | None => { 26 | println!("JSON wasn't initialized"); 27 | } 28 | } 29 | } 30 | } 31 | 32 | fn initialize_json(path: &str) -> Result, Box> { 33 | let config = fs::read_to_string(path)?; 34 | let parsed: Value = serde_json::from_str(&config)?; 35 | let obj = parsed.as_object().unwrap().clone(); 36 | Ok(obj) 37 | } 38 | 39 | fn callback(event: Event, json_file: Map ,soundpack: String, vol: u16) { 40 | match event.event_type { 41 | EventType::KeyPress(key) => { 42 | let key_code = keys::code_from_key(key); 43 | let key_down = KEY_DEPRESSED.lock().expect("Can't open key_depressed set").insert(key_code.unwrap_or(0)); 44 | if key_down { 45 | let mut dest = match key_code { 46 | Some(code) => json_file["defines"][&code.to_string()].to_string(), 47 | None => { 48 | println!("Unmapped key: {:?}", key); 49 | let default_key = 30; 50 | json_file["defines"][&default_key.to_string()].to_string() 51 | } 52 | }; 53 | dest.remove(0); 54 | dest.remove(dest.len()-1); 55 | sounds::play_sound(format!("{}/{}", soundpack, dest), vol); 56 | } 57 | } 58 | EventType::KeyRelease(key) => { 59 | let key_code = keys::code_from_key(key); 60 | KEY_DEPRESSED.lock().expect("Can't open key_depressed set for removal").remove(&key_code.unwrap_or(0)); 61 | } 62 | _ => () 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/keys/mod.rs: -------------------------------------------------------------------------------- 1 | use rdev::Key; 2 | 3 | const ALT: i32 = 56; 4 | const ALT_GR: i32 = 3640; 5 | const BACKSPACE: i32 = 14; 6 | const CAPS_LOCK: i32 = 58; 7 | const CONTROL_LEFT: i32 = 29; 8 | const DOWN_ARROW: i32 = 57424; 9 | const ESCAPE: i32 = 1; 10 | const F1: i32 = 59; 11 | const F10: i32 = 68; 12 | const F11: i32 = 87; 13 | const F12: i32 = 88; 14 | const F2: i32 = 60; 15 | const F3: i32 = 61; 16 | const F4: i32 = 62; 17 | const F5: i32 = 63; 18 | const F6: i32 = 64; 19 | const F7: i32 = 65; 20 | const F8: i32 = 66; 21 | const F9: i32 = 67; 22 | const FUNCTION: i32 = 3666; 23 | const LEFT_ARROW: i32 = 57419; 24 | const META_LEFT: i32 = 3675; 25 | const META_RIGHT: i32 = 3676; 26 | const RETURN: i32 = 28; 27 | const RIGHT_ARROW: i32 = 57421; 28 | const SHIFT_LEFT: i32 = 42; 29 | const SHIFT_RIGHT: i32 = 54; 30 | const SPACE: i32 = 57; 31 | const TAB: i32 = 15; 32 | const UP_ARROW: i32 = 57416; 33 | const BACK_QUOTE: i32 = 41; 34 | const NUM1: i32 = 2; 35 | const NUM2: i32 = 3; 36 | const NUM3: i32 = 4; 37 | const NUM4: i32 = 5; 38 | const NUM5: i32 = 6; 39 | const NUM6: i32 = 7; 40 | const NUM7: i32 = 8; 41 | const NUM8: i32 = 9; 42 | const NUM9: i32 = 10; 43 | const NUM0: i32 = 11; 44 | const MINUS: i32 = 12; 45 | const EQUAL: i32 = 13; 46 | const KEY_Q: i32 = 16; 47 | const KEY_W: i32 = 17; 48 | const KEY_E: i32 = 18; 49 | const KEY_R: i32 = 19; 50 | const KEY_T: i32 = 20; 51 | const KEY_Y: i32 = 21; 52 | const KEY_U: i32 = 22; 53 | const KEY_I: i32 = 23; 54 | const KEY_O: i32 = 24; 55 | const KEY_P: i32 = 25; 56 | const LEFT_BRACKET: i32 = 26; 57 | const RIGHT_BRACKET: i32 = 27; 58 | const KEY_A: i32 = 30; 59 | const KEY_S: i32 = 31; 60 | const KEY_D: i32 = 32; 61 | const KEY_F: i32 = 33; 62 | const KEY_G: i32 = 34; 63 | const KEY_H: i32 = 35; 64 | const KEY_J: i32 = 36; 65 | const KEY_K: i32 = 37; 66 | const KEY_L: i32 = 38; 67 | const SEMI_COLON: i32 = 39; 68 | const QUOTE: i32 = 40; 69 | const BACK_SLASH: i32 = 43; 70 | const KEY_Z: i32 = 44; 71 | const KEY_X: i32 = 45; 72 | const KEY_C: i32 = 46; 73 | const KEY_V: i32 = 47; 74 | const KEY_B: i32 = 48; 75 | const KEY_N: i32 = 49; 76 | const KEY_M: i32 = 50; 77 | const COMMA: i32 = 51; 78 | const DOT: i32 = 52; 79 | const SLASH: i32 = 53; 80 | 81 | pub fn code_from_key(key: Key) -> Option { 82 | match key { 83 | Key::Alt => Some(ALT), 84 | Key::AltGr => Some(ALT_GR), 85 | Key::Backspace => Some(BACKSPACE), 86 | Key::CapsLock => Some(CAPS_LOCK), 87 | Key::ControlLeft => Some(CONTROL_LEFT), 88 | Key::DownArrow => Some(DOWN_ARROW), 89 | Key::Escape => Some(ESCAPE), 90 | Key::F1 => Some(F1), 91 | Key::F10 => Some(F10), 92 | Key::F11 => Some(F11), 93 | Key::F12 => Some(F12), 94 | Key::F2 => Some(F2), 95 | Key::F3 => Some(F3), 96 | Key::F4 => Some(F4), 97 | Key::F5 => Some(F5), 98 | Key::F6 => Some(F6), 99 | Key::F7 => Some(F7), 100 | Key::F8 => Some(F8), 101 | Key::F9 => Some(F9), 102 | Key::LeftArrow => Some(LEFT_ARROW), 103 | Key::MetaLeft => Some(META_LEFT), 104 | Key::MetaRight => Some(META_RIGHT), 105 | Key::Return => Some(RETURN), 106 | Key::RightArrow => Some(RIGHT_ARROW), 107 | Key::ShiftLeft => Some(SHIFT_LEFT), 108 | Key::ShiftRight => Some(SHIFT_RIGHT), 109 | Key::Space => Some(SPACE), 110 | Key::Tab => Some(TAB), 111 | Key::UpArrow => Some(UP_ARROW), 112 | Key::BackQuote => Some(BACK_QUOTE), 113 | Key::Num1 => Some(NUM1), 114 | Key::Num2 => Some(NUM2), 115 | Key::Num3 => Some(NUM3), 116 | Key::Num4 => Some(NUM4), 117 | Key::Num5 => Some(NUM5), 118 | Key::Num6 => Some(NUM6), 119 | Key::Num7 => Some(NUM7), 120 | Key::Num8 => Some(NUM8), 121 | Key::Num9 => Some(NUM9), 122 | Key::Num0 => Some(NUM0), 123 | Key::Minus => Some(MINUS), 124 | Key::Equal => Some(EQUAL), 125 | Key::KeyQ => Some(KEY_Q), 126 | Key::KeyW => Some(KEY_W), 127 | Key::KeyE => Some(KEY_E), 128 | Key::KeyR => Some(KEY_R), 129 | Key::KeyT => Some(KEY_T), 130 | Key::KeyY => Some(KEY_Y), 131 | Key::KeyU => Some(KEY_U), 132 | Key::KeyI => Some(KEY_I), 133 | Key::KeyO => Some(KEY_O), 134 | Key::KeyP => Some(KEY_P), 135 | Key::LeftBracket => Some(LEFT_BRACKET), 136 | Key::RightBracket => Some(RIGHT_BRACKET), 137 | Key::KeyA => Some(KEY_A), 138 | Key::KeyS => Some(KEY_S), 139 | Key::KeyD => Some(KEY_D), 140 | Key::KeyF => Some(KEY_F), 141 | Key::KeyG => Some(KEY_G), 142 | Key::KeyH => Some(KEY_H), 143 | Key::KeyJ => Some(KEY_J), 144 | Key::KeyK => Some(KEY_K), 145 | Key::KeyL => Some(KEY_L), 146 | Key::SemiColon => Some(SEMI_COLON), 147 | Key::Quote => Some(QUOTE), 148 | Key::BackSlash => Some(BACK_SLASH), 149 | Key::KeyZ => Some(KEY_Z), 150 | Key::KeyX => Some(KEY_X), 151 | Key::KeyC => Some(KEY_C), 152 | Key::KeyV => Some(KEY_V), 153 | Key::KeyB => Some(KEY_B), 154 | Key::KeyN => Some(KEY_N), 155 | Key::KeyM => Some(KEY_M), 156 | Key::Comma => Some(COMMA), 157 | Key::Dot => Some(DOT), 158 | Key::Slash => Some(SLASH), 159 | Key::Function => Some(FUNCTION), 160 | _ => None 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /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 = "aho-corasick" 7 | version = "1.1.3" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 10 | dependencies = [ 11 | "memchr", 12 | ] 13 | 14 | [[package]] 15 | name = "alsa" 16 | version = "0.6.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b" 19 | dependencies = [ 20 | "alsa-sys", 21 | "bitflags 1.3.2", 22 | "libc", 23 | "nix", 24 | ] 25 | 26 | [[package]] 27 | name = "alsa-sys" 28 | version = "0.3.1" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" 31 | dependencies = [ 32 | "libc", 33 | "pkg-config", 34 | ] 35 | 36 | [[package]] 37 | name = "anstream" 38 | version = "0.6.15" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" 41 | dependencies = [ 42 | "anstyle", 43 | "anstyle-parse", 44 | "anstyle-query", 45 | "anstyle-wincon", 46 | "colorchoice", 47 | "is_terminal_polyfill", 48 | "utf8parse", 49 | ] 50 | 51 | [[package]] 52 | name = "anstyle" 53 | version = "1.0.8" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" 56 | 57 | [[package]] 58 | name = "anstyle-parse" 59 | version = "0.2.5" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" 62 | dependencies = [ 63 | "utf8parse", 64 | ] 65 | 66 | [[package]] 67 | name = "anstyle-query" 68 | version = "1.1.1" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" 71 | dependencies = [ 72 | "windows-sys", 73 | ] 74 | 75 | [[package]] 76 | name = "anstyle-wincon" 77 | version = "3.0.4" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" 80 | dependencies = [ 81 | "anstyle", 82 | "windows-sys", 83 | ] 84 | 85 | [[package]] 86 | name = "autocfg" 87 | version = "1.3.0" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 90 | 91 | [[package]] 92 | name = "bindgen" 93 | version = "0.69.4" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" 96 | dependencies = [ 97 | "bitflags 2.6.0", 98 | "cexpr", 99 | "clang-sys", 100 | "itertools", 101 | "lazy_static", 102 | "lazycell", 103 | "proc-macro2", 104 | "quote", 105 | "regex", 106 | "rustc-hash", 107 | "shlex", 108 | "syn 2.0.72", 109 | ] 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 = "block" 125 | version = "0.1.6" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 128 | 129 | [[package]] 130 | name = "bumpalo" 131 | version = "3.16.0" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 134 | 135 | [[package]] 136 | name = "byteorder" 137 | version = "1.5.0" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 140 | 141 | [[package]] 142 | name = "bytes" 143 | version = "1.6.1" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" 146 | 147 | [[package]] 148 | name = "cc" 149 | version = "1.1.6" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" 152 | dependencies = [ 153 | "jobserver", 154 | "libc", 155 | ] 156 | 157 | [[package]] 158 | name = "cesu8" 159 | version = "1.1.0" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 162 | 163 | [[package]] 164 | name = "cexpr" 165 | version = "0.6.0" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 168 | dependencies = [ 169 | "nom", 170 | ] 171 | 172 | [[package]] 173 | name = "cfg-if" 174 | version = "1.0.0" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 177 | 178 | [[package]] 179 | name = "clackit" 180 | version = "0.1.0" 181 | dependencies = [ 182 | "clap", 183 | "flume", 184 | "lazy_static", 185 | "libc", 186 | "once_cell", 187 | "rdev", 188 | "rodio_wav_fix", 189 | "serde_json", 190 | ] 191 | 192 | [[package]] 193 | name = "clang-sys" 194 | version = "1.8.1" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 197 | dependencies = [ 198 | "glob", 199 | "libc", 200 | "libloading", 201 | ] 202 | 203 | [[package]] 204 | name = "clap" 205 | version = "4.5.11" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" 208 | dependencies = [ 209 | "clap_builder", 210 | "clap_derive", 211 | ] 212 | 213 | [[package]] 214 | name = "clap_builder" 215 | version = "4.5.11" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" 218 | dependencies = [ 219 | "anstream", 220 | "anstyle", 221 | "clap_lex", 222 | "strsim 0.11.1", 223 | ] 224 | 225 | [[package]] 226 | name = "clap_derive" 227 | version = "4.5.11" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" 230 | dependencies = [ 231 | "heck", 232 | "proc-macro2", 233 | "quote", 234 | "syn 2.0.72", 235 | ] 236 | 237 | [[package]] 238 | name = "clap_lex" 239 | version = "0.7.2" 240 | source = "registry+https://github.com/rust-lang/crates.io-index" 241 | checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" 242 | 243 | [[package]] 244 | name = "claxon" 245 | version = "0.4.3" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688" 248 | 249 | [[package]] 250 | name = "cocoa" 251 | version = "0.22.0" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "667fdc068627a2816b9ff831201dd9864249d6ee8d190b9532357f1fc0f61ea7" 254 | dependencies = [ 255 | "bitflags 1.3.2", 256 | "block", 257 | "core-foundation 0.9.4", 258 | "core-graphics 0.21.0", 259 | "foreign-types", 260 | "libc", 261 | "objc", 262 | ] 263 | 264 | [[package]] 265 | name = "colorchoice" 266 | version = "1.0.2" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" 269 | 270 | [[package]] 271 | name = "combine" 272 | version = "4.6.7" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 275 | dependencies = [ 276 | "bytes", 277 | "memchr", 278 | ] 279 | 280 | [[package]] 281 | name = "core-foundation" 282 | version = "0.7.0" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" 285 | dependencies = [ 286 | "core-foundation-sys 0.7.0", 287 | "libc", 288 | ] 289 | 290 | [[package]] 291 | name = "core-foundation" 292 | version = "0.9.4" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 295 | dependencies = [ 296 | "core-foundation-sys 0.8.6", 297 | "libc", 298 | ] 299 | 300 | [[package]] 301 | name = "core-foundation-sys" 302 | version = "0.7.0" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" 305 | 306 | [[package]] 307 | name = "core-foundation-sys" 308 | version = "0.8.6" 309 | source = "registry+https://github.com/rust-lang/crates.io-index" 310 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 311 | 312 | [[package]] 313 | name = "core-graphics" 314 | version = "0.19.2" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" 317 | dependencies = [ 318 | "bitflags 1.3.2", 319 | "core-foundation 0.7.0", 320 | "foreign-types", 321 | "libc", 322 | ] 323 | 324 | [[package]] 325 | name = "core-graphics" 326 | version = "0.21.0" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | checksum = "52a67c4378cf203eace8fb6567847eb641fd6ff933c1145a115c6ee820ebb978" 329 | dependencies = [ 330 | "bitflags 1.3.2", 331 | "core-foundation 0.9.4", 332 | "foreign-types", 333 | "libc", 334 | ] 335 | 336 | [[package]] 337 | name = "coreaudio-rs" 338 | version = "0.10.0" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88" 341 | dependencies = [ 342 | "bitflags 1.3.2", 343 | "coreaudio-sys", 344 | ] 345 | 346 | [[package]] 347 | name = "coreaudio-sys" 348 | version = "0.2.15" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | checksum = "7f01585027057ff5f0a5bf276174ae4c1594a2c5bde93d5f46a016d76270f5a9" 351 | dependencies = [ 352 | "bindgen", 353 | ] 354 | 355 | [[package]] 356 | name = "cpal" 357 | version = "0.13.5" 358 | source = "registry+https://github.com/rust-lang/crates.io-index" 359 | checksum = "74117836a5124f3629e4b474eed03e479abaf98988b4bb317e29f08cfe0e4116" 360 | dependencies = [ 361 | "alsa", 362 | "core-foundation-sys 0.8.6", 363 | "coreaudio-rs", 364 | "jni", 365 | "js-sys", 366 | "lazy_static", 367 | "libc", 368 | "mach", 369 | "ndk", 370 | "ndk-glue", 371 | "nix", 372 | "oboe", 373 | "parking_lot", 374 | "stdweb", 375 | "thiserror", 376 | "web-sys", 377 | "winapi", 378 | ] 379 | 380 | [[package]] 381 | name = "darling" 382 | version = "0.13.4" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" 385 | dependencies = [ 386 | "darling_core", 387 | "darling_macro", 388 | ] 389 | 390 | [[package]] 391 | name = "darling_core" 392 | version = "0.13.4" 393 | source = "registry+https://github.com/rust-lang/crates.io-index" 394 | checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" 395 | dependencies = [ 396 | "fnv", 397 | "ident_case", 398 | "proc-macro2", 399 | "quote", 400 | "strsim 0.10.0", 401 | "syn 1.0.109", 402 | ] 403 | 404 | [[package]] 405 | name = "darling_macro" 406 | version = "0.13.4" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" 409 | dependencies = [ 410 | "darling_core", 411 | "quote", 412 | "syn 1.0.109", 413 | ] 414 | 415 | [[package]] 416 | name = "either" 417 | version = "1.13.0" 418 | source = "registry+https://github.com/rust-lang/crates.io-index" 419 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 420 | 421 | [[package]] 422 | name = "equivalent" 423 | version = "1.0.1" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 426 | 427 | [[package]] 428 | name = "flume" 429 | version = "0.11.0" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" 432 | dependencies = [ 433 | "futures-core", 434 | "futures-sink", 435 | "nanorand", 436 | "spin", 437 | ] 438 | 439 | [[package]] 440 | name = "fnv" 441 | version = "1.0.7" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 444 | 445 | [[package]] 446 | name = "foreign-types" 447 | version = "0.3.2" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 450 | dependencies = [ 451 | "foreign-types-shared", 452 | ] 453 | 454 | [[package]] 455 | name = "foreign-types-shared" 456 | version = "0.1.1" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 459 | 460 | [[package]] 461 | name = "futures-core" 462 | version = "0.3.30" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 465 | 466 | [[package]] 467 | name = "futures-sink" 468 | version = "0.3.30" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 471 | 472 | [[package]] 473 | name = "getrandom" 474 | version = "0.2.15" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 477 | dependencies = [ 478 | "cfg-if", 479 | "js-sys", 480 | "libc", 481 | "wasi", 482 | "wasm-bindgen", 483 | ] 484 | 485 | [[package]] 486 | name = "glob" 487 | version = "0.3.1" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 490 | 491 | [[package]] 492 | name = "hashbrown" 493 | version = "0.14.5" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 496 | 497 | [[package]] 498 | name = "heck" 499 | version = "0.5.0" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 502 | 503 | [[package]] 504 | name = "hound" 505 | version = "3.5.1" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" 508 | 509 | [[package]] 510 | name = "ident_case" 511 | version = "1.0.1" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 514 | 515 | [[package]] 516 | name = "indexmap" 517 | version = "2.2.6" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 520 | dependencies = [ 521 | "equivalent", 522 | "hashbrown", 523 | ] 524 | 525 | [[package]] 526 | name = "instant" 527 | version = "0.1.13" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 530 | dependencies = [ 531 | "cfg-if", 532 | ] 533 | 534 | [[package]] 535 | name = "is_terminal_polyfill" 536 | version = "1.70.1" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 539 | 540 | [[package]] 541 | name = "itertools" 542 | version = "0.12.1" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 545 | dependencies = [ 546 | "either", 547 | ] 548 | 549 | [[package]] 550 | name = "itoa" 551 | version = "1.0.11" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 554 | 555 | [[package]] 556 | name = "jni" 557 | version = "0.19.0" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" 560 | dependencies = [ 561 | "cesu8", 562 | "combine", 563 | "jni-sys", 564 | "log", 565 | "thiserror", 566 | "walkdir", 567 | ] 568 | 569 | [[package]] 570 | name = "jni-sys" 571 | version = "0.3.0" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 574 | 575 | [[package]] 576 | name = "jobserver" 577 | version = "0.1.32" 578 | source = "registry+https://github.com/rust-lang/crates.io-index" 579 | checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" 580 | dependencies = [ 581 | "libc", 582 | ] 583 | 584 | [[package]] 585 | name = "js-sys" 586 | version = "0.3.69" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 589 | dependencies = [ 590 | "wasm-bindgen", 591 | ] 592 | 593 | [[package]] 594 | name = "lazy_static" 595 | version = "1.5.0" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 598 | 599 | [[package]] 600 | name = "lazycell" 601 | version = "1.3.0" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 604 | 605 | [[package]] 606 | name = "lewton" 607 | version = "0.10.2" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" 610 | dependencies = [ 611 | "byteorder", 612 | "ogg", 613 | "tinyvec", 614 | ] 615 | 616 | [[package]] 617 | name = "libc" 618 | version = "0.2.155" 619 | source = "registry+https://github.com/rust-lang/crates.io-index" 620 | checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" 621 | 622 | [[package]] 623 | name = "libloading" 624 | version = "0.8.5" 625 | source = "registry+https://github.com/rust-lang/crates.io-index" 626 | checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" 627 | dependencies = [ 628 | "cfg-if", 629 | "windows-targets", 630 | ] 631 | 632 | [[package]] 633 | name = "lock_api" 634 | version = "0.4.12" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 637 | dependencies = [ 638 | "autocfg", 639 | "scopeguard", 640 | ] 641 | 642 | [[package]] 643 | name = "log" 644 | version = "0.4.22" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 647 | 648 | [[package]] 649 | name = "mach" 650 | version = "0.3.2" 651 | source = "registry+https://github.com/rust-lang/crates.io-index" 652 | checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" 653 | dependencies = [ 654 | "libc", 655 | ] 656 | 657 | [[package]] 658 | name = "malloc_buf" 659 | version = "0.0.6" 660 | source = "registry+https://github.com/rust-lang/crates.io-index" 661 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 662 | dependencies = [ 663 | "libc", 664 | ] 665 | 666 | [[package]] 667 | name = "memchr" 668 | version = "2.7.4" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 671 | 672 | [[package]] 673 | name = "memoffset" 674 | version = "0.6.5" 675 | source = "registry+https://github.com/rust-lang/crates.io-index" 676 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 677 | dependencies = [ 678 | "autocfg", 679 | ] 680 | 681 | [[package]] 682 | name = "minimal-lexical" 683 | version = "0.2.1" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 686 | 687 | [[package]] 688 | name = "minimp3" 689 | version = "0.5.1" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "985438f75febf74c392071a975a29641b420dd84431135a6e6db721de4b74372" 692 | dependencies = [ 693 | "minimp3-sys", 694 | "slice-deque", 695 | "thiserror", 696 | ] 697 | 698 | [[package]] 699 | name = "minimp3-sys" 700 | version = "0.3.2" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "e21c73734c69dc95696c9ed8926a2b393171d98b3f5f5935686a26a487ab9b90" 703 | dependencies = [ 704 | "cc", 705 | ] 706 | 707 | [[package]] 708 | name = "nanorand" 709 | version = "0.7.0" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 712 | dependencies = [ 713 | "getrandom", 714 | ] 715 | 716 | [[package]] 717 | name = "ndk" 718 | version = "0.6.0" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" 721 | dependencies = [ 722 | "bitflags 1.3.2", 723 | "jni-sys", 724 | "ndk-sys", 725 | "num_enum", 726 | "thiserror", 727 | ] 728 | 729 | [[package]] 730 | name = "ndk-context" 731 | version = "0.1.1" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 734 | 735 | [[package]] 736 | name = "ndk-glue" 737 | version = "0.6.2" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f" 740 | dependencies = [ 741 | "lazy_static", 742 | "libc", 743 | "log", 744 | "ndk", 745 | "ndk-context", 746 | "ndk-macro", 747 | "ndk-sys", 748 | ] 749 | 750 | [[package]] 751 | name = "ndk-macro" 752 | version = "0.3.0" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" 755 | dependencies = [ 756 | "darling", 757 | "proc-macro-crate", 758 | "proc-macro2", 759 | "quote", 760 | "syn 1.0.109", 761 | ] 762 | 763 | [[package]] 764 | name = "ndk-sys" 765 | version = "0.3.0" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" 768 | dependencies = [ 769 | "jni-sys", 770 | ] 771 | 772 | [[package]] 773 | name = "nix" 774 | version = "0.23.2" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" 777 | dependencies = [ 778 | "bitflags 1.3.2", 779 | "cc", 780 | "cfg-if", 781 | "libc", 782 | "memoffset", 783 | ] 784 | 785 | [[package]] 786 | name = "nom" 787 | version = "7.1.3" 788 | source = "registry+https://github.com/rust-lang/crates.io-index" 789 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 790 | dependencies = [ 791 | "memchr", 792 | "minimal-lexical", 793 | ] 794 | 795 | [[package]] 796 | name = "num-derive" 797 | version = "0.3.3" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" 800 | dependencies = [ 801 | "proc-macro2", 802 | "quote", 803 | "syn 1.0.109", 804 | ] 805 | 806 | [[package]] 807 | name = "num-traits" 808 | version = "0.2.19" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 811 | dependencies = [ 812 | "autocfg", 813 | ] 814 | 815 | [[package]] 816 | name = "num_enum" 817 | version = "0.5.11" 818 | source = "registry+https://github.com/rust-lang/crates.io-index" 819 | checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" 820 | dependencies = [ 821 | "num_enum_derive", 822 | ] 823 | 824 | [[package]] 825 | name = "num_enum_derive" 826 | version = "0.5.11" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" 829 | dependencies = [ 830 | "proc-macro-crate", 831 | "proc-macro2", 832 | "quote", 833 | "syn 1.0.109", 834 | ] 835 | 836 | [[package]] 837 | name = "objc" 838 | version = "0.2.7" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 841 | dependencies = [ 842 | "malloc_buf", 843 | ] 844 | 845 | [[package]] 846 | name = "oboe" 847 | version = "0.4.6" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1" 850 | dependencies = [ 851 | "jni", 852 | "ndk", 853 | "ndk-context", 854 | "num-derive", 855 | "num-traits", 856 | "oboe-sys", 857 | ] 858 | 859 | [[package]] 860 | name = "oboe-sys" 861 | version = "0.4.5" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd" 864 | dependencies = [ 865 | "cc", 866 | ] 867 | 868 | [[package]] 869 | name = "ogg" 870 | version = "0.8.0" 871 | source = "registry+https://github.com/rust-lang/crates.io-index" 872 | checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" 873 | dependencies = [ 874 | "byteorder", 875 | ] 876 | 877 | [[package]] 878 | name = "once_cell" 879 | version = "1.19.0" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 882 | 883 | [[package]] 884 | name = "parking_lot" 885 | version = "0.11.2" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" 888 | dependencies = [ 889 | "instant", 890 | "lock_api", 891 | "parking_lot_core", 892 | ] 893 | 894 | [[package]] 895 | name = "parking_lot_core" 896 | version = "0.8.6" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" 899 | dependencies = [ 900 | "cfg-if", 901 | "instant", 902 | "libc", 903 | "redox_syscall", 904 | "smallvec", 905 | "winapi", 906 | ] 907 | 908 | [[package]] 909 | name = "pkg-config" 910 | version = "0.3.30" 911 | source = "registry+https://github.com/rust-lang/crates.io-index" 912 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 913 | 914 | [[package]] 915 | name = "proc-macro-crate" 916 | version = "1.3.1" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 919 | dependencies = [ 920 | "once_cell", 921 | "toml_edit", 922 | ] 923 | 924 | [[package]] 925 | name = "proc-macro2" 926 | version = "1.0.86" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 929 | dependencies = [ 930 | "unicode-ident", 931 | ] 932 | 933 | [[package]] 934 | name = "quote" 935 | version = "1.0.36" 936 | source = "registry+https://github.com/rust-lang/crates.io-index" 937 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 938 | dependencies = [ 939 | "proc-macro2", 940 | ] 941 | 942 | [[package]] 943 | name = "rdev" 944 | version = "0.5.3" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "00552ca2dc2f93b84cd7b5581de49549411e4e41d89e1c691bcb93dc4be360c3" 947 | dependencies = [ 948 | "cocoa", 949 | "core-foundation 0.7.0", 950 | "core-foundation-sys 0.7.0", 951 | "core-graphics 0.19.2", 952 | "lazy_static", 953 | "libc", 954 | "winapi", 955 | "x11", 956 | ] 957 | 958 | [[package]] 959 | name = "redox_syscall" 960 | version = "0.2.16" 961 | source = "registry+https://github.com/rust-lang/crates.io-index" 962 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 963 | dependencies = [ 964 | "bitflags 1.3.2", 965 | ] 966 | 967 | [[package]] 968 | name = "regex" 969 | version = "1.10.5" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" 972 | dependencies = [ 973 | "aho-corasick", 974 | "memchr", 975 | "regex-automata", 976 | "regex-syntax", 977 | ] 978 | 979 | [[package]] 980 | name = "regex-automata" 981 | version = "0.4.7" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" 984 | dependencies = [ 985 | "aho-corasick", 986 | "memchr", 987 | "regex-syntax", 988 | ] 989 | 990 | [[package]] 991 | name = "regex-syntax" 992 | version = "0.8.4" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" 995 | 996 | [[package]] 997 | name = "rodio_wav_fix" 998 | version = "0.15.0" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "a75a523eba013e8d69e18c0ee4a93f69fc44fa892f41f9affe4f52ca82bf276a" 1001 | dependencies = [ 1002 | "claxon", 1003 | "cpal", 1004 | "hound", 1005 | "lewton", 1006 | "minimp3", 1007 | ] 1008 | 1009 | [[package]] 1010 | name = "rustc-hash" 1011 | version = "1.1.0" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1014 | 1015 | [[package]] 1016 | name = "ryu" 1017 | version = "1.0.18" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1020 | 1021 | [[package]] 1022 | name = "same-file" 1023 | version = "1.0.6" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1026 | dependencies = [ 1027 | "winapi-util", 1028 | ] 1029 | 1030 | [[package]] 1031 | name = "scopeguard" 1032 | version = "1.2.0" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1035 | 1036 | [[package]] 1037 | name = "serde" 1038 | version = "1.0.204" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" 1041 | dependencies = [ 1042 | "serde_derive", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "serde_derive" 1047 | version = "1.0.204" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" 1050 | dependencies = [ 1051 | "proc-macro2", 1052 | "quote", 1053 | "syn 2.0.72", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "serde_json" 1058 | version = "1.0.120" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" 1061 | dependencies = [ 1062 | "itoa", 1063 | "ryu", 1064 | "serde", 1065 | ] 1066 | 1067 | [[package]] 1068 | name = "shlex" 1069 | version = "1.3.0" 1070 | source = "registry+https://github.com/rust-lang/crates.io-index" 1071 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1072 | 1073 | [[package]] 1074 | name = "slice-deque" 1075 | version = "0.3.0" 1076 | source = "registry+https://github.com/rust-lang/crates.io-index" 1077 | checksum = "31ef6ee280cdefba6d2d0b4b78a84a1c1a3f3a4cec98c2d4231c8bc225de0f25" 1078 | dependencies = [ 1079 | "libc", 1080 | "mach", 1081 | "winapi", 1082 | ] 1083 | 1084 | [[package]] 1085 | name = "smallvec" 1086 | version = "1.13.2" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1089 | 1090 | [[package]] 1091 | name = "spin" 1092 | version = "0.9.8" 1093 | source = "registry+https://github.com/rust-lang/crates.io-index" 1094 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1095 | dependencies = [ 1096 | "lock_api", 1097 | ] 1098 | 1099 | [[package]] 1100 | name = "stdweb" 1101 | version = "0.1.3" 1102 | source = "registry+https://github.com/rust-lang/crates.io-index" 1103 | checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" 1104 | 1105 | [[package]] 1106 | name = "strsim" 1107 | version = "0.10.0" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1110 | 1111 | [[package]] 1112 | name = "strsim" 1113 | version = "0.11.1" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1116 | 1117 | [[package]] 1118 | name = "syn" 1119 | version = "1.0.109" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1122 | dependencies = [ 1123 | "proc-macro2", 1124 | "quote", 1125 | "unicode-ident", 1126 | ] 1127 | 1128 | [[package]] 1129 | name = "syn" 1130 | version = "2.0.72" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" 1133 | dependencies = [ 1134 | "proc-macro2", 1135 | "quote", 1136 | "unicode-ident", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "thiserror" 1141 | version = "1.0.63" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" 1144 | dependencies = [ 1145 | "thiserror-impl", 1146 | ] 1147 | 1148 | [[package]] 1149 | name = "thiserror-impl" 1150 | version = "1.0.63" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" 1153 | dependencies = [ 1154 | "proc-macro2", 1155 | "quote", 1156 | "syn 2.0.72", 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "tinyvec" 1161 | version = "1.8.0" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1164 | dependencies = [ 1165 | "tinyvec_macros", 1166 | ] 1167 | 1168 | [[package]] 1169 | name = "tinyvec_macros" 1170 | version = "0.1.1" 1171 | source = "registry+https://github.com/rust-lang/crates.io-index" 1172 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1173 | 1174 | [[package]] 1175 | name = "toml_datetime" 1176 | version = "0.6.7" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" 1179 | 1180 | [[package]] 1181 | name = "toml_edit" 1182 | version = "0.19.15" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 1185 | dependencies = [ 1186 | "indexmap", 1187 | "toml_datetime", 1188 | "winnow", 1189 | ] 1190 | 1191 | [[package]] 1192 | name = "unicode-ident" 1193 | version = "1.0.12" 1194 | source = "registry+https://github.com/rust-lang/crates.io-index" 1195 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1196 | 1197 | [[package]] 1198 | name = "utf8parse" 1199 | version = "0.2.2" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 1202 | 1203 | [[package]] 1204 | name = "walkdir" 1205 | version = "2.5.0" 1206 | source = "registry+https://github.com/rust-lang/crates.io-index" 1207 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1208 | dependencies = [ 1209 | "same-file", 1210 | "winapi-util", 1211 | ] 1212 | 1213 | [[package]] 1214 | name = "wasi" 1215 | version = "0.11.0+wasi-snapshot-preview1" 1216 | source = "registry+https://github.com/rust-lang/crates.io-index" 1217 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1218 | 1219 | [[package]] 1220 | name = "wasm-bindgen" 1221 | version = "0.2.92" 1222 | source = "registry+https://github.com/rust-lang/crates.io-index" 1223 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 1224 | dependencies = [ 1225 | "cfg-if", 1226 | "wasm-bindgen-macro", 1227 | ] 1228 | 1229 | [[package]] 1230 | name = "wasm-bindgen-backend" 1231 | version = "0.2.92" 1232 | source = "registry+https://github.com/rust-lang/crates.io-index" 1233 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 1234 | dependencies = [ 1235 | "bumpalo", 1236 | "log", 1237 | "once_cell", 1238 | "proc-macro2", 1239 | "quote", 1240 | "syn 2.0.72", 1241 | "wasm-bindgen-shared", 1242 | ] 1243 | 1244 | [[package]] 1245 | name = "wasm-bindgen-macro" 1246 | version = "0.2.92" 1247 | source = "registry+https://github.com/rust-lang/crates.io-index" 1248 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 1249 | dependencies = [ 1250 | "quote", 1251 | "wasm-bindgen-macro-support", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "wasm-bindgen-macro-support" 1256 | version = "0.2.92" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 1259 | dependencies = [ 1260 | "proc-macro2", 1261 | "quote", 1262 | "syn 2.0.72", 1263 | "wasm-bindgen-backend", 1264 | "wasm-bindgen-shared", 1265 | ] 1266 | 1267 | [[package]] 1268 | name = "wasm-bindgen-shared" 1269 | version = "0.2.92" 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" 1271 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 1272 | 1273 | [[package]] 1274 | name = "web-sys" 1275 | version = "0.3.69" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 1278 | dependencies = [ 1279 | "js-sys", 1280 | "wasm-bindgen", 1281 | ] 1282 | 1283 | [[package]] 1284 | name = "winapi" 1285 | version = "0.3.9" 1286 | source = "registry+https://github.com/rust-lang/crates.io-index" 1287 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1288 | dependencies = [ 1289 | "winapi-i686-pc-windows-gnu", 1290 | "winapi-x86_64-pc-windows-gnu", 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "winapi-i686-pc-windows-gnu" 1295 | version = "0.4.0" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1298 | 1299 | [[package]] 1300 | name = "winapi-util" 1301 | version = "0.1.8" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" 1304 | dependencies = [ 1305 | "windows-sys", 1306 | ] 1307 | 1308 | [[package]] 1309 | name = "winapi-x86_64-pc-windows-gnu" 1310 | version = "0.4.0" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1313 | 1314 | [[package]] 1315 | name = "windows-sys" 1316 | version = "0.52.0" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1319 | dependencies = [ 1320 | "windows-targets", 1321 | ] 1322 | 1323 | [[package]] 1324 | name = "windows-targets" 1325 | version = "0.52.6" 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" 1327 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1328 | dependencies = [ 1329 | "windows_aarch64_gnullvm", 1330 | "windows_aarch64_msvc", 1331 | "windows_i686_gnu", 1332 | "windows_i686_gnullvm", 1333 | "windows_i686_msvc", 1334 | "windows_x86_64_gnu", 1335 | "windows_x86_64_gnullvm", 1336 | "windows_x86_64_msvc", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "windows_aarch64_gnullvm" 1341 | version = "0.52.6" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1344 | 1345 | [[package]] 1346 | name = "windows_aarch64_msvc" 1347 | version = "0.52.6" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1350 | 1351 | [[package]] 1352 | name = "windows_i686_gnu" 1353 | version = "0.52.6" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1356 | 1357 | [[package]] 1358 | name = "windows_i686_gnullvm" 1359 | version = "0.52.6" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1362 | 1363 | [[package]] 1364 | name = "windows_i686_msvc" 1365 | version = "0.52.6" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1368 | 1369 | [[package]] 1370 | name = "windows_x86_64_gnu" 1371 | version = "0.52.6" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1374 | 1375 | [[package]] 1376 | name = "windows_x86_64_gnullvm" 1377 | version = "0.52.6" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1380 | 1381 | [[package]] 1382 | name = "windows_x86_64_msvc" 1383 | version = "0.52.6" 1384 | source = "registry+https://github.com/rust-lang/crates.io-index" 1385 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1386 | 1387 | [[package]] 1388 | name = "winnow" 1389 | version = "0.5.40" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 1392 | dependencies = [ 1393 | "memchr", 1394 | ] 1395 | 1396 | [[package]] 1397 | name = "x11" 1398 | version = "2.21.0" 1399 | source = "registry+https://github.com/rust-lang/crates.io-index" 1400 | checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" 1401 | dependencies = [ 1402 | "libc", 1403 | "pkg-config", 1404 | ] 1405 | --------------------------------------------------------------------------------