├── .gitignore ├── res ├── lua_icon.jpg └── inv_wildfirebomb_blood.jpg ├── src ├── log_watchers │ ├── mod.rs │ ├── file_replayer.rs │ ├── log_dispatcher.rs │ └── file_watcher.rs ├── utils.rs ├── auras │ ├── mod.rs │ ├── delay_display.rs │ ├── list_aura.rs │ ├── lua_aura.rs │ └── nelth_aura.rs ├── main.rs └── main_window.rs ├── Cargo.toml ├── lua-auras └── RENAME_ME_TO_aura.lua ├── README.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /res/lua_icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Urcra/outside-auras/HEAD/res/lua_icon.jpg -------------------------------------------------------------------------------- /res/inv_wildfirebomb_blood.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Urcra/outside-auras/HEAD/res/inv_wildfirebomb_blood.jpg -------------------------------------------------------------------------------- /src/log_watchers/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod file_replayer; 2 | pub mod file_watcher; 3 | pub mod log_dispatcher; 4 | 5 | pub use file_replayer::file_replayer; 6 | pub use file_watcher::file_watcher; 7 | pub use log_dispatcher::LogDispatcher; 8 | -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- 1 | use eframe::egui; 2 | 3 | pub fn load_image_from_path(path: &str) -> Result { 4 | let image = image::io::Reader::open(path)?.decode()?; 5 | let size = [image.width() as _, image.height() as _]; 6 | let image_buffer = image.to_rgba8(); 7 | let pixels = image_buffer.as_flat_samples(); 8 | Ok(egui::ColorImage::from_rgba_unmultiplied( 9 | size, 10 | pixels.as_slice(), 11 | )) 12 | } 13 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "outside-auras" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | notify = "6.0" 10 | eframe = "0.22" 11 | env_logger = "0.10" 12 | chrono = "0.4" 13 | image = "0.24" 14 | crossbeam = "0.8" 15 | parking_lot = "0.12" 16 | lazy_static = "1.4" 17 | procspawn = "0.10" 18 | ipc-channel = "0.16" 19 | serde = "1.0" 20 | rlua = "0.19" -------------------------------------------------------------------------------- /src/auras/mod.rs: -------------------------------------------------------------------------------- 1 | use eframe::{ 2 | emath::Align2, 3 | epaint::{Color32, FontId, TextureHandle}, 4 | }; 5 | 6 | pub mod delay_display; 7 | pub mod list_aura; 8 | pub mod lua_aura; 9 | pub mod nelth_aura; 10 | 11 | pub struct AuraItem<'a> { 12 | pub icon: Option>, 13 | pub icon_text: Option, 14 | pub text: Option, 15 | pub background: Option, 16 | } 17 | 18 | pub struct AuraIcon<'a> { 19 | pub image: &'a TextureHandle, 20 | pub height: f32, 21 | pub width: f32, 22 | } 23 | 24 | pub struct AuraText { 25 | pub content: String, 26 | pub anchor: Align2, 27 | pub font: FontId, 28 | pub color: Color32, 29 | pub x_offset: f32, 30 | pub y_offset: f32, 31 | } 32 | 33 | #[derive(Debug, Clone, Copy)] 34 | pub struct AuraBackground { 35 | pub color: Color32, 36 | pub width: f32, 37 | pub height: f32, 38 | } 39 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | //#![windows_subsystem = "windows"] 2 | 3 | use std::{fs, thread, time::Duration}; 4 | 5 | use auras::{delay_display, lua_aura, nelth_aura::NelthAura}; 6 | use log_watchers::LogDispatcher; 7 | mod auras; 8 | mod log_watchers; 9 | mod main_window; 10 | mod utils; 11 | 12 | fn main() { 13 | env_logger::init(); 14 | procspawn::init(); 15 | 16 | main_window::App::spawn(); 17 | let path = main_window::LOG_FILE.lock().clone(); 18 | let replay = *main_window::REPLAY.lock(); 19 | let player_list = main_window::PLAYER_LIST.lock().clone(); 20 | //let (nelth_channel_tx, nelth_channel_rx) = unbounded(); 21 | let (_nelth_handle, nelth_tx) = NelthAura::spawn(player_list); 22 | let (_delay_handle, delay_tx) = delay_display::Aura::spawn(); 23 | let mut aura_channels = vec![nelth_tx, delay_tx]; 24 | if let Ok(script) = fs::read_to_string("lua-auras/aura.lua") { 25 | let (_lua_handle, lua_tx) = lua_aura::Aura::spawn(script); 26 | aura_channels.push(lua_tx); 27 | } 28 | let _log_dispatcher = LogDispatcher::new(path, replay, aura_channels); 29 | 30 | // Keep alive, until we get a proper menu that handles it instead 31 | loop { 32 | thread::sleep(Duration::from_secs(10)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lua-auras/RENAME_ME_TO_aura.lua: -------------------------------------------------------------------------------- 1 | -- The global aura_env is always available and should be used, then we can have some nice debug in the future 2 | 3 | -- Handle and parse a log_line and update your own state, return a bool depending on if we should redraw the overlay or not 4 | function handle_log_line(log_line) 5 | return true 6 | end 7 | 8 | -- The required height for the aura depdning on current state, we will resize the window to this size before each redraw should be f32 9 | function required_height() 10 | return 2 * item_height() 11 | end 12 | 13 | -- The required width for the aura depdning on current state, we will resize the window to this size before each redraw should be f32 14 | function required_width() 15 | return item_width() 16 | end 17 | 18 | -- The expected height of each item that you would return, we use this when drawing your items should be f32 19 | function item_height() 20 | return 56.0 21 | end 22 | 23 | -- The expected width of each item that you would return, we use this when drawing your items should be f32 24 | function item_width() 25 | return 256.0 26 | end 27 | 28 | -- Return the items to draw in the aura, should be a list of lists, where the first two elements are the String on the icon, and the content String 29 | function items() 30 | list_items = {{"1", "Item1FromLua"}, {"2", "Item2FromLua"}} 31 | return list_items 32 | end 33 | 34 | -------------------------------------------------------------------------------- /src/log_watchers/file_replayer.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | fs::File, 3 | io::{self, BufRead, BufReader}, 4 | thread, 5 | time::Duration, 6 | }; 7 | 8 | use chrono::NaiveDateTime; 9 | use crossbeam::channel::Sender; 10 | 11 | pub fn file_replayer(path: String, channel: Sender) -> io::Result<()> { 12 | // get file 13 | println!("Started with {:?}", path); 14 | // get pos to end of file 15 | let f = File::open(&path)?; 16 | 17 | let line_reader = BufReader::new(&f); 18 | 19 | let mut time_of_last: Option = None; 20 | 21 | for line in line_reader.lines() { 22 | let line = line?; 23 | channel.send(line.clone()).unwrap(); 24 | let mut split = line.split(" "); 25 | let date_time = split.next().unwrap().trim(); 26 | let date_time = format!("2023/{date_time}"); 27 | //let csv = split.next().unwrap(); 28 | let date_time = NaiveDateTime::parse_from_str(&date_time, "%Y/%m/%d %X.%3f").unwrap(); 29 | //handle_line(&state, csv); 30 | match time_of_last { 31 | Some(last_time) => { 32 | let time_chunk = date_time.signed_duration_since(last_time).to_std().unwrap(); 33 | if time_chunk > Duration::from_millis(300) { 34 | thread::sleep(time_chunk); 35 | time_of_last = Some(date_time); 36 | } else { 37 | } 38 | } 39 | None => { 40 | time_of_last = Some(date_time); 41 | } 42 | }; 43 | } 44 | Ok(()) 45 | } 46 | -------------------------------------------------------------------------------- /src/log_watchers/log_dispatcher.rs: -------------------------------------------------------------------------------- 1 | use std::{sync::Arc, thread}; 2 | 3 | use crossbeam::channel::{unbounded, Receiver}; 4 | use ipc_channel::ipc::IpcSender; 5 | use parking_lot::Mutex; 6 | 7 | use super::{file_replayer, file_watcher}; 8 | 9 | pub struct LogDispatcher { 10 | _aura_channels: Arc>>>, 11 | } 12 | 13 | impl LogDispatcher { 14 | pub fn new(path: String, replay: bool, aura_channels: Vec>) -> Self { 15 | let (tx, rx) = unbounded(); 16 | let _aura_channels = Arc::new(Mutex::new(aura_channels)); 17 | let aura_channels_clone = _aura_channels.clone(); 18 | let log_receiver = rx; 19 | let log_sender = tx; 20 | thread::spawn(move || { 21 | if replay { 22 | file_replayer(path, log_sender).unwrap(); 23 | } else { 24 | file_watcher(path, log_sender).unwrap(); 25 | } 26 | }); 27 | thread::spawn(move || Self::dispatch_logs(aura_channels_clone, log_receiver)); 28 | 29 | Self { _aura_channels } 30 | } 31 | 32 | fn dispatch_logs( 33 | aura_channels: Arc>>>, 34 | log_receiver: Receiver, 35 | ) { 36 | loop { 37 | match log_receiver.recv() { 38 | Ok(log_line) => { 39 | for aura_channel in aura_channels.lock().iter() { 40 | aura_channel.send(log_line.clone()).unwrap(); 41 | } 42 | } 43 | Err(e) => println!("Error dispatching log: {e}"), 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/log_watchers/file_watcher.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | fs::File, 3 | io::{BufRead, BufReader, Seek, SeekFrom}, 4 | time::Instant, 5 | }; 6 | 7 | use crossbeam::channel::{unbounded, Sender}; 8 | use notify::{Config, RecommendedWatcher, RecursiveMode, Watcher}; 9 | 10 | pub fn file_watcher(path: String, channel: Sender) -> notify::Result<()> { 11 | // get file 12 | println!("Started with {:?}", path); 13 | // get pos to end of file 14 | let mut f = File::open(&path)?; 15 | let mut pos = f.metadata()?.len(); 16 | 17 | // set up watcher 18 | let (tx, rx) = unbounded(); 19 | let mut watcher = RecommendedWatcher::new(tx, Config::default())?; 20 | watcher.watch(path.as_ref(), RecursiveMode::NonRecursive)?; 21 | 22 | let mut last_event = Instant::now(); 23 | 24 | // watch 25 | for res in rx { 26 | match res { 27 | Ok(_event) => { 28 | println!("ms since last event: {}", last_event.elapsed().as_millis()); 29 | last_event = Instant::now(); 30 | // ignore any event that didn't change the pos 31 | if f.metadata()?.len() == pos { 32 | continue; 33 | } 34 | 35 | // read from pos to end of file 36 | f.seek(SeekFrom::Start(pos + 1))?; 37 | 38 | // update post to end of file 39 | let tmp_pos = f.metadata()?.len(); 40 | 41 | let reader = BufReader::new(&f); 42 | for line in reader.lines() { 43 | let line = line.unwrap(); 44 | channel.send(line).unwrap(); 45 | pos = tmp_pos; 46 | } 47 | } 48 | Err(error) => println!("{error:?}"), 49 | } 50 | } 51 | 52 | Ok(()) 53 | } 54 | -------------------------------------------------------------------------------- /src/main_window.rs: -------------------------------------------------------------------------------- 1 | use lazy_static::lazy_static; 2 | 3 | use eframe::egui; 4 | use parking_lot::Mutex; 5 | 6 | pub struct App {} 7 | 8 | lazy_static! { 9 | pub static ref REPLAY: Mutex = Mutex::new(false); 10 | pub static ref PLAYER_LIST: Mutex = Mutex::new(String::new()); 11 | pub static ref LOG_FILE: Mutex = Mutex::new(String::new()); 12 | } 13 | 14 | impl App { 15 | pub fn spawn() { 16 | let options = eframe::NativeOptions { 17 | initial_window_size: Some(egui::vec2(325.0, 250.0)), 18 | run_and_return: true, 19 | ..Default::default() 20 | }; 21 | eframe::run_native("Outside Auras", options, Box::new(|_cc| Box::new(App {}))).unwrap(); 22 | } 23 | } 24 | 25 | impl eframe::App for App { 26 | fn update(&mut self, ctx: &egui::Context, _window_frame: &mut eframe::Frame) { 27 | egui::CentralPanel::default().show(ctx, |ui| { 28 | // The central panel the region left after adding TopPanel's and SidePanel's 29 | 30 | ui.heading("OutsideAuras"); 31 | ui.label("Enter the full path to logfile"); 32 | let mut logfile = LOG_FILE.lock().clone(); 33 | if egui::TextEdit::singleline(&mut logfile).hint_text("C:\\Program Files (x86)\\World of Warcraft\\_retail_\\Logs\\WoWCombatLog-081223_203440").show(ui).response.changed() { 34 | *LOG_FILE.lock() = logfile.clone(); 35 | } 36 | ui.label("Enter players for custom sorting"); 37 | let mut player_list = PLAYER_LIST.lock().clone(); 38 | if egui::TextEdit::multiline(&mut player_list).hint_text("Dratnos\nTettles\nMagePlayer\n..").show(ui).response.changed() { 39 | *PLAYER_LIST.lock() = player_list.clone(); 40 | } 41 | let mut replay_selected = REPLAY.lock().clone(); 42 | if ui.checkbox(&mut replay_selected, "Replay old log").changed() { 43 | *REPLAY.lock() = replay_selected; 44 | } 45 | if ui.button("Start auras").clicked() { 46 | _window_frame.close(); 47 | } 48 | }); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/auras/delay_display.rs: -------------------------------------------------------------------------------- 1 | use std::{sync::Arc, thread, time::Instant}; 2 | 3 | use eframe::egui; 4 | use ipc_channel::ipc::{self, IpcOneShotServer, IpcReceiver, IpcSender}; 5 | use parking_lot::Mutex; 6 | use procspawn::JoinHandle; 7 | 8 | pub struct Aura { 9 | shared_state: Arc>, 10 | } 11 | 12 | struct State { 13 | last_event: Instant, 14 | last_delay: u32, 15 | ctx: egui::Context, 16 | } 17 | 18 | impl Aura { 19 | pub fn new(cc: &eframe::CreationContext<'_>, log_receiver: IpcReceiver) -> Self { 20 | let ctx = cc.egui_ctx.clone(); 21 | let shared_state = Arc::new(Mutex::new(State { 22 | last_event: Instant::now(), 23 | last_delay: 0, 24 | ctx, 25 | })); 26 | let state_clone = shared_state.clone(); 27 | thread::spawn(move || loop { 28 | match log_receiver.recv() { 29 | Ok(s) => Self::handle_log_line(&state_clone, &s), 30 | Err(e) => println!("Error receiving log: {e}"), 31 | } 32 | }); 33 | 34 | Self { shared_state } 35 | } 36 | 37 | //TODO: make this more generic 38 | pub fn spawn() -> (JoinHandle<()>, IpcSender) { 39 | let (server, server_name) = IpcOneShotServer::new().unwrap(); 40 | let handle = procspawn::spawn(server_name, |server_name| { 41 | let (tx, log_receiver) = ipc::channel::().unwrap(); 42 | let tx0 = IpcSender::connect(server_name).unwrap(); 43 | tx0.send(tx).unwrap(); 44 | let options = eframe::NativeOptions { 45 | initial_window_size: Some(egui::vec2(127.0, 25.0)), 46 | decorated: false, 47 | always_on_top: true, 48 | mouse_passthrough: false, 49 | transparent: false, 50 | ..Default::default() 51 | }; 52 | eframe::run_native( 53 | "Delay display", 54 | options, 55 | Box::new(|cc| Box::new(Aura::new(cc, log_receiver))), 56 | ) 57 | .unwrap(); 58 | }); 59 | let (_, log_sender): (_, IpcSender) = server.accept().unwrap(); 60 | (handle, log_sender) 61 | } 62 | 63 | fn handle_log_line(state: &Arc>, _line: &str) { 64 | let mut state = state.lock(); 65 | let delay = state.last_event.elapsed().as_millis() as u32; 66 | state.last_event = Instant::now(); 67 | if delay > 10 { 68 | state.last_delay = delay; 69 | state.ctx.request_repaint(); 70 | } 71 | } 72 | } 73 | 74 | impl eframe::App for Aura { 75 | fn update(&mut self, ctx: &egui::Context, _window_frame: &mut eframe::Frame) { 76 | egui::CentralPanel::default().show(ctx, |ui| { 77 | ui.label(format!( 78 | "Current delay: {}", 79 | self.shared_state.lock().last_delay 80 | )); 81 | _window_frame.drag_window(); 82 | }); 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/auras/list_aura.rs: -------------------------------------------------------------------------------- 1 | use super::AuraItem; 2 | use eframe::{ 3 | egui, 4 | epaint::{Color32, Pos2, Rect, Rounding, Shadow, Vec2}, 5 | }; 6 | 7 | pub trait ListAura { 8 | fn required_size(&self) -> Vec2; 9 | 10 | fn item_height(&self) -> f32; 11 | 12 | fn item_width(&self) -> f32; 13 | 14 | fn items(&self) -> Vec; 15 | 16 | fn eframe_update(&mut self, ctx: &egui::Context, window_frame: &mut eframe::Frame) { 17 | let my_frame = egui::containers::Frame::none() 18 | .fill(Color32::WHITE) 19 | .shadow(Shadow::NONE); 20 | 21 | egui::CentralPanel::default() 22 | .frame(my_frame) 23 | .show(ctx, |ui| { 24 | let ui_max = self.required_size(); 25 | 26 | window_frame.set_window_size(ui_max); 27 | 28 | let dimensions = Rect { 29 | min: Pos2::new(0.0, 0.0), 30 | max: ui_max.to_pos2(), 31 | }; 32 | 33 | let painter = ui.painter_at(dimensions); 34 | 35 | let uv = Rect::from_min_max([0.0, 0.0].into(), [1.0, 1.0].into()); 36 | 37 | let item_height = self.item_height(); 38 | 39 | for (i, item) in self.items().iter().enumerate() { 40 | let i = i as f32; 41 | 42 | if let Some(b) = &item.background { 43 | let dimensions_background = Rect { 44 | min: Pos2::new(0.0, i * item_height), 45 | max: Pos2::new(b.width, i * item_height + b.height), 46 | }; 47 | 48 | painter.rect_filled(dimensions_background, Rounding::none(), b.color); 49 | } 50 | 51 | if let Some(ic) = &item.icon { 52 | let ih = ic.height; 53 | let iw = ic.width; 54 | let dimensions = Rect { 55 | min: Pos2::new(0.0, i * item_height), 56 | max: Pos2::new(iw, item_height * i + ih), 57 | }; 58 | 59 | painter.image(ic.image.id(), dimensions, uv, Color32::WHITE); 60 | } 61 | 62 | if let Some(t) = &item.icon_text { 63 | let x_off = t.x_offset; 64 | let y_off = t.y_offset; 65 | 66 | painter.text( 67 | [x_off, (i * item_height) + y_off].into(), 68 | t.anchor, 69 | t.content.clone(), 70 | t.font.clone(), 71 | t.color, 72 | ); 73 | } 74 | 75 | if let Some(t) = &item.text { 76 | let x_off = t.x_offset; 77 | let y_off = t.y_offset; 78 | 79 | painter.text( 80 | [x_off, (i * item_height) + y_off].into(), 81 | t.anchor, 82 | t.content.clone(), 83 | t.font.clone(), 84 | t.color, 85 | ); 86 | } 87 | } 88 | }); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Outside Auras 2 | 3 | Proof of concept for wow overlays using live log data 4 | 5 | ![Showcaseimg](https://i.imgur.com/wEOlkJp.png) 6 | 7 | ## ARCHIVE NOTICE: Blizzard has announced this will be fixed next patch, this the repo will be archived, note it's most likely against the TOS to use this in an actual progression fight 8 | 9 | ## How do I run it? 10 | 11 | Disclaimer this may be against the TOS 12 | 13 | 1. Download the latest version from https://github.com/Urcra/outside-auras/releases/tag/1.0 14 | 2. Extract the archive 15 | 3. Double click the .exe file 16 | 4. Start combatlogging ingame via `/combatlog` 17 | 5. Enter the path of the most recent combatlog file into the main window 18 | 6. Click start aura, the main window will dissapear, and the auras will appear when the logs trigger them 19 | 20 | 21 | ## Why 22 | 23 | Personally I have known this was possible for a long time, but actually thought the delay would have been too bad. But after seeing that WarcraftLogs was going to do an overlay using the logdata(https://twitter.com/WarcraftLogs/status/1686485331346948098). And testing what the delay actually was in a raid group. I felt I needed to shed some light on the potential road we are heading towards 24 | 25 | 26 | ## How does it work 27 | 28 | By reading the combatlog that wow saves to the disk, over the years the delay between the writes have gone down. And now in a 20 player raid we are looking at an average delay of 300ms from the ingame event to seeing it on the disk, which make it almost imperceptible. 29 | 30 | ## Showcase 31 | 32 | See the video at https://youtu.be/VvQ7O4N8rtk heroic neltharion. The "last delay" shows the delay between our reads of the logfiles. Under this you will see the Volcanic Heart aura pop up, happens first time at 00:19. Note that there is almost no perceptible delay between the outside aura and the actual game. 33 | 34 | The showcase was recorded by gathering the log data with the delays, and then recording it playing over a video. 35 | 36 | Again this is just a showcase I hope no-one uses this for actual progression 37 | 38 | ## Consequences 39 | 40 | The combatlog that's written to the disk contains a lot of information that's not normally available to ingame addons/weakauras due to them being abused over they years. Some notable examples are private auras(as I'm showcasing with the neltharion aura), player positions(example of an old aura that could be possible again: https://youtu.be/Vx6ipbVOWvY?t=220). In general just take a look at the replay feature from WarcraftLogs, and then imagine it running as an overlay with 300 ms delay. 41 | 42 | There are also some ways of reducing the delay which I won't get in to here. But it would most likely be doable to create a version with around 50ms delay 43 | 44 | ## How can it be fixed 45 | Only flush the logs to the disk after the encounter is over 46 | 47 | 48 | ## Why even release it? 49 | 50 | Showing is better than telling and creating this is trivial. It's literally just watching a file being written to. If I didn't then somebody else would have made some private version of this, when it's revealed that it's possible. Or worse somebody would make an Overwolf app 51 | 52 | 53 | ## I don't trust your exe how can I build it myself 54 | 55 | Good never trust random strangers, install cargo pull the repo `cargo build`. If the window is invisible you might have to apply the bug fix manually from https://github.com/emilk/egui/issues/2537 56 | 57 | 58 | ### Extra patch 59 | ```rust 60 | fn create_event_loop_builder( 61 | native_options: &mut epi::NativeOptions, 62 | ) -> EventLoopBuilder { 63 | let mut event_loop_builder = winit::event_loop::EventLoopBuilder::with_user_event(); 64 | +++ event_loop_builder.with_any_thread(true); 65 | 66 | if let Some(hook) = std::mem::take(&mut native_options.event_loop_builder) { 67 | hook(&mut event_loop_builder); 68 | } 69 | 70 | event_loop_builder 71 | } 72 | ``` 73 | -------------------------------------------------------------------------------- /src/auras/lua_aura.rs: -------------------------------------------------------------------------------- 1 | use std::{sync::Arc, thread}; 2 | 3 | use eframe::{ 4 | egui::{self}, 5 | emath::Align2, 6 | epaint::{Color32, FontId, TextureHandle, Vec2}, 7 | }; 8 | use ipc_channel::ipc::{self, IpcOneShotServer, IpcReceiver, IpcSender}; 9 | use parking_lot::Mutex; 10 | use procspawn::JoinHandle; 11 | use rlua::{Function, Lua}; 12 | 13 | use crate::utils::load_image_from_path; 14 | 15 | use super::{list_aura::ListAura, AuraBackground, AuraIcon, AuraItem, AuraText}; 16 | 17 | pub struct Aura { 18 | shared_state: Arc>, 19 | icon: TextureHandle, 20 | } 21 | 22 | struct SharedState { 23 | ctx: egui::Context, 24 | lua: Lua, 25 | } 26 | 27 | impl ListAura for Aura { 28 | fn required_size(&self) -> Vec2 { 29 | self.shared_state.lock().lua.context(|ctx| { 30 | let globals = ctx.globals(); 31 | let required_size_x_fun: Function = globals.get("required_height").unwrap(); 32 | let size_y = required_size_x_fun.call::<(), f32>(()).unwrap(); 33 | let required_size_y_fun: Function = globals.get("required_width").unwrap(); 34 | let size_x = required_size_y_fun.call::<(), f32>(()).unwrap(); 35 | Vec2 { 36 | x: size_x, 37 | y: size_y, 38 | } 39 | }) 40 | } 41 | 42 | fn item_height(&self) -> f32 { 43 | self.shared_state.lock().lua.context(|ctx| { 44 | let globals = ctx.globals(); 45 | let item_height_fun: Function = globals.get("item_height").unwrap(); 46 | item_height_fun.call::<(), f32>(()).unwrap() 47 | }) 48 | } 49 | 50 | fn item_width(&self) -> f32 { 51 | self.shared_state.lock().lua.context(|ctx| { 52 | let globals = ctx.globals(); 53 | let item_width_fun: Function = globals.get("item_width").unwrap(); 54 | item_width_fun.call::<(), f32>(()).unwrap() 55 | }) 56 | } 57 | 58 | fn items(&self) -> Vec { 59 | let lua_items = self.shared_state.lock().lua.context(|ctx| { 60 | let globals = ctx.globals(); 61 | let items_fun: Function = globals.get("items").unwrap(); 62 | items_fun.call::<(), Vec>>(()).unwrap() 63 | }); 64 | 65 | let lua_items: Vec<(String, String)> = lua_items 66 | .iter() 67 | .map(|e| (e[0].clone(), e[1].clone())) 68 | .collect(); 69 | 70 | let icon_text_font = FontId::monospace(40.0); 71 | let icon_text_color = Color32::WHITE; 72 | let icon_text_align = Align2::CENTER_CENTER; 73 | let icon_text_offset = 56.0 / 2.0; 74 | 75 | let text_font = FontId::monospace(25.0); 76 | let text_color = Color32::WHITE; 77 | let text_align = Align2::LEFT_CENTER; 78 | let text_y_offset = 56.0 / 2.0; 79 | let text_x_offset = 66.0; 80 | 81 | let background = AuraBackground { 82 | color: Color32::DARK_GRAY, 83 | width: 256.0, 84 | height: 56.0, 85 | }; 86 | 87 | let mut items = vec![]; 88 | 89 | for (icon_string, content_string) in lua_items.iter() { 90 | let icon_text = AuraText { 91 | content: icon_string.clone(), 92 | anchor: icon_text_align, 93 | font: icon_text_font.clone(), 94 | color: icon_text_color, 95 | x_offset: icon_text_offset, 96 | y_offset: icon_text_offset, 97 | }; 98 | 99 | let text = AuraText { 100 | content: content_string.clone(), 101 | anchor: text_align, 102 | font: text_font.clone(), 103 | color: text_color, 104 | x_offset: text_x_offset, 105 | y_offset: text_y_offset, 106 | }; 107 | 108 | let item = AuraItem { 109 | icon: Some(self.icon()), 110 | icon_text: Some(icon_text), 111 | text: Some(text), 112 | background: Some(background), 113 | }; 114 | items.push(item); 115 | } 116 | items 117 | } 118 | } 119 | 120 | impl Aura { 121 | pub fn new( 122 | cc: &eframe::CreationContext<'_>, 123 | log_receiver: IpcReceiver, 124 | lua_script: String, 125 | ) -> Self { 126 | let lua = Lua::new(); 127 | lua.context(|ctx| { 128 | let globals = ctx.globals(); 129 | let table = ctx.create_table().unwrap(); 130 | globals.set("aura_env", table).unwrap(); 131 | ctx.load(&lua_script).exec().unwrap(); 132 | }); 133 | 134 | let ctx = cc.egui_ctx.clone(); 135 | let image = load_image_from_path("res/lua_icon.jpg").unwrap(); 136 | let icon = ctx.load_texture("lua-icon", image, Default::default()); 137 | let shared_state = Arc::new(Mutex::new(SharedState { ctx, lua })); 138 | let state_clone = shared_state.clone(); 139 | thread::spawn(move || loop { 140 | match log_receiver.recv() { 141 | Ok(s) => Self::handle_log_line(&state_clone, &s), 142 | Err(e) => println!("Error receiving log: {e}"), 143 | } 144 | }); 145 | 146 | Self { shared_state, icon } 147 | } 148 | 149 | //TODO: make this more generic 150 | pub fn spawn(lua_script: String) -> (JoinHandle<()>, IpcSender) { 151 | let (server, server_name) = IpcOneShotServer::new().unwrap(); 152 | let handle = procspawn::spawn((server_name, lua_script), |(server_name, lua_script)| { 153 | let (tx, log_receiver) = ipc::channel::().unwrap(); 154 | let tx0 = IpcSender::connect(server_name).unwrap(); 155 | tx0.send(tx).unwrap(); 156 | let options = eframe::NativeOptions { 157 | // 527.0, 454.0 158 | initial_window_size: Some(egui::vec2(127.0, 154.0)), 159 | decorated: false, 160 | always_on_top: true, 161 | mouse_passthrough: false, 162 | transparent: false, 163 | ..Default::default() 164 | }; 165 | eframe::run_native( 166 | "Lua aura", 167 | options, 168 | Box::new(|cc| Box::new(Aura::new(cc, log_receiver, lua_script))), 169 | ) 170 | .unwrap(); 171 | }); 172 | let (_, log_sender): (_, IpcSender) = server.accept().unwrap(); 173 | (handle, log_sender) 174 | } 175 | 176 | fn handle_log_line(state: &Arc>, line: &str) { 177 | let line = line.to_string(); 178 | 179 | let should_redraw = state.lock().lua.context(|ctx| { 180 | let globals = ctx.globals(); 181 | let handle_log_line_fun: Function = globals.get("handle_log_line").unwrap(); 182 | handle_log_line_fun.call::(line).unwrap() 183 | }); 184 | 185 | if should_redraw { 186 | state.lock().ctx.request_repaint(); 187 | } 188 | } 189 | 190 | fn icon(&self) -> AuraIcon { 191 | AuraIcon { 192 | image: &self.icon, 193 | height: 56.0, 194 | width: 56.0, 195 | } 196 | } 197 | } 198 | 199 | impl eframe::App for Aura { 200 | fn update(&mut self, ctx: &egui::Context, window_frame: &mut eframe::Frame) { 201 | window_frame.drag_window(); 202 | self.eframe_update(ctx, window_frame) 203 | } 204 | } 205 | -------------------------------------------------------------------------------- /src/auras/nelth_aura.rs: -------------------------------------------------------------------------------- 1 | use std::{sync::Arc, thread}; 2 | 3 | use eframe::{ 4 | egui::{self}, 5 | emath::Align2, 6 | epaint::{Color32, FontId, TextureHandle, Vec2}, 7 | }; 8 | use ipc_channel::ipc::{self, IpcOneShotServer, IpcReceiver, IpcSender}; 9 | use parking_lot::Mutex; 10 | use procspawn::JoinHandle; 11 | 12 | use crate::utils::load_image_from_path; 13 | 14 | use super::{list_aura::ListAura, AuraBackground, AuraIcon, AuraItem, AuraText}; 15 | 16 | pub struct NelthAura { 17 | shared_state: Arc>, 18 | icon: TextureHandle, 19 | player_list: Vec, 20 | } 21 | 22 | struct NelthSharedState { 23 | volanic_hearts: Vec, 24 | ctx: egui::Context, 25 | } 26 | 27 | impl ListAura for NelthAura { 28 | fn required_size(&self) -> Vec2 { 29 | let height = self.shared_state.lock().volanic_hearts.len() as f32 * self.item_height(); 30 | let width = self.item_width(); 31 | Vec2 { 32 | x: width, 33 | y: height, 34 | } 35 | } 36 | 37 | fn item_height(&self) -> f32 { 38 | 56.0 39 | } 40 | 41 | fn item_width(&self) -> f32 { 42 | 256.0 43 | } 44 | 45 | fn items(&self) -> Vec { 46 | let mut items = Vec::new(); 47 | 48 | let icon_text_font = FontId::monospace(40.0); 49 | let icon_text_color = Color32::WHITE; 50 | let icon_text_align = Align2::CENTER_CENTER; 51 | let icon_text_offset = 56.0 / 2.0; 52 | 53 | let text_font = FontId::monospace(25.0); 54 | let text_color = Color32::WHITE; 55 | let text_align = Align2::LEFT_CENTER; 56 | let text_y_offset = 56.0 / 2.0; 57 | let text_x_offset = 66.0; 58 | 59 | let background = AuraBackground { 60 | color: Color32::DARK_GRAY, 61 | width: 256.0, 62 | height: 56.0, 63 | }; 64 | 65 | let mut hearts = self.shared_state.lock().volanic_hearts.clone(); 66 | hearts.sort_by_key(|v| self.player_list.iter().position(|p| p == v).unwrap_or(0)); 67 | for (i, player_name) in hearts.iter().enumerate() { 68 | let icon_text = AuraText { 69 | content: (i + 1).to_string(), 70 | anchor: icon_text_align, 71 | font: icon_text_font.clone(), 72 | color: icon_text_color, 73 | x_offset: icon_text_offset, 74 | y_offset: icon_text_offset, 75 | }; 76 | 77 | let text = AuraText { 78 | content: player_name.clone(), 79 | anchor: text_align, 80 | font: text_font.clone(), 81 | color: text_color, 82 | x_offset: text_x_offset, 83 | y_offset: text_y_offset, 84 | }; 85 | 86 | let item = AuraItem { 87 | icon: Some(self.icon()), 88 | icon_text: Some(icon_text), 89 | text: Some(text), 90 | background: Some(background), 91 | }; 92 | items.push(item); 93 | } 94 | items 95 | } 96 | } 97 | 98 | impl NelthAura { 99 | pub fn new( 100 | cc: &eframe::CreationContext<'_>, 101 | log_receiver: IpcReceiver, 102 | player_list: Vec, 103 | ) -> Self { 104 | let ctx = cc.egui_ctx.clone(); 105 | let image = load_image_from_path("res/inv_wildfirebomb_blood.jpg").unwrap(); 106 | let icon = ctx.load_texture("volcanic-heartbeat", image, Default::default()); 107 | let shared_state = Arc::new(Mutex::new(NelthSharedState { 108 | volanic_hearts: vec![], 109 | ctx, 110 | })); 111 | let state_clone = shared_state.clone(); 112 | thread::spawn(move || loop { 113 | match log_receiver.recv() { 114 | Ok(s) => Self::handle_log_line(&state_clone, &s), 115 | Err(e) => println!("Error receiving log: {e}"), 116 | } 117 | }); 118 | 119 | Self { 120 | shared_state, 121 | icon, 122 | player_list, 123 | } 124 | } 125 | 126 | //TODO: make this more generic 127 | pub fn spawn(player_list: String) -> (JoinHandle<()>, IpcSender) { 128 | let (server, server_name) = IpcOneShotServer::new().unwrap(); 129 | let handle = procspawn::spawn((server_name, player_list), |(server_name, player_list)| { 130 | let (tx, log_receiver) = ipc::channel::().unwrap(); 131 | let tx0 = IpcSender::connect(server_name).unwrap(); 132 | tx0.send(tx).unwrap(); 133 | let options = eframe::NativeOptions { 134 | // 527.0, 454.0 135 | initial_window_size: Some(egui::vec2(127.0, 154.0)), 136 | decorated: false, 137 | always_on_top: true, 138 | mouse_passthrough: false, 139 | transparent: false, 140 | ..Default::default() 141 | }; 142 | let mut player_list_fixed = Vec::new(); 143 | for player in player_list.lines() { 144 | let player = player.trim().to_string(); 145 | if !player.is_empty() { 146 | player_list_fixed.push(player); 147 | } 148 | } 149 | eframe::run_native( 150 | "Volcanic hearts", 151 | options, 152 | Box::new(|cc| Box::new(NelthAura::new(cc, log_receiver, player_list_fixed))), 153 | ) 154 | .unwrap(); 155 | }); 156 | let (_, log_sender): (_, IpcSender) = server.accept().unwrap(); 157 | (handle, log_sender) 158 | } 159 | 160 | fn handle_log_line(state: &Arc>, line: &str) { 161 | let mut split = line.split(" "); 162 | let _date_time = split.next().unwrap().trim(); 163 | let csv = split.next().unwrap(); 164 | 165 | let mut csv = csv.split(","); 166 | let event_type = csv.next().unwrap(); 167 | 168 | match event_type { 169 | "ENCOUNTER_START" | "ENCOUNTER_END" => { 170 | state.lock().volanic_hearts.clear(); 171 | } 172 | "SPELL_AURA_APPLIED" => { 173 | let _caster_guid = csv.next().unwrap(); 174 | let _caster_name = csv.next().unwrap(); 175 | let _ = csv.next().unwrap(); 176 | let _ = csv.next().unwrap(); 177 | let _target_guid = csv.next().unwrap(); 178 | let target_name = csv.next().unwrap(); 179 | let _ = csv.next().unwrap(); 180 | let _ = csv.next().unwrap(); 181 | let _ = csv.next().unwrap(); 182 | let spell_name = csv.next().unwrap(); 183 | if spell_name == "\"Volcanic Heartbeat\"" { 184 | let name = target_name.split_once("-").unwrap().0[1..].to_string(); 185 | state.lock().volanic_hearts.push(name); 186 | state.lock().ctx.request_repaint(); 187 | } 188 | } 189 | "SPELL_AURA_REMOVED" => { 190 | let _caster_guid = csv.next().unwrap(); 191 | let _caster_name = csv.next().unwrap(); 192 | let _ = csv.next().unwrap(); 193 | let _ = csv.next().unwrap(); 194 | let _target_guid = csv.next().unwrap(); 195 | let target_name = csv.next().unwrap(); 196 | let _ = csv.next().unwrap(); 197 | let _ = csv.next().unwrap(); 198 | let _ = csv.next().unwrap(); 199 | let spell_name = csv.next().unwrap(); 200 | if spell_name == "\"Volcanic Heartbeat\"" { 201 | let name = &target_name.split_once("-").unwrap().0[1..].to_string(); 202 | state.lock().volanic_hearts.retain(|e| e != name); 203 | state.lock().ctx.request_repaint(); 204 | } 205 | } 206 | _ => {} 207 | } 208 | } 209 | 210 | fn icon(&self) -> AuraIcon { 211 | AuraIcon { 212 | image: &self.icon, 213 | height: 56.0, 214 | width: 56.0, 215 | } 216 | } 217 | } 218 | 219 | impl eframe::App for NelthAura { 220 | fn update(&mut self, ctx: &egui::Context, window_frame: &mut eframe::Frame) { 221 | self.eframe_update(ctx, window_frame) 222 | } 223 | } 224 | -------------------------------------------------------------------------------- /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 = "ab_glyph" 7 | version = "0.2.21" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39" 10 | dependencies = [ 11 | "ab_glyph_rasterizer", 12 | "owned_ttf_parser", 13 | ] 14 | 15 | [[package]] 16 | name = "ab_glyph_rasterizer" 17 | version = "0.1.8" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" 20 | 21 | [[package]] 22 | name = "accesskit" 23 | version = "0.11.2" 24 | source = "registry+https://github.com/rust-lang/crates.io-index" 25 | checksum = "76eb1adf08c5bcaa8490b9851fd53cca27fa9880076f178ea9d29f05196728a8" 26 | 27 | [[package]] 28 | name = "accesskit_consumer" 29 | version = "0.15.2" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "04bb4d9e4772fe0d47df57d0d5dbe5d85dd05e2f37ae1ddb6b105e76be58fb00" 32 | dependencies = [ 33 | "accesskit", 34 | ] 35 | 36 | [[package]] 37 | name = "accesskit_macos" 38 | version = "0.9.0" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "134d0acf6acb667c89d3332999b1a5df4edbc8d6113910f392ebb73f2b03bb56" 41 | dependencies = [ 42 | "accesskit", 43 | "accesskit_consumer", 44 | "objc2", 45 | "once_cell", 46 | ] 47 | 48 | [[package]] 49 | name = "accesskit_unix" 50 | version = "0.5.2" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "e084cb5168790c0c112626175412dc5ad127083441a8248ae49ddf6725519e83" 53 | dependencies = [ 54 | "accesskit", 55 | "accesskit_consumer", 56 | "async-channel", 57 | "atspi", 58 | "futures-lite", 59 | "serde", 60 | "zbus", 61 | ] 62 | 63 | [[package]] 64 | name = "accesskit_windows" 65 | version = "0.14.3" 66 | source = "registry+https://github.com/rust-lang/crates.io-index" 67 | checksum = "9eac0a7f2d7cd7a93b938af401d3d8e8b7094217989a7c25c55a953023436e31" 68 | dependencies = [ 69 | "accesskit", 70 | "accesskit_consumer", 71 | "arrayvec", 72 | "once_cell", 73 | "paste", 74 | "windows", 75 | ] 76 | 77 | [[package]] 78 | name = "accesskit_winit" 79 | version = "0.14.4" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "825d23acee1bd6d25cbaa3ca6ed6e73faf24122a774ec33d52c5c86c6ab423c0" 82 | dependencies = [ 83 | "accesskit", 84 | "accesskit_macos", 85 | "accesskit_unix", 86 | "accesskit_windows", 87 | "winit", 88 | ] 89 | 90 | [[package]] 91 | name = "addr2line" 92 | version = "0.20.0" 93 | source = "registry+https://github.com/rust-lang/crates.io-index" 94 | checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" 95 | dependencies = [ 96 | "gimli", 97 | ] 98 | 99 | [[package]] 100 | name = "adler" 101 | version = "1.0.2" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 104 | 105 | [[package]] 106 | name = "ahash" 107 | version = "0.8.3" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" 110 | dependencies = [ 111 | "cfg-if 1.0.0", 112 | "once_cell", 113 | "version_check", 114 | ] 115 | 116 | [[package]] 117 | name = "aho-corasick" 118 | version = "1.0.2" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" 121 | dependencies = [ 122 | "memchr", 123 | ] 124 | 125 | [[package]] 126 | name = "android-activity" 127 | version = "0.4.3" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" 130 | dependencies = [ 131 | "android-properties", 132 | "bitflags 1.3.2", 133 | "cc", 134 | "jni-sys", 135 | "libc", 136 | "log", 137 | "ndk", 138 | "ndk-context", 139 | "ndk-sys", 140 | "num_enum 0.6.1", 141 | ] 142 | 143 | [[package]] 144 | name = "android-properties" 145 | version = "0.2.2" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 148 | 149 | [[package]] 150 | name = "android-tzdata" 151 | version = "0.1.1" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 154 | 155 | [[package]] 156 | name = "android_system_properties" 157 | version = "0.1.5" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 160 | dependencies = [ 161 | "libc", 162 | ] 163 | 164 | [[package]] 165 | name = "arboard" 166 | version = "3.2.0" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854" 169 | dependencies = [ 170 | "clipboard-win", 171 | "log", 172 | "objc", 173 | "objc-foundation", 174 | "objc_id", 175 | "once_cell", 176 | "parking_lot", 177 | "thiserror", 178 | "winapi 0.3.9", 179 | "x11rb", 180 | ] 181 | 182 | [[package]] 183 | name = "arrayref" 184 | version = "0.3.7" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 187 | 188 | [[package]] 189 | name = "arrayvec" 190 | version = "0.7.4" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 193 | 194 | [[package]] 195 | name = "async-broadcast" 196 | version = "0.5.1" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" 199 | dependencies = [ 200 | "event-listener", 201 | "futures-core", 202 | ] 203 | 204 | [[package]] 205 | name = "async-channel" 206 | version = "1.9.0" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" 209 | dependencies = [ 210 | "concurrent-queue", 211 | "event-listener", 212 | "futures-core", 213 | ] 214 | 215 | [[package]] 216 | name = "async-executor" 217 | version = "1.5.1" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" 220 | dependencies = [ 221 | "async-lock", 222 | "async-task", 223 | "concurrent-queue", 224 | "fastrand 1.9.0", 225 | "futures-lite", 226 | "slab", 227 | ] 228 | 229 | [[package]] 230 | name = "async-fs" 231 | version = "1.6.0" 232 | source = "registry+https://github.com/rust-lang/crates.io-index" 233 | checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" 234 | dependencies = [ 235 | "async-lock", 236 | "autocfg", 237 | "blocking", 238 | "futures-lite", 239 | ] 240 | 241 | [[package]] 242 | name = "async-io" 243 | version = "1.13.0" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" 246 | dependencies = [ 247 | "async-lock", 248 | "autocfg", 249 | "cfg-if 1.0.0", 250 | "concurrent-queue", 251 | "futures-lite", 252 | "log", 253 | "parking", 254 | "polling", 255 | "rustix 0.37.23", 256 | "slab", 257 | "socket2", 258 | "waker-fn", 259 | ] 260 | 261 | [[package]] 262 | name = "async-lock" 263 | version = "2.7.0" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" 266 | dependencies = [ 267 | "event-listener", 268 | ] 269 | 270 | [[package]] 271 | name = "async-process" 272 | version = "1.7.0" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" 275 | dependencies = [ 276 | "async-io", 277 | "async-lock", 278 | "autocfg", 279 | "blocking", 280 | "cfg-if 1.0.0", 281 | "event-listener", 282 | "futures-lite", 283 | "rustix 0.37.23", 284 | "signal-hook", 285 | "windows-sys 0.48.0", 286 | ] 287 | 288 | [[package]] 289 | name = "async-recursion" 290 | version = "1.0.4" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" 293 | dependencies = [ 294 | "proc-macro2", 295 | "quote", 296 | "syn 2.0.28", 297 | ] 298 | 299 | [[package]] 300 | name = "async-task" 301 | version = "4.4.0" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" 304 | 305 | [[package]] 306 | name = "async-trait" 307 | version = "0.1.72" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" 310 | dependencies = [ 311 | "proc-macro2", 312 | "quote", 313 | "syn 2.0.28", 314 | ] 315 | 316 | [[package]] 317 | name = "atomic-waker" 318 | version = "1.1.1" 319 | source = "registry+https://github.com/rust-lang/crates.io-index" 320 | checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" 321 | 322 | [[package]] 323 | name = "atomic_refcell" 324 | version = "0.1.10" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31" 327 | 328 | [[package]] 329 | name = "atspi" 330 | version = "0.10.1" 331 | source = "registry+https://github.com/rust-lang/crates.io-index" 332 | checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa" 333 | dependencies = [ 334 | "async-recursion", 335 | "async-trait", 336 | "atspi-macros", 337 | "enumflags2", 338 | "futures-lite", 339 | "serde", 340 | "tracing", 341 | "zbus", 342 | "zbus_names", 343 | ] 344 | 345 | [[package]] 346 | name = "atspi-macros" 347 | version = "0.2.0" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768" 350 | dependencies = [ 351 | "quote", 352 | "syn 1.0.109", 353 | ] 354 | 355 | [[package]] 356 | name = "autocfg" 357 | version = "1.1.0" 358 | source = "registry+https://github.com/rust-lang/crates.io-index" 359 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 360 | 361 | [[package]] 362 | name = "backtrace" 363 | version = "0.3.68" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" 366 | dependencies = [ 367 | "addr2line", 368 | "cc", 369 | "cfg-if 1.0.0", 370 | "libc", 371 | "miniz_oxide", 372 | "object", 373 | "rustc-demangle", 374 | "serde", 375 | ] 376 | 377 | [[package]] 378 | name = "bincode" 379 | version = "1.3.3" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 382 | dependencies = [ 383 | "serde", 384 | ] 385 | 386 | [[package]] 387 | name = "bit_field" 388 | version = "0.10.2" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" 391 | 392 | [[package]] 393 | name = "bitflags" 394 | version = "1.3.2" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 397 | 398 | [[package]] 399 | name = "bitflags" 400 | version = "2.3.3" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" 403 | 404 | [[package]] 405 | name = "block" 406 | version = "0.1.6" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 409 | 410 | [[package]] 411 | name = "block-buffer" 412 | version = "0.10.4" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 415 | dependencies = [ 416 | "generic-array", 417 | ] 418 | 419 | [[package]] 420 | name = "block-sys" 421 | version = "0.1.0-beta.1" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" 424 | dependencies = [ 425 | "objc-sys", 426 | ] 427 | 428 | [[package]] 429 | name = "block2" 430 | version = "0.2.0-alpha.6" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" 433 | dependencies = [ 434 | "block-sys", 435 | "objc2-encode", 436 | ] 437 | 438 | [[package]] 439 | name = "blocking" 440 | version = "1.3.1" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" 443 | dependencies = [ 444 | "async-channel", 445 | "async-lock", 446 | "async-task", 447 | "atomic-waker", 448 | "fastrand 1.9.0", 449 | "futures-lite", 450 | "log", 451 | ] 452 | 453 | [[package]] 454 | name = "bstr" 455 | version = "0.2.17" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" 458 | dependencies = [ 459 | "memchr", 460 | ] 461 | 462 | [[package]] 463 | name = "bumpalo" 464 | version = "3.13.0" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" 467 | 468 | [[package]] 469 | name = "bytemuck" 470 | version = "1.13.1" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" 473 | dependencies = [ 474 | "bytemuck_derive", 475 | ] 476 | 477 | [[package]] 478 | name = "bytemuck_derive" 479 | version = "1.4.1" 480 | source = "registry+https://github.com/rust-lang/crates.io-index" 481 | checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" 482 | dependencies = [ 483 | "proc-macro2", 484 | "quote", 485 | "syn 2.0.28", 486 | ] 487 | 488 | [[package]] 489 | name = "byteorder" 490 | version = "1.4.3" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 493 | 494 | [[package]] 495 | name = "bytes" 496 | version = "1.4.0" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 499 | 500 | [[package]] 501 | name = "calloop" 502 | version = "0.10.6" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" 505 | dependencies = [ 506 | "bitflags 1.3.2", 507 | "log", 508 | "nix 0.25.1", 509 | "slotmap", 510 | "thiserror", 511 | "vec_map", 512 | ] 513 | 514 | [[package]] 515 | name = "cc" 516 | version = "1.0.82" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" 519 | dependencies = [ 520 | "jobserver", 521 | "libc", 522 | ] 523 | 524 | [[package]] 525 | name = "cesu8" 526 | version = "1.1.0" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 529 | 530 | [[package]] 531 | name = "cfg-if" 532 | version = "0.1.10" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 535 | 536 | [[package]] 537 | name = "cfg-if" 538 | version = "1.0.0" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 541 | 542 | [[package]] 543 | name = "cfg_aliases" 544 | version = "0.1.1" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 547 | 548 | [[package]] 549 | name = "cgl" 550 | version = "0.3.2" 551 | source = "registry+https://github.com/rust-lang/crates.io-index" 552 | checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" 553 | dependencies = [ 554 | "libc", 555 | ] 556 | 557 | [[package]] 558 | name = "chrono" 559 | version = "0.4.26" 560 | source = "registry+https://github.com/rust-lang/crates.io-index" 561 | checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" 562 | dependencies = [ 563 | "android-tzdata", 564 | "iana-time-zone", 565 | "js-sys", 566 | "num-traits", 567 | "time", 568 | "wasm-bindgen", 569 | "winapi 0.3.9", 570 | ] 571 | 572 | [[package]] 573 | name = "clipboard-win" 574 | version = "4.5.0" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" 577 | dependencies = [ 578 | "error-code", 579 | "str-buf", 580 | "winapi 0.3.9", 581 | ] 582 | 583 | [[package]] 584 | name = "cocoa" 585 | version = "0.24.1" 586 | source = "registry+https://github.com/rust-lang/crates.io-index" 587 | checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" 588 | dependencies = [ 589 | "bitflags 1.3.2", 590 | "block", 591 | "cocoa-foundation", 592 | "core-foundation", 593 | "core-graphics", 594 | "foreign-types", 595 | "libc", 596 | "objc", 597 | ] 598 | 599 | [[package]] 600 | name = "cocoa-foundation" 601 | version = "0.1.1" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" 604 | dependencies = [ 605 | "bitflags 1.3.2", 606 | "block", 607 | "core-foundation", 608 | "core-graphics-types", 609 | "foreign-types", 610 | "libc", 611 | "objc", 612 | ] 613 | 614 | [[package]] 615 | name = "color_quant" 616 | version = "1.1.0" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 619 | 620 | [[package]] 621 | name = "combine" 622 | version = "4.6.6" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" 625 | dependencies = [ 626 | "bytes", 627 | "memchr", 628 | ] 629 | 630 | [[package]] 631 | name = "concurrent-queue" 632 | version = "2.2.0" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" 635 | dependencies = [ 636 | "crossbeam-utils", 637 | ] 638 | 639 | [[package]] 640 | name = "core-foundation" 641 | version = "0.9.3" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 644 | dependencies = [ 645 | "core-foundation-sys", 646 | "libc", 647 | ] 648 | 649 | [[package]] 650 | name = "core-foundation-sys" 651 | version = "0.8.4" 652 | source = "registry+https://github.com/rust-lang/crates.io-index" 653 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 654 | 655 | [[package]] 656 | name = "core-graphics" 657 | version = "0.22.3" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" 660 | dependencies = [ 661 | "bitflags 1.3.2", 662 | "core-foundation", 663 | "core-graphics-types", 664 | "foreign-types", 665 | "libc", 666 | ] 667 | 668 | [[package]] 669 | name = "core-graphics-types" 670 | version = "0.1.2" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" 673 | dependencies = [ 674 | "bitflags 1.3.2", 675 | "core-foundation", 676 | "libc", 677 | ] 678 | 679 | [[package]] 680 | name = "cpufeatures" 681 | version = "0.2.9" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" 684 | dependencies = [ 685 | "libc", 686 | ] 687 | 688 | [[package]] 689 | name = "crc32fast" 690 | version = "1.3.2" 691 | source = "registry+https://github.com/rust-lang/crates.io-index" 692 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 693 | dependencies = [ 694 | "cfg-if 1.0.0", 695 | ] 696 | 697 | [[package]] 698 | name = "crossbeam" 699 | version = "0.8.2" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" 702 | dependencies = [ 703 | "cfg-if 1.0.0", 704 | "crossbeam-channel", 705 | "crossbeam-deque", 706 | "crossbeam-epoch", 707 | "crossbeam-queue", 708 | "crossbeam-utils", 709 | ] 710 | 711 | [[package]] 712 | name = "crossbeam-channel" 713 | version = "0.5.8" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" 716 | dependencies = [ 717 | "cfg-if 1.0.0", 718 | "crossbeam-utils", 719 | ] 720 | 721 | [[package]] 722 | name = "crossbeam-deque" 723 | version = "0.8.3" 724 | source = "registry+https://github.com/rust-lang/crates.io-index" 725 | checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" 726 | dependencies = [ 727 | "cfg-if 1.0.0", 728 | "crossbeam-epoch", 729 | "crossbeam-utils", 730 | ] 731 | 732 | [[package]] 733 | name = "crossbeam-epoch" 734 | version = "0.9.15" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" 737 | dependencies = [ 738 | "autocfg", 739 | "cfg-if 1.0.0", 740 | "crossbeam-utils", 741 | "memoffset 0.9.0", 742 | "scopeguard", 743 | ] 744 | 745 | [[package]] 746 | name = "crossbeam-queue" 747 | version = "0.3.8" 748 | source = "registry+https://github.com/rust-lang/crates.io-index" 749 | checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" 750 | dependencies = [ 751 | "cfg-if 1.0.0", 752 | "crossbeam-utils", 753 | ] 754 | 755 | [[package]] 756 | name = "crossbeam-utils" 757 | version = "0.8.16" 758 | source = "registry+https://github.com/rust-lang/crates.io-index" 759 | checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" 760 | dependencies = [ 761 | "cfg-if 1.0.0", 762 | ] 763 | 764 | [[package]] 765 | name = "crunchy" 766 | version = "0.2.2" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 769 | 770 | [[package]] 771 | name = "crypto-common" 772 | version = "0.1.6" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 775 | dependencies = [ 776 | "generic-array", 777 | "typenum", 778 | ] 779 | 780 | [[package]] 781 | name = "derivative" 782 | version = "2.2.0" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 785 | dependencies = [ 786 | "proc-macro2", 787 | "quote", 788 | "syn 1.0.109", 789 | ] 790 | 791 | [[package]] 792 | name = "digest" 793 | version = "0.10.7" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 796 | dependencies = [ 797 | "block-buffer", 798 | "crypto-common", 799 | ] 800 | 801 | [[package]] 802 | name = "dispatch" 803 | version = "0.2.0" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 806 | 807 | [[package]] 808 | name = "dlib" 809 | version = "0.5.2" 810 | source = "registry+https://github.com/rust-lang/crates.io-index" 811 | checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 812 | dependencies = [ 813 | "libloading 0.8.0", 814 | ] 815 | 816 | [[package]] 817 | name = "downcast-rs" 818 | version = "1.2.0" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" 821 | 822 | [[package]] 823 | name = "ecolor" 824 | version = "0.22.0" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "2e479a7fa3f23d4e794f8b2f8b3568dd4e47886ad1b12c9c095e141cb591eb63" 827 | dependencies = [ 828 | "bytemuck", 829 | ] 830 | 831 | [[package]] 832 | name = "eframe" 833 | version = "0.22.0" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "bf4596583a2c680c55b6feaa748f74890c4f9cb9c7cb69d6117110444cb65b2f" 836 | dependencies = [ 837 | "bytemuck", 838 | "cocoa", 839 | "egui", 840 | "egui-winit", 841 | "egui_glow", 842 | "glow", 843 | "glutin", 844 | "glutin-winit", 845 | "image", 846 | "js-sys", 847 | "log", 848 | "objc", 849 | "percent-encoding", 850 | "raw-window-handle", 851 | "thiserror", 852 | "wasm-bindgen", 853 | "wasm-bindgen-futures", 854 | "web-sys", 855 | "winapi 0.3.9", 856 | "winit", 857 | ] 858 | 859 | [[package]] 860 | name = "egui" 861 | version = "0.22.0" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "a3aef8ec3ae1b772f340170c65bf27d5b8c28f543a0116c844d2ac08d01123e7" 864 | dependencies = [ 865 | "accesskit", 866 | "ahash", 867 | "epaint", 868 | "log", 869 | "nohash-hasher", 870 | ] 871 | 872 | [[package]] 873 | name = "egui-winit" 874 | version = "0.22.0" 875 | source = "registry+https://github.com/rust-lang/crates.io-index" 876 | checksum = "4a49155fd4a0a4fb21224407a91de0030847972ef90fc64edb63621caea61cb2" 877 | dependencies = [ 878 | "accesskit_winit", 879 | "arboard", 880 | "egui", 881 | "instant", 882 | "log", 883 | "raw-window-handle", 884 | "smithay-clipboard", 885 | "webbrowser", 886 | "winit", 887 | ] 888 | 889 | [[package]] 890 | name = "egui_glow" 891 | version = "0.22.0" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "1f8c2752cdf1b0ef5fcda59a898cacabad974d4f5880e92a420b2c917022da64" 894 | dependencies = [ 895 | "bytemuck", 896 | "egui", 897 | "glow", 898 | "log", 899 | "memoffset 0.6.5", 900 | "wasm-bindgen", 901 | "web-sys", 902 | ] 903 | 904 | [[package]] 905 | name = "either" 906 | version = "1.9.0" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" 909 | 910 | [[package]] 911 | name = "emath" 912 | version = "0.22.0" 913 | source = "registry+https://github.com/rust-lang/crates.io-index" 914 | checksum = "3857d743a6e0741cdd60b622a74c7a36ea75f5f8f11b793b41d905d2c9721a4b" 915 | dependencies = [ 916 | "bytemuck", 917 | ] 918 | 919 | [[package]] 920 | name = "enumflags2" 921 | version = "0.7.7" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" 924 | dependencies = [ 925 | "enumflags2_derive", 926 | "serde", 927 | ] 928 | 929 | [[package]] 930 | name = "enumflags2_derive" 931 | version = "0.7.7" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" 934 | dependencies = [ 935 | "proc-macro2", 936 | "quote", 937 | "syn 2.0.28", 938 | ] 939 | 940 | [[package]] 941 | name = "env_logger" 942 | version = "0.10.0" 943 | source = "registry+https://github.com/rust-lang/crates.io-index" 944 | checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" 945 | dependencies = [ 946 | "humantime", 947 | "is-terminal", 948 | "log", 949 | "regex", 950 | "termcolor", 951 | ] 952 | 953 | [[package]] 954 | name = "epaint" 955 | version = "0.22.0" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "09333964d4d57f40a85338ba3ca5ed4716070ab184dcfed966b35491c5c64f3b" 958 | dependencies = [ 959 | "ab_glyph", 960 | "ahash", 961 | "atomic_refcell", 962 | "bytemuck", 963 | "ecolor", 964 | "emath", 965 | "log", 966 | "nohash-hasher", 967 | "parking_lot", 968 | ] 969 | 970 | [[package]] 971 | name = "equivalent" 972 | version = "1.0.1" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 975 | 976 | [[package]] 977 | name = "errno" 978 | version = "0.3.2" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" 981 | dependencies = [ 982 | "errno-dragonfly", 983 | "libc", 984 | "windows-sys 0.48.0", 985 | ] 986 | 987 | [[package]] 988 | name = "errno-dragonfly" 989 | version = "0.1.2" 990 | source = "registry+https://github.com/rust-lang/crates.io-index" 991 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 992 | dependencies = [ 993 | "cc", 994 | "libc", 995 | ] 996 | 997 | [[package]] 998 | name = "error-code" 999 | version = "2.3.1" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" 1002 | dependencies = [ 1003 | "libc", 1004 | "str-buf", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "event-listener" 1009 | version = "2.5.3" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 1012 | 1013 | [[package]] 1014 | name = "exr" 1015 | version = "1.7.0" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18" 1018 | dependencies = [ 1019 | "bit_field", 1020 | "flume", 1021 | "half", 1022 | "lebe", 1023 | "miniz_oxide", 1024 | "rayon-core", 1025 | "smallvec", 1026 | "zune-inflate", 1027 | ] 1028 | 1029 | [[package]] 1030 | name = "fastrand" 1031 | version = "1.9.0" 1032 | source = "registry+https://github.com/rust-lang/crates.io-index" 1033 | checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 1034 | dependencies = [ 1035 | "instant", 1036 | ] 1037 | 1038 | [[package]] 1039 | name = "fastrand" 1040 | version = "2.0.0" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" 1043 | 1044 | [[package]] 1045 | name = "fdeflate" 1046 | version = "0.3.0" 1047 | source = "registry+https://github.com/rust-lang/crates.io-index" 1048 | checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" 1049 | dependencies = [ 1050 | "simd-adler32", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "filetime" 1055 | version = "0.2.22" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" 1058 | dependencies = [ 1059 | "cfg-if 1.0.0", 1060 | "libc", 1061 | "redox_syscall", 1062 | "windows-sys 0.48.0", 1063 | ] 1064 | 1065 | [[package]] 1066 | name = "findshlibs" 1067 | version = "0.10.2" 1068 | source = "registry+https://github.com/rust-lang/crates.io-index" 1069 | checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64" 1070 | dependencies = [ 1071 | "cc", 1072 | "lazy_static", 1073 | "libc", 1074 | "winapi 0.3.9", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "flate2" 1079 | version = "1.0.26" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" 1082 | dependencies = [ 1083 | "crc32fast", 1084 | "miniz_oxide", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "flume" 1089 | version = "0.10.14" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" 1092 | dependencies = [ 1093 | "futures-core", 1094 | "futures-sink", 1095 | "nanorand", 1096 | "pin-project", 1097 | "spin", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "fnv" 1102 | version = "1.0.7" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1105 | 1106 | [[package]] 1107 | name = "foreign-types" 1108 | version = "0.3.2" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1111 | dependencies = [ 1112 | "foreign-types-shared", 1113 | ] 1114 | 1115 | [[package]] 1116 | name = "foreign-types-shared" 1117 | version = "0.1.1" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1120 | 1121 | [[package]] 1122 | name = "form_urlencoded" 1123 | version = "1.2.0" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" 1126 | dependencies = [ 1127 | "percent-encoding", 1128 | ] 1129 | 1130 | [[package]] 1131 | name = "fsevent-sys" 1132 | version = "4.1.0" 1133 | source = "registry+https://github.com/rust-lang/crates.io-index" 1134 | checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" 1135 | dependencies = [ 1136 | "libc", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "fuchsia-zircon" 1141 | version = "0.3.3" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 1144 | dependencies = [ 1145 | "bitflags 1.3.2", 1146 | "fuchsia-zircon-sys", 1147 | ] 1148 | 1149 | [[package]] 1150 | name = "fuchsia-zircon-sys" 1151 | version = "0.3.3" 1152 | source = "registry+https://github.com/rust-lang/crates.io-index" 1153 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 1154 | 1155 | [[package]] 1156 | name = "futures-core" 1157 | version = "0.3.28" 1158 | source = "registry+https://github.com/rust-lang/crates.io-index" 1159 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 1160 | 1161 | [[package]] 1162 | name = "futures-io" 1163 | version = "0.3.28" 1164 | source = "registry+https://github.com/rust-lang/crates.io-index" 1165 | checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 1166 | 1167 | [[package]] 1168 | name = "futures-lite" 1169 | version = "1.13.0" 1170 | source = "registry+https://github.com/rust-lang/crates.io-index" 1171 | checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" 1172 | dependencies = [ 1173 | "fastrand 1.9.0", 1174 | "futures-core", 1175 | "futures-io", 1176 | "memchr", 1177 | "parking", 1178 | "pin-project-lite", 1179 | "waker-fn", 1180 | ] 1181 | 1182 | [[package]] 1183 | name = "futures-sink" 1184 | version = "0.3.28" 1185 | source = "registry+https://github.com/rust-lang/crates.io-index" 1186 | checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 1187 | 1188 | [[package]] 1189 | name = "futures-task" 1190 | version = "0.3.28" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 1193 | 1194 | [[package]] 1195 | name = "futures-util" 1196 | version = "0.3.28" 1197 | source = "registry+https://github.com/rust-lang/crates.io-index" 1198 | checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 1199 | dependencies = [ 1200 | "futures-core", 1201 | "futures-io", 1202 | "futures-sink", 1203 | "futures-task", 1204 | "memchr", 1205 | "pin-project-lite", 1206 | "pin-utils", 1207 | "slab", 1208 | ] 1209 | 1210 | [[package]] 1211 | name = "generic-array" 1212 | version = "0.14.7" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1215 | dependencies = [ 1216 | "typenum", 1217 | "version_check", 1218 | ] 1219 | 1220 | [[package]] 1221 | name = "gethostname" 1222 | version = "0.2.3" 1223 | source = "registry+https://github.com/rust-lang/crates.io-index" 1224 | checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" 1225 | dependencies = [ 1226 | "libc", 1227 | "winapi 0.3.9", 1228 | ] 1229 | 1230 | [[package]] 1231 | name = "getrandom" 1232 | version = "0.1.16" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1235 | dependencies = [ 1236 | "cfg-if 1.0.0", 1237 | "libc", 1238 | "wasi 0.9.0+wasi-snapshot-preview1", 1239 | ] 1240 | 1241 | [[package]] 1242 | name = "getrandom" 1243 | version = "0.2.10" 1244 | source = "registry+https://github.com/rust-lang/crates.io-index" 1245 | checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" 1246 | dependencies = [ 1247 | "cfg-if 1.0.0", 1248 | "js-sys", 1249 | "libc", 1250 | "wasi 0.11.0+wasi-snapshot-preview1", 1251 | "wasm-bindgen", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "gif" 1256 | version = "0.12.0" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" 1259 | dependencies = [ 1260 | "color_quant", 1261 | "weezl", 1262 | ] 1263 | 1264 | [[package]] 1265 | name = "gimli" 1266 | version = "0.27.3" 1267 | source = "registry+https://github.com/rust-lang/crates.io-index" 1268 | checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" 1269 | 1270 | [[package]] 1271 | name = "gl_generator" 1272 | version = "0.14.0" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 1275 | dependencies = [ 1276 | "khronos_api", 1277 | "log", 1278 | "xml-rs", 1279 | ] 1280 | 1281 | [[package]] 1282 | name = "glow" 1283 | version = "0.12.3" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" 1286 | dependencies = [ 1287 | "js-sys", 1288 | "slotmap", 1289 | "wasm-bindgen", 1290 | "web-sys", 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "glutin" 1295 | version = "0.30.10" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "8fc93b03242719b8ad39fb26ed2b01737144ce7bd4bfc7adadcef806596760fe" 1298 | dependencies = [ 1299 | "bitflags 1.3.2", 1300 | "cfg_aliases", 1301 | "cgl", 1302 | "core-foundation", 1303 | "dispatch", 1304 | "glutin_egl_sys", 1305 | "glutin_glx_sys", 1306 | "glutin_wgl_sys", 1307 | "libloading 0.7.4", 1308 | "objc2", 1309 | "once_cell", 1310 | "raw-window-handle", 1311 | "wayland-sys 0.30.1", 1312 | "windows-sys 0.45.0", 1313 | "x11-dl", 1314 | ] 1315 | 1316 | [[package]] 1317 | name = "glutin-winit" 1318 | version = "0.3.0" 1319 | source = "registry+https://github.com/rust-lang/crates.io-index" 1320 | checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4" 1321 | dependencies = [ 1322 | "cfg_aliases", 1323 | "glutin", 1324 | "raw-window-handle", 1325 | "winit", 1326 | ] 1327 | 1328 | [[package]] 1329 | name = "glutin_egl_sys" 1330 | version = "0.5.1" 1331 | source = "registry+https://github.com/rust-lang/crates.io-index" 1332 | checksum = "af784eb26c5a68ec85391268e074f0aa618c096eadb5d6330b0911cf34fe57c5" 1333 | dependencies = [ 1334 | "gl_generator", 1335 | "windows-sys 0.45.0", 1336 | ] 1337 | 1338 | [[package]] 1339 | name = "glutin_glx_sys" 1340 | version = "0.4.0" 1341 | source = "registry+https://github.com/rust-lang/crates.io-index" 1342 | checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494" 1343 | dependencies = [ 1344 | "gl_generator", 1345 | "x11-dl", 1346 | ] 1347 | 1348 | [[package]] 1349 | name = "glutin_wgl_sys" 1350 | version = "0.4.0" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165" 1353 | dependencies = [ 1354 | "gl_generator", 1355 | ] 1356 | 1357 | [[package]] 1358 | name = "half" 1359 | version = "2.2.1" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" 1362 | dependencies = [ 1363 | "crunchy", 1364 | ] 1365 | 1366 | [[package]] 1367 | name = "hashbrown" 1368 | version = "0.14.0" 1369 | source = "registry+https://github.com/rust-lang/crates.io-index" 1370 | checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" 1371 | 1372 | [[package]] 1373 | name = "hermit-abi" 1374 | version = "0.3.2" 1375 | source = "registry+https://github.com/rust-lang/crates.io-index" 1376 | checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" 1377 | 1378 | [[package]] 1379 | name = "hex" 1380 | version = "0.4.3" 1381 | source = "registry+https://github.com/rust-lang/crates.io-index" 1382 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1383 | 1384 | [[package]] 1385 | name = "home" 1386 | version = "0.5.5" 1387 | source = "registry+https://github.com/rust-lang/crates.io-index" 1388 | checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" 1389 | dependencies = [ 1390 | "windows-sys 0.48.0", 1391 | ] 1392 | 1393 | [[package]] 1394 | name = "humantime" 1395 | version = "2.1.0" 1396 | source = "registry+https://github.com/rust-lang/crates.io-index" 1397 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1398 | 1399 | [[package]] 1400 | name = "iana-time-zone" 1401 | version = "0.1.57" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" 1404 | dependencies = [ 1405 | "android_system_properties", 1406 | "core-foundation-sys", 1407 | "iana-time-zone-haiku", 1408 | "js-sys", 1409 | "wasm-bindgen", 1410 | "windows", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "iana-time-zone-haiku" 1415 | version = "0.1.2" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1418 | dependencies = [ 1419 | "cc", 1420 | ] 1421 | 1422 | [[package]] 1423 | name = "idna" 1424 | version = "0.4.0" 1425 | source = "registry+https://github.com/rust-lang/crates.io-index" 1426 | checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" 1427 | dependencies = [ 1428 | "unicode-bidi", 1429 | "unicode-normalization", 1430 | ] 1431 | 1432 | [[package]] 1433 | name = "image" 1434 | version = "0.24.7" 1435 | source = "registry+https://github.com/rust-lang/crates.io-index" 1436 | checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" 1437 | dependencies = [ 1438 | "bytemuck", 1439 | "byteorder", 1440 | "color_quant", 1441 | "exr", 1442 | "gif", 1443 | "jpeg-decoder", 1444 | "num-rational", 1445 | "num-traits", 1446 | "png", 1447 | "qoi", 1448 | "tiff", 1449 | ] 1450 | 1451 | [[package]] 1452 | name = "indexmap" 1453 | version = "2.0.0" 1454 | source = "registry+https://github.com/rust-lang/crates.io-index" 1455 | checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" 1456 | dependencies = [ 1457 | "equivalent", 1458 | "hashbrown", 1459 | ] 1460 | 1461 | [[package]] 1462 | name = "inotify" 1463 | version = "0.9.6" 1464 | source = "registry+https://github.com/rust-lang/crates.io-index" 1465 | checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" 1466 | dependencies = [ 1467 | "bitflags 1.3.2", 1468 | "inotify-sys", 1469 | "libc", 1470 | ] 1471 | 1472 | [[package]] 1473 | name = "inotify-sys" 1474 | version = "0.1.5" 1475 | source = "registry+https://github.com/rust-lang/crates.io-index" 1476 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 1477 | dependencies = [ 1478 | "libc", 1479 | ] 1480 | 1481 | [[package]] 1482 | name = "instant" 1483 | version = "0.1.12" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1486 | dependencies = [ 1487 | "cfg-if 1.0.0", 1488 | "js-sys", 1489 | "wasm-bindgen", 1490 | "web-sys", 1491 | ] 1492 | 1493 | [[package]] 1494 | name = "io-lifetimes" 1495 | version = "1.0.11" 1496 | source = "registry+https://github.com/rust-lang/crates.io-index" 1497 | checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" 1498 | dependencies = [ 1499 | "hermit-abi", 1500 | "libc", 1501 | "windows-sys 0.48.0", 1502 | ] 1503 | 1504 | [[package]] 1505 | name = "iovec" 1506 | version = "0.1.4" 1507 | source = "registry+https://github.com/rust-lang/crates.io-index" 1508 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 1509 | dependencies = [ 1510 | "libc", 1511 | ] 1512 | 1513 | [[package]] 1514 | name = "ipc-channel" 1515 | version = "0.16.1" 1516 | source = "registry+https://github.com/rust-lang/crates.io-index" 1517 | checksum = "342d636452fbc2895574e0b319b23c014fd01c9ed71dcd87f6a4a8e2f948db4b" 1518 | dependencies = [ 1519 | "bincode", 1520 | "crossbeam-channel", 1521 | "fnv", 1522 | "lazy_static", 1523 | "libc", 1524 | "mio 0.6.23", 1525 | "rand 0.7.3", 1526 | "serde", 1527 | "tempfile", 1528 | "uuid", 1529 | "winapi 0.3.9", 1530 | ] 1531 | 1532 | [[package]] 1533 | name = "is-terminal" 1534 | version = "0.4.9" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" 1537 | dependencies = [ 1538 | "hermit-abi", 1539 | "rustix 0.38.7", 1540 | "windows-sys 0.48.0", 1541 | ] 1542 | 1543 | [[package]] 1544 | name = "jni" 1545 | version = "0.21.1" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 1548 | dependencies = [ 1549 | "cesu8", 1550 | "cfg-if 1.0.0", 1551 | "combine", 1552 | "jni-sys", 1553 | "log", 1554 | "thiserror", 1555 | "walkdir", 1556 | "windows-sys 0.45.0", 1557 | ] 1558 | 1559 | [[package]] 1560 | name = "jni-sys" 1561 | version = "0.3.0" 1562 | source = "registry+https://github.com/rust-lang/crates.io-index" 1563 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 1564 | 1565 | [[package]] 1566 | name = "jobserver" 1567 | version = "0.1.26" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" 1570 | dependencies = [ 1571 | "libc", 1572 | ] 1573 | 1574 | [[package]] 1575 | name = "jpeg-decoder" 1576 | version = "0.3.0" 1577 | source = "registry+https://github.com/rust-lang/crates.io-index" 1578 | checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" 1579 | dependencies = [ 1580 | "rayon", 1581 | ] 1582 | 1583 | [[package]] 1584 | name = "js-sys" 1585 | version = "0.3.64" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" 1588 | dependencies = [ 1589 | "wasm-bindgen", 1590 | ] 1591 | 1592 | [[package]] 1593 | name = "kernel32-sys" 1594 | version = "0.2.2" 1595 | source = "registry+https://github.com/rust-lang/crates.io-index" 1596 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1597 | dependencies = [ 1598 | "winapi 0.2.8", 1599 | "winapi-build", 1600 | ] 1601 | 1602 | [[package]] 1603 | name = "khronos_api" 1604 | version = "3.1.0" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 1607 | 1608 | [[package]] 1609 | name = "kqueue" 1610 | version = "1.0.8" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" 1613 | dependencies = [ 1614 | "kqueue-sys", 1615 | "libc", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "kqueue-sys" 1620 | version = "1.0.4" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" 1623 | dependencies = [ 1624 | "bitflags 1.3.2", 1625 | "libc", 1626 | ] 1627 | 1628 | [[package]] 1629 | name = "lazy_static" 1630 | version = "1.4.0" 1631 | source = "registry+https://github.com/rust-lang/crates.io-index" 1632 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1633 | 1634 | [[package]] 1635 | name = "lebe" 1636 | version = "0.5.2" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" 1639 | 1640 | [[package]] 1641 | name = "libc" 1642 | version = "0.2.147" 1643 | source = "registry+https://github.com/rust-lang/crates.io-index" 1644 | checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" 1645 | 1646 | [[package]] 1647 | name = "libloading" 1648 | version = "0.7.4" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 1651 | dependencies = [ 1652 | "cfg-if 1.0.0", 1653 | "winapi 0.3.9", 1654 | ] 1655 | 1656 | [[package]] 1657 | name = "libloading" 1658 | version = "0.8.0" 1659 | source = "registry+https://github.com/rust-lang/crates.io-index" 1660 | checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb" 1661 | dependencies = [ 1662 | "cfg-if 1.0.0", 1663 | "windows-sys 0.48.0", 1664 | ] 1665 | 1666 | [[package]] 1667 | name = "linux-raw-sys" 1668 | version = "0.3.8" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" 1671 | 1672 | [[package]] 1673 | name = "linux-raw-sys" 1674 | version = "0.4.5" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" 1677 | 1678 | [[package]] 1679 | name = "lock_api" 1680 | version = "0.4.10" 1681 | source = "registry+https://github.com/rust-lang/crates.io-index" 1682 | checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" 1683 | dependencies = [ 1684 | "autocfg", 1685 | "scopeguard", 1686 | ] 1687 | 1688 | [[package]] 1689 | name = "log" 1690 | version = "0.4.19" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" 1693 | 1694 | [[package]] 1695 | name = "malloc_buf" 1696 | version = "0.0.6" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 1699 | dependencies = [ 1700 | "libc", 1701 | ] 1702 | 1703 | [[package]] 1704 | name = "memchr" 1705 | version = "2.5.0" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 1708 | 1709 | [[package]] 1710 | name = "memmap2" 1711 | version = "0.5.10" 1712 | source = "registry+https://github.com/rust-lang/crates.io-index" 1713 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1714 | dependencies = [ 1715 | "libc", 1716 | ] 1717 | 1718 | [[package]] 1719 | name = "memoffset" 1720 | version = "0.6.5" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 1723 | dependencies = [ 1724 | "autocfg", 1725 | ] 1726 | 1727 | [[package]] 1728 | name = "memoffset" 1729 | version = "0.7.1" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" 1732 | dependencies = [ 1733 | "autocfg", 1734 | ] 1735 | 1736 | [[package]] 1737 | name = "memoffset" 1738 | version = "0.9.0" 1739 | source = "registry+https://github.com/rust-lang/crates.io-index" 1740 | checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 1741 | dependencies = [ 1742 | "autocfg", 1743 | ] 1744 | 1745 | [[package]] 1746 | name = "minimal-lexical" 1747 | version = "0.2.1" 1748 | source = "registry+https://github.com/rust-lang/crates.io-index" 1749 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1750 | 1751 | [[package]] 1752 | name = "miniz_oxide" 1753 | version = "0.7.1" 1754 | source = "registry+https://github.com/rust-lang/crates.io-index" 1755 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 1756 | dependencies = [ 1757 | "adler", 1758 | "simd-adler32", 1759 | ] 1760 | 1761 | [[package]] 1762 | name = "mio" 1763 | version = "0.6.23" 1764 | source = "registry+https://github.com/rust-lang/crates.io-index" 1765 | checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" 1766 | dependencies = [ 1767 | "cfg-if 0.1.10", 1768 | "fuchsia-zircon", 1769 | "fuchsia-zircon-sys", 1770 | "iovec", 1771 | "kernel32-sys", 1772 | "libc", 1773 | "log", 1774 | "miow", 1775 | "net2", 1776 | "slab", 1777 | "winapi 0.2.8", 1778 | ] 1779 | 1780 | [[package]] 1781 | name = "mio" 1782 | version = "0.8.8" 1783 | source = "registry+https://github.com/rust-lang/crates.io-index" 1784 | checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" 1785 | dependencies = [ 1786 | "libc", 1787 | "log", 1788 | "wasi 0.11.0+wasi-snapshot-preview1", 1789 | "windows-sys 0.48.0", 1790 | ] 1791 | 1792 | [[package]] 1793 | name = "miow" 1794 | version = "0.2.2" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" 1797 | dependencies = [ 1798 | "kernel32-sys", 1799 | "net2", 1800 | "winapi 0.2.8", 1801 | "ws2_32-sys", 1802 | ] 1803 | 1804 | [[package]] 1805 | name = "nanorand" 1806 | version = "0.7.0" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 1809 | dependencies = [ 1810 | "getrandom 0.2.10", 1811 | ] 1812 | 1813 | [[package]] 1814 | name = "ndk" 1815 | version = "0.7.0" 1816 | source = "registry+https://github.com/rust-lang/crates.io-index" 1817 | checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" 1818 | dependencies = [ 1819 | "bitflags 1.3.2", 1820 | "jni-sys", 1821 | "ndk-sys", 1822 | "num_enum 0.5.11", 1823 | "raw-window-handle", 1824 | "thiserror", 1825 | ] 1826 | 1827 | [[package]] 1828 | name = "ndk-context" 1829 | version = "0.1.1" 1830 | source = "registry+https://github.com/rust-lang/crates.io-index" 1831 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 1832 | 1833 | [[package]] 1834 | name = "ndk-sys" 1835 | version = "0.4.1+23.1.7779620" 1836 | source = "registry+https://github.com/rust-lang/crates.io-index" 1837 | checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" 1838 | dependencies = [ 1839 | "jni-sys", 1840 | ] 1841 | 1842 | [[package]] 1843 | name = "net2" 1844 | version = "0.2.39" 1845 | source = "registry+https://github.com/rust-lang/crates.io-index" 1846 | checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" 1847 | dependencies = [ 1848 | "cfg-if 0.1.10", 1849 | "libc", 1850 | "winapi 0.3.9", 1851 | ] 1852 | 1853 | [[package]] 1854 | name = "nix" 1855 | version = "0.24.3" 1856 | source = "registry+https://github.com/rust-lang/crates.io-index" 1857 | checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" 1858 | dependencies = [ 1859 | "bitflags 1.3.2", 1860 | "cfg-if 1.0.0", 1861 | "libc", 1862 | "memoffset 0.6.5", 1863 | ] 1864 | 1865 | [[package]] 1866 | name = "nix" 1867 | version = "0.25.1" 1868 | source = "registry+https://github.com/rust-lang/crates.io-index" 1869 | checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" 1870 | dependencies = [ 1871 | "autocfg", 1872 | "bitflags 1.3.2", 1873 | "cfg-if 1.0.0", 1874 | "libc", 1875 | "memoffset 0.6.5", 1876 | ] 1877 | 1878 | [[package]] 1879 | name = "nix" 1880 | version = "0.26.2" 1881 | source = "registry+https://github.com/rust-lang/crates.io-index" 1882 | checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" 1883 | dependencies = [ 1884 | "bitflags 1.3.2", 1885 | "cfg-if 1.0.0", 1886 | "libc", 1887 | "memoffset 0.7.1", 1888 | "static_assertions", 1889 | ] 1890 | 1891 | [[package]] 1892 | name = "nohash-hasher" 1893 | version = "0.2.0" 1894 | source = "registry+https://github.com/rust-lang/crates.io-index" 1895 | checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" 1896 | 1897 | [[package]] 1898 | name = "nom" 1899 | version = "7.1.3" 1900 | source = "registry+https://github.com/rust-lang/crates.io-index" 1901 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1902 | dependencies = [ 1903 | "memchr", 1904 | "minimal-lexical", 1905 | ] 1906 | 1907 | [[package]] 1908 | name = "notify" 1909 | version = "6.0.1" 1910 | source = "registry+https://github.com/rust-lang/crates.io-index" 1911 | checksum = "5738a2795d57ea20abec2d6d76c6081186709c0024187cd5977265eda6598b51" 1912 | dependencies = [ 1913 | "bitflags 1.3.2", 1914 | "crossbeam-channel", 1915 | "filetime", 1916 | "fsevent-sys", 1917 | "inotify", 1918 | "kqueue", 1919 | "libc", 1920 | "mio 0.8.8", 1921 | "walkdir", 1922 | "windows-sys 0.45.0", 1923 | ] 1924 | 1925 | [[package]] 1926 | name = "num-integer" 1927 | version = "0.1.45" 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" 1929 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 1930 | dependencies = [ 1931 | "autocfg", 1932 | "num-traits", 1933 | ] 1934 | 1935 | [[package]] 1936 | name = "num-rational" 1937 | version = "0.4.1" 1938 | source = "registry+https://github.com/rust-lang/crates.io-index" 1939 | checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" 1940 | dependencies = [ 1941 | "autocfg", 1942 | "num-integer", 1943 | "num-traits", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "num-traits" 1948 | version = "0.2.16" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" 1951 | dependencies = [ 1952 | "autocfg", 1953 | ] 1954 | 1955 | [[package]] 1956 | name = "num_cpus" 1957 | version = "1.16.0" 1958 | source = "registry+https://github.com/rust-lang/crates.io-index" 1959 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 1960 | dependencies = [ 1961 | "hermit-abi", 1962 | "libc", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "num_enum" 1967 | version = "0.5.11" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" 1970 | dependencies = [ 1971 | "num_enum_derive 0.5.11", 1972 | ] 1973 | 1974 | [[package]] 1975 | name = "num_enum" 1976 | version = "0.6.1" 1977 | source = "registry+https://github.com/rust-lang/crates.io-index" 1978 | checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" 1979 | dependencies = [ 1980 | "num_enum_derive 0.6.1", 1981 | ] 1982 | 1983 | [[package]] 1984 | name = "num_enum_derive" 1985 | version = "0.5.11" 1986 | source = "registry+https://github.com/rust-lang/crates.io-index" 1987 | checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" 1988 | dependencies = [ 1989 | "proc-macro-crate", 1990 | "proc-macro2", 1991 | "quote", 1992 | "syn 1.0.109", 1993 | ] 1994 | 1995 | [[package]] 1996 | name = "num_enum_derive" 1997 | version = "0.6.1" 1998 | source = "registry+https://github.com/rust-lang/crates.io-index" 1999 | checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" 2000 | dependencies = [ 2001 | "proc-macro-crate", 2002 | "proc-macro2", 2003 | "quote", 2004 | "syn 2.0.28", 2005 | ] 2006 | 2007 | [[package]] 2008 | name = "objc" 2009 | version = "0.2.7" 2010 | source = "registry+https://github.com/rust-lang/crates.io-index" 2011 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 2012 | dependencies = [ 2013 | "malloc_buf", 2014 | ] 2015 | 2016 | [[package]] 2017 | name = "objc-foundation" 2018 | version = "0.1.1" 2019 | source = "registry+https://github.com/rust-lang/crates.io-index" 2020 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" 2021 | dependencies = [ 2022 | "block", 2023 | "objc", 2024 | "objc_id", 2025 | ] 2026 | 2027 | [[package]] 2028 | name = "objc-sys" 2029 | version = "0.2.0-beta.2" 2030 | source = "registry+https://github.com/rust-lang/crates.io-index" 2031 | checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" 2032 | 2033 | [[package]] 2034 | name = "objc2" 2035 | version = "0.3.0-beta.3.patch-leaks.3" 2036 | source = "registry+https://github.com/rust-lang/crates.io-index" 2037 | checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" 2038 | dependencies = [ 2039 | "block2", 2040 | "objc-sys", 2041 | "objc2-encode", 2042 | ] 2043 | 2044 | [[package]] 2045 | name = "objc2-encode" 2046 | version = "2.0.0-pre.2" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" 2049 | dependencies = [ 2050 | "objc-sys", 2051 | ] 2052 | 2053 | [[package]] 2054 | name = "objc_id" 2055 | version = "0.1.1" 2056 | source = "registry+https://github.com/rust-lang/crates.io-index" 2057 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" 2058 | dependencies = [ 2059 | "objc", 2060 | ] 2061 | 2062 | [[package]] 2063 | name = "object" 2064 | version = "0.31.1" 2065 | source = "registry+https://github.com/rust-lang/crates.io-index" 2066 | checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" 2067 | dependencies = [ 2068 | "memchr", 2069 | ] 2070 | 2071 | [[package]] 2072 | name = "once_cell" 2073 | version = "1.18.0" 2074 | source = "registry+https://github.com/rust-lang/crates.io-index" 2075 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 2076 | 2077 | [[package]] 2078 | name = "orbclient" 2079 | version = "0.3.46" 2080 | source = "registry+https://github.com/rust-lang/crates.io-index" 2081 | checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f" 2082 | dependencies = [ 2083 | "redox_syscall", 2084 | ] 2085 | 2086 | [[package]] 2087 | name = "ordered-stream" 2088 | version = "0.2.0" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" 2091 | dependencies = [ 2092 | "futures-core", 2093 | "pin-project-lite", 2094 | ] 2095 | 2096 | [[package]] 2097 | name = "outside-auras" 2098 | version = "0.1.0" 2099 | dependencies = [ 2100 | "chrono", 2101 | "crossbeam", 2102 | "eframe", 2103 | "env_logger", 2104 | "image", 2105 | "ipc-channel", 2106 | "lazy_static", 2107 | "notify", 2108 | "parking_lot", 2109 | "procspawn", 2110 | "rlua", 2111 | "serde", 2112 | ] 2113 | 2114 | [[package]] 2115 | name = "owned_ttf_parser" 2116 | version = "0.19.0" 2117 | source = "registry+https://github.com/rust-lang/crates.io-index" 2118 | checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4" 2119 | dependencies = [ 2120 | "ttf-parser", 2121 | ] 2122 | 2123 | [[package]] 2124 | name = "parking" 2125 | version = "2.1.0" 2126 | source = "registry+https://github.com/rust-lang/crates.io-index" 2127 | checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" 2128 | 2129 | [[package]] 2130 | name = "parking_lot" 2131 | version = "0.12.1" 2132 | source = "registry+https://github.com/rust-lang/crates.io-index" 2133 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 2134 | dependencies = [ 2135 | "lock_api", 2136 | "parking_lot_core", 2137 | ] 2138 | 2139 | [[package]] 2140 | name = "parking_lot_core" 2141 | version = "0.9.8" 2142 | source = "registry+https://github.com/rust-lang/crates.io-index" 2143 | checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" 2144 | dependencies = [ 2145 | "cfg-if 1.0.0", 2146 | "libc", 2147 | "redox_syscall", 2148 | "smallvec", 2149 | "windows-targets 0.48.1", 2150 | ] 2151 | 2152 | [[package]] 2153 | name = "paste" 2154 | version = "1.0.14" 2155 | source = "registry+https://github.com/rust-lang/crates.io-index" 2156 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 2157 | 2158 | [[package]] 2159 | name = "percent-encoding" 2160 | version = "2.3.0" 2161 | source = "registry+https://github.com/rust-lang/crates.io-index" 2162 | checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" 2163 | 2164 | [[package]] 2165 | name = "pin-project" 2166 | version = "1.1.3" 2167 | source = "registry+https://github.com/rust-lang/crates.io-index" 2168 | checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" 2169 | dependencies = [ 2170 | "pin-project-internal", 2171 | ] 2172 | 2173 | [[package]] 2174 | name = "pin-project-internal" 2175 | version = "1.1.3" 2176 | source = "registry+https://github.com/rust-lang/crates.io-index" 2177 | checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" 2178 | dependencies = [ 2179 | "proc-macro2", 2180 | "quote", 2181 | "syn 2.0.28", 2182 | ] 2183 | 2184 | [[package]] 2185 | name = "pin-project-lite" 2186 | version = "0.2.11" 2187 | source = "registry+https://github.com/rust-lang/crates.io-index" 2188 | checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c" 2189 | 2190 | [[package]] 2191 | name = "pin-utils" 2192 | version = "0.1.0" 2193 | source = "registry+https://github.com/rust-lang/crates.io-index" 2194 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2195 | 2196 | [[package]] 2197 | name = "pkg-config" 2198 | version = "0.3.27" 2199 | source = "registry+https://github.com/rust-lang/crates.io-index" 2200 | checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 2201 | 2202 | [[package]] 2203 | name = "png" 2204 | version = "0.17.9" 2205 | source = "registry+https://github.com/rust-lang/crates.io-index" 2206 | checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" 2207 | dependencies = [ 2208 | "bitflags 1.3.2", 2209 | "crc32fast", 2210 | "fdeflate", 2211 | "flate2", 2212 | "miniz_oxide", 2213 | ] 2214 | 2215 | [[package]] 2216 | name = "polling" 2217 | version = "2.8.0" 2218 | source = "registry+https://github.com/rust-lang/crates.io-index" 2219 | checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" 2220 | dependencies = [ 2221 | "autocfg", 2222 | "bitflags 1.3.2", 2223 | "cfg-if 1.0.0", 2224 | "concurrent-queue", 2225 | "libc", 2226 | "log", 2227 | "pin-project-lite", 2228 | "windows-sys 0.48.0", 2229 | ] 2230 | 2231 | [[package]] 2232 | name = "ppv-lite86" 2233 | version = "0.2.17" 2234 | source = "registry+https://github.com/rust-lang/crates.io-index" 2235 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2236 | 2237 | [[package]] 2238 | name = "proc-macro-crate" 2239 | version = "1.3.1" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2242 | dependencies = [ 2243 | "once_cell", 2244 | "toml_edit", 2245 | ] 2246 | 2247 | [[package]] 2248 | name = "proc-macro2" 2249 | version = "1.0.66" 2250 | source = "registry+https://github.com/rust-lang/crates.io-index" 2251 | checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" 2252 | dependencies = [ 2253 | "unicode-ident", 2254 | ] 2255 | 2256 | [[package]] 2257 | name = "procspawn" 2258 | version = "0.10.2" 2259 | source = "registry+https://github.com/rust-lang/crates.io-index" 2260 | checksum = "5c5a680d772408c77498b0339175746b5dae18724b26877b919e6ecabb680e83" 2261 | dependencies = [ 2262 | "backtrace", 2263 | "findshlibs", 2264 | "ipc-channel", 2265 | "libc", 2266 | "serde", 2267 | ] 2268 | 2269 | [[package]] 2270 | name = "qoi" 2271 | version = "0.4.1" 2272 | source = "registry+https://github.com/rust-lang/crates.io-index" 2273 | checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" 2274 | dependencies = [ 2275 | "bytemuck", 2276 | ] 2277 | 2278 | [[package]] 2279 | name = "quote" 2280 | version = "1.0.32" 2281 | source = "registry+https://github.com/rust-lang/crates.io-index" 2282 | checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" 2283 | dependencies = [ 2284 | "proc-macro2", 2285 | ] 2286 | 2287 | [[package]] 2288 | name = "rand" 2289 | version = "0.7.3" 2290 | source = "registry+https://github.com/rust-lang/crates.io-index" 2291 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 2292 | dependencies = [ 2293 | "getrandom 0.1.16", 2294 | "libc", 2295 | "rand_chacha 0.2.2", 2296 | "rand_core 0.5.1", 2297 | "rand_hc", 2298 | ] 2299 | 2300 | [[package]] 2301 | name = "rand" 2302 | version = "0.8.5" 2303 | source = "registry+https://github.com/rust-lang/crates.io-index" 2304 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2305 | dependencies = [ 2306 | "libc", 2307 | "rand_chacha 0.3.1", 2308 | "rand_core 0.6.4", 2309 | ] 2310 | 2311 | [[package]] 2312 | name = "rand_chacha" 2313 | version = "0.2.2" 2314 | source = "registry+https://github.com/rust-lang/crates.io-index" 2315 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 2316 | dependencies = [ 2317 | "ppv-lite86", 2318 | "rand_core 0.5.1", 2319 | ] 2320 | 2321 | [[package]] 2322 | name = "rand_chacha" 2323 | version = "0.3.1" 2324 | source = "registry+https://github.com/rust-lang/crates.io-index" 2325 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2326 | dependencies = [ 2327 | "ppv-lite86", 2328 | "rand_core 0.6.4", 2329 | ] 2330 | 2331 | [[package]] 2332 | name = "rand_core" 2333 | version = "0.5.1" 2334 | source = "registry+https://github.com/rust-lang/crates.io-index" 2335 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 2336 | dependencies = [ 2337 | "getrandom 0.1.16", 2338 | ] 2339 | 2340 | [[package]] 2341 | name = "rand_core" 2342 | version = "0.6.4" 2343 | source = "registry+https://github.com/rust-lang/crates.io-index" 2344 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2345 | dependencies = [ 2346 | "getrandom 0.2.10", 2347 | ] 2348 | 2349 | [[package]] 2350 | name = "rand_hc" 2351 | version = "0.2.0" 2352 | source = "registry+https://github.com/rust-lang/crates.io-index" 2353 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 2354 | dependencies = [ 2355 | "rand_core 0.5.1", 2356 | ] 2357 | 2358 | [[package]] 2359 | name = "raw-window-handle" 2360 | version = "0.5.2" 2361 | source = "registry+https://github.com/rust-lang/crates.io-index" 2362 | checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 2363 | 2364 | [[package]] 2365 | name = "rayon" 2366 | version = "1.7.0" 2367 | source = "registry+https://github.com/rust-lang/crates.io-index" 2368 | checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" 2369 | dependencies = [ 2370 | "either", 2371 | "rayon-core", 2372 | ] 2373 | 2374 | [[package]] 2375 | name = "rayon-core" 2376 | version = "1.11.0" 2377 | source = "registry+https://github.com/rust-lang/crates.io-index" 2378 | checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" 2379 | dependencies = [ 2380 | "crossbeam-channel", 2381 | "crossbeam-deque", 2382 | "crossbeam-utils", 2383 | "num_cpus", 2384 | ] 2385 | 2386 | [[package]] 2387 | name = "redox_syscall" 2388 | version = "0.3.5" 2389 | source = "registry+https://github.com/rust-lang/crates.io-index" 2390 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 2391 | dependencies = [ 2392 | "bitflags 1.3.2", 2393 | ] 2394 | 2395 | [[package]] 2396 | name = "regex" 2397 | version = "1.9.3" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" 2400 | dependencies = [ 2401 | "aho-corasick", 2402 | "memchr", 2403 | "regex-automata", 2404 | "regex-syntax", 2405 | ] 2406 | 2407 | [[package]] 2408 | name = "regex-automata" 2409 | version = "0.3.6" 2410 | source = "registry+https://github.com/rust-lang/crates.io-index" 2411 | checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" 2412 | dependencies = [ 2413 | "aho-corasick", 2414 | "memchr", 2415 | "regex-syntax", 2416 | ] 2417 | 2418 | [[package]] 2419 | name = "regex-syntax" 2420 | version = "0.7.4" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" 2423 | 2424 | [[package]] 2425 | name = "rlua" 2426 | version = "0.19.7" 2427 | source = "registry+https://github.com/rust-lang/crates.io-index" 2428 | checksum = "5d33e5ba15c3d43178f283ed5863d4531e292fc0e56fb773f3bea45f18e3a42a" 2429 | dependencies = [ 2430 | "bitflags 1.3.2", 2431 | "bstr", 2432 | "libc", 2433 | "num-traits", 2434 | "rlua-lua54-sys", 2435 | ] 2436 | 2437 | [[package]] 2438 | name = "rlua-lua54-sys" 2439 | version = "0.1.6" 2440 | source = "registry+https://github.com/rust-lang/crates.io-index" 2441 | checksum = "7aafabafe1895cb4a2be81a56d7ff3d46bf4b5d2f9cfdbea2ed404cdabe96474" 2442 | dependencies = [ 2443 | "cc", 2444 | "libc", 2445 | "pkg-config", 2446 | ] 2447 | 2448 | [[package]] 2449 | name = "rustc-demangle" 2450 | version = "0.1.23" 2451 | source = "registry+https://github.com/rust-lang/crates.io-index" 2452 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 2453 | 2454 | [[package]] 2455 | name = "rustix" 2456 | version = "0.37.23" 2457 | source = "registry+https://github.com/rust-lang/crates.io-index" 2458 | checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" 2459 | dependencies = [ 2460 | "bitflags 1.3.2", 2461 | "errno", 2462 | "io-lifetimes", 2463 | "libc", 2464 | "linux-raw-sys 0.3.8", 2465 | "windows-sys 0.48.0", 2466 | ] 2467 | 2468 | [[package]] 2469 | name = "rustix" 2470 | version = "0.38.7" 2471 | source = "registry+https://github.com/rust-lang/crates.io-index" 2472 | checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399" 2473 | dependencies = [ 2474 | "bitflags 2.3.3", 2475 | "errno", 2476 | "libc", 2477 | "linux-raw-sys 0.4.5", 2478 | "windows-sys 0.48.0", 2479 | ] 2480 | 2481 | [[package]] 2482 | name = "same-file" 2483 | version = "1.0.6" 2484 | source = "registry+https://github.com/rust-lang/crates.io-index" 2485 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2486 | dependencies = [ 2487 | "winapi-util", 2488 | ] 2489 | 2490 | [[package]] 2491 | name = "scoped-tls" 2492 | version = "1.0.1" 2493 | source = "registry+https://github.com/rust-lang/crates.io-index" 2494 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2495 | 2496 | [[package]] 2497 | name = "scopeguard" 2498 | version = "1.2.0" 2499 | source = "registry+https://github.com/rust-lang/crates.io-index" 2500 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2501 | 2502 | [[package]] 2503 | name = "sctk-adwaita" 2504 | version = "0.5.4" 2505 | source = "registry+https://github.com/rust-lang/crates.io-index" 2506 | checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" 2507 | dependencies = [ 2508 | "ab_glyph", 2509 | "log", 2510 | "memmap2", 2511 | "smithay-client-toolkit", 2512 | "tiny-skia", 2513 | ] 2514 | 2515 | [[package]] 2516 | name = "serde" 2517 | version = "1.0.183" 2518 | source = "registry+https://github.com/rust-lang/crates.io-index" 2519 | checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" 2520 | dependencies = [ 2521 | "serde_derive", 2522 | ] 2523 | 2524 | [[package]] 2525 | name = "serde_derive" 2526 | version = "1.0.183" 2527 | source = "registry+https://github.com/rust-lang/crates.io-index" 2528 | checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" 2529 | dependencies = [ 2530 | "proc-macro2", 2531 | "quote", 2532 | "syn 2.0.28", 2533 | ] 2534 | 2535 | [[package]] 2536 | name = "serde_repr" 2537 | version = "0.1.16" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00" 2540 | dependencies = [ 2541 | "proc-macro2", 2542 | "quote", 2543 | "syn 2.0.28", 2544 | ] 2545 | 2546 | [[package]] 2547 | name = "sha1" 2548 | version = "0.10.5" 2549 | source = "registry+https://github.com/rust-lang/crates.io-index" 2550 | checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" 2551 | dependencies = [ 2552 | "cfg-if 1.0.0", 2553 | "cpufeatures", 2554 | "digest", 2555 | ] 2556 | 2557 | [[package]] 2558 | name = "signal-hook" 2559 | version = "0.3.17" 2560 | source = "registry+https://github.com/rust-lang/crates.io-index" 2561 | checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" 2562 | dependencies = [ 2563 | "libc", 2564 | "signal-hook-registry", 2565 | ] 2566 | 2567 | [[package]] 2568 | name = "signal-hook-registry" 2569 | version = "1.4.1" 2570 | source = "registry+https://github.com/rust-lang/crates.io-index" 2571 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 2572 | dependencies = [ 2573 | "libc", 2574 | ] 2575 | 2576 | [[package]] 2577 | name = "simd-adler32" 2578 | version = "0.3.7" 2579 | source = "registry+https://github.com/rust-lang/crates.io-index" 2580 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 2581 | 2582 | [[package]] 2583 | name = "slab" 2584 | version = "0.4.8" 2585 | source = "registry+https://github.com/rust-lang/crates.io-index" 2586 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 2587 | dependencies = [ 2588 | "autocfg", 2589 | ] 2590 | 2591 | [[package]] 2592 | name = "slotmap" 2593 | version = "1.0.6" 2594 | source = "registry+https://github.com/rust-lang/crates.io-index" 2595 | checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" 2596 | dependencies = [ 2597 | "version_check", 2598 | ] 2599 | 2600 | [[package]] 2601 | name = "smallvec" 2602 | version = "1.11.0" 2603 | source = "registry+https://github.com/rust-lang/crates.io-index" 2604 | checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" 2605 | 2606 | [[package]] 2607 | name = "smithay-client-toolkit" 2608 | version = "0.16.0" 2609 | source = "registry+https://github.com/rust-lang/crates.io-index" 2610 | checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" 2611 | dependencies = [ 2612 | "bitflags 1.3.2", 2613 | "calloop", 2614 | "dlib", 2615 | "lazy_static", 2616 | "log", 2617 | "memmap2", 2618 | "nix 0.24.3", 2619 | "pkg-config", 2620 | "wayland-client", 2621 | "wayland-cursor", 2622 | "wayland-protocols", 2623 | ] 2624 | 2625 | [[package]] 2626 | name = "smithay-clipboard" 2627 | version = "0.6.6" 2628 | source = "registry+https://github.com/rust-lang/crates.io-index" 2629 | checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" 2630 | dependencies = [ 2631 | "smithay-client-toolkit", 2632 | "wayland-client", 2633 | ] 2634 | 2635 | [[package]] 2636 | name = "socket2" 2637 | version = "0.4.9" 2638 | source = "registry+https://github.com/rust-lang/crates.io-index" 2639 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 2640 | dependencies = [ 2641 | "libc", 2642 | "winapi 0.3.9", 2643 | ] 2644 | 2645 | [[package]] 2646 | name = "spin" 2647 | version = "0.9.8" 2648 | source = "registry+https://github.com/rust-lang/crates.io-index" 2649 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 2650 | dependencies = [ 2651 | "lock_api", 2652 | ] 2653 | 2654 | [[package]] 2655 | name = "static_assertions" 2656 | version = "1.1.0" 2657 | source = "registry+https://github.com/rust-lang/crates.io-index" 2658 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2659 | 2660 | [[package]] 2661 | name = "str-buf" 2662 | version = "1.0.6" 2663 | source = "registry+https://github.com/rust-lang/crates.io-index" 2664 | checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" 2665 | 2666 | [[package]] 2667 | name = "strict-num" 2668 | version = "0.1.1" 2669 | source = "registry+https://github.com/rust-lang/crates.io-index" 2670 | checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" 2671 | 2672 | [[package]] 2673 | name = "syn" 2674 | version = "1.0.109" 2675 | source = "registry+https://github.com/rust-lang/crates.io-index" 2676 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2677 | dependencies = [ 2678 | "proc-macro2", 2679 | "quote", 2680 | "unicode-ident", 2681 | ] 2682 | 2683 | [[package]] 2684 | name = "syn" 2685 | version = "2.0.28" 2686 | source = "registry+https://github.com/rust-lang/crates.io-index" 2687 | checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" 2688 | dependencies = [ 2689 | "proc-macro2", 2690 | "quote", 2691 | "unicode-ident", 2692 | ] 2693 | 2694 | [[package]] 2695 | name = "tempfile" 2696 | version = "3.7.1" 2697 | source = "registry+https://github.com/rust-lang/crates.io-index" 2698 | checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" 2699 | dependencies = [ 2700 | "cfg-if 1.0.0", 2701 | "fastrand 2.0.0", 2702 | "redox_syscall", 2703 | "rustix 0.38.7", 2704 | "windows-sys 0.48.0", 2705 | ] 2706 | 2707 | [[package]] 2708 | name = "termcolor" 2709 | version = "1.2.0" 2710 | source = "registry+https://github.com/rust-lang/crates.io-index" 2711 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 2712 | dependencies = [ 2713 | "winapi-util", 2714 | ] 2715 | 2716 | [[package]] 2717 | name = "thiserror" 2718 | version = "1.0.44" 2719 | source = "registry+https://github.com/rust-lang/crates.io-index" 2720 | checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" 2721 | dependencies = [ 2722 | "thiserror-impl", 2723 | ] 2724 | 2725 | [[package]] 2726 | name = "thiserror-impl" 2727 | version = "1.0.44" 2728 | source = "registry+https://github.com/rust-lang/crates.io-index" 2729 | checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" 2730 | dependencies = [ 2731 | "proc-macro2", 2732 | "quote", 2733 | "syn 2.0.28", 2734 | ] 2735 | 2736 | [[package]] 2737 | name = "tiff" 2738 | version = "0.9.0" 2739 | source = "registry+https://github.com/rust-lang/crates.io-index" 2740 | checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" 2741 | dependencies = [ 2742 | "flate2", 2743 | "jpeg-decoder", 2744 | "weezl", 2745 | ] 2746 | 2747 | [[package]] 2748 | name = "time" 2749 | version = "0.1.45" 2750 | source = "registry+https://github.com/rust-lang/crates.io-index" 2751 | checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" 2752 | dependencies = [ 2753 | "libc", 2754 | "wasi 0.10.0+wasi-snapshot-preview1", 2755 | "winapi 0.3.9", 2756 | ] 2757 | 2758 | [[package]] 2759 | name = "tiny-skia" 2760 | version = "0.8.4" 2761 | source = "registry+https://github.com/rust-lang/crates.io-index" 2762 | checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" 2763 | dependencies = [ 2764 | "arrayref", 2765 | "arrayvec", 2766 | "bytemuck", 2767 | "cfg-if 1.0.0", 2768 | "png", 2769 | "tiny-skia-path", 2770 | ] 2771 | 2772 | [[package]] 2773 | name = "tiny-skia-path" 2774 | version = "0.8.4" 2775 | source = "registry+https://github.com/rust-lang/crates.io-index" 2776 | checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" 2777 | dependencies = [ 2778 | "arrayref", 2779 | "bytemuck", 2780 | "strict-num", 2781 | ] 2782 | 2783 | [[package]] 2784 | name = "tinyvec" 2785 | version = "1.6.0" 2786 | source = "registry+https://github.com/rust-lang/crates.io-index" 2787 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2788 | dependencies = [ 2789 | "tinyvec_macros", 2790 | ] 2791 | 2792 | [[package]] 2793 | name = "tinyvec_macros" 2794 | version = "0.1.1" 2795 | source = "registry+https://github.com/rust-lang/crates.io-index" 2796 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2797 | 2798 | [[package]] 2799 | name = "toml_datetime" 2800 | version = "0.6.3" 2801 | source = "registry+https://github.com/rust-lang/crates.io-index" 2802 | checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 2803 | 2804 | [[package]] 2805 | name = "toml_edit" 2806 | version = "0.19.14" 2807 | source = "registry+https://github.com/rust-lang/crates.io-index" 2808 | checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" 2809 | dependencies = [ 2810 | "indexmap", 2811 | "toml_datetime", 2812 | "winnow", 2813 | ] 2814 | 2815 | [[package]] 2816 | name = "tracing" 2817 | version = "0.1.37" 2818 | source = "registry+https://github.com/rust-lang/crates.io-index" 2819 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 2820 | dependencies = [ 2821 | "cfg-if 1.0.0", 2822 | "pin-project-lite", 2823 | "tracing-attributes", 2824 | "tracing-core", 2825 | ] 2826 | 2827 | [[package]] 2828 | name = "tracing-attributes" 2829 | version = "0.1.26" 2830 | source = "registry+https://github.com/rust-lang/crates.io-index" 2831 | checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" 2832 | dependencies = [ 2833 | "proc-macro2", 2834 | "quote", 2835 | "syn 2.0.28", 2836 | ] 2837 | 2838 | [[package]] 2839 | name = "tracing-core" 2840 | version = "0.1.31" 2841 | source = "registry+https://github.com/rust-lang/crates.io-index" 2842 | checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" 2843 | dependencies = [ 2844 | "once_cell", 2845 | ] 2846 | 2847 | [[package]] 2848 | name = "ttf-parser" 2849 | version = "0.19.1" 2850 | source = "registry+https://github.com/rust-lang/crates.io-index" 2851 | checksum = "a464a4b34948a5f67fddd2b823c62d9d92e44be75058b99939eae6c5b6960b33" 2852 | 2853 | [[package]] 2854 | name = "typenum" 2855 | version = "1.16.0" 2856 | source = "registry+https://github.com/rust-lang/crates.io-index" 2857 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 2858 | 2859 | [[package]] 2860 | name = "uds_windows" 2861 | version = "1.0.2" 2862 | source = "registry+https://github.com/rust-lang/crates.io-index" 2863 | checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d" 2864 | dependencies = [ 2865 | "tempfile", 2866 | "winapi 0.3.9", 2867 | ] 2868 | 2869 | [[package]] 2870 | name = "unicode-bidi" 2871 | version = "0.3.13" 2872 | source = "registry+https://github.com/rust-lang/crates.io-index" 2873 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 2874 | 2875 | [[package]] 2876 | name = "unicode-ident" 2877 | version = "1.0.11" 2878 | source = "registry+https://github.com/rust-lang/crates.io-index" 2879 | checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" 2880 | 2881 | [[package]] 2882 | name = "unicode-normalization" 2883 | version = "0.1.22" 2884 | source = "registry+https://github.com/rust-lang/crates.io-index" 2885 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2886 | dependencies = [ 2887 | "tinyvec", 2888 | ] 2889 | 2890 | [[package]] 2891 | name = "url" 2892 | version = "2.4.0" 2893 | source = "registry+https://github.com/rust-lang/crates.io-index" 2894 | checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" 2895 | dependencies = [ 2896 | "form_urlencoded", 2897 | "idna", 2898 | "percent-encoding", 2899 | ] 2900 | 2901 | [[package]] 2902 | name = "uuid" 2903 | version = "1.4.1" 2904 | source = "registry+https://github.com/rust-lang/crates.io-index" 2905 | checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" 2906 | dependencies = [ 2907 | "getrandom 0.2.10", 2908 | ] 2909 | 2910 | [[package]] 2911 | name = "vec_map" 2912 | version = "0.8.2" 2913 | source = "registry+https://github.com/rust-lang/crates.io-index" 2914 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 2915 | 2916 | [[package]] 2917 | name = "version_check" 2918 | version = "0.9.4" 2919 | source = "registry+https://github.com/rust-lang/crates.io-index" 2920 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2921 | 2922 | [[package]] 2923 | name = "waker-fn" 2924 | version = "1.1.0" 2925 | source = "registry+https://github.com/rust-lang/crates.io-index" 2926 | checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" 2927 | 2928 | [[package]] 2929 | name = "walkdir" 2930 | version = "2.3.3" 2931 | source = "registry+https://github.com/rust-lang/crates.io-index" 2932 | checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" 2933 | dependencies = [ 2934 | "same-file", 2935 | "winapi-util", 2936 | ] 2937 | 2938 | [[package]] 2939 | name = "wasi" 2940 | version = "0.9.0+wasi-snapshot-preview1" 2941 | source = "registry+https://github.com/rust-lang/crates.io-index" 2942 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 2943 | 2944 | [[package]] 2945 | name = "wasi" 2946 | version = "0.10.0+wasi-snapshot-preview1" 2947 | source = "registry+https://github.com/rust-lang/crates.io-index" 2948 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 2949 | 2950 | [[package]] 2951 | name = "wasi" 2952 | version = "0.11.0+wasi-snapshot-preview1" 2953 | source = "registry+https://github.com/rust-lang/crates.io-index" 2954 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2955 | 2956 | [[package]] 2957 | name = "wasm-bindgen" 2958 | version = "0.2.87" 2959 | source = "registry+https://github.com/rust-lang/crates.io-index" 2960 | checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" 2961 | dependencies = [ 2962 | "cfg-if 1.0.0", 2963 | "wasm-bindgen-macro", 2964 | ] 2965 | 2966 | [[package]] 2967 | name = "wasm-bindgen-backend" 2968 | version = "0.2.87" 2969 | source = "registry+https://github.com/rust-lang/crates.io-index" 2970 | checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" 2971 | dependencies = [ 2972 | "bumpalo", 2973 | "log", 2974 | "once_cell", 2975 | "proc-macro2", 2976 | "quote", 2977 | "syn 2.0.28", 2978 | "wasm-bindgen-shared", 2979 | ] 2980 | 2981 | [[package]] 2982 | name = "wasm-bindgen-futures" 2983 | version = "0.4.37" 2984 | source = "registry+https://github.com/rust-lang/crates.io-index" 2985 | checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" 2986 | dependencies = [ 2987 | "cfg-if 1.0.0", 2988 | "js-sys", 2989 | "wasm-bindgen", 2990 | "web-sys", 2991 | ] 2992 | 2993 | [[package]] 2994 | name = "wasm-bindgen-macro" 2995 | version = "0.2.87" 2996 | source = "registry+https://github.com/rust-lang/crates.io-index" 2997 | checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" 2998 | dependencies = [ 2999 | "quote", 3000 | "wasm-bindgen-macro-support", 3001 | ] 3002 | 3003 | [[package]] 3004 | name = "wasm-bindgen-macro-support" 3005 | version = "0.2.87" 3006 | source = "registry+https://github.com/rust-lang/crates.io-index" 3007 | checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" 3008 | dependencies = [ 3009 | "proc-macro2", 3010 | "quote", 3011 | "syn 2.0.28", 3012 | "wasm-bindgen-backend", 3013 | "wasm-bindgen-shared", 3014 | ] 3015 | 3016 | [[package]] 3017 | name = "wasm-bindgen-shared" 3018 | version = "0.2.87" 3019 | source = "registry+https://github.com/rust-lang/crates.io-index" 3020 | checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" 3021 | 3022 | [[package]] 3023 | name = "wayland-client" 3024 | version = "0.29.5" 3025 | source = "registry+https://github.com/rust-lang/crates.io-index" 3026 | checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" 3027 | dependencies = [ 3028 | "bitflags 1.3.2", 3029 | "downcast-rs", 3030 | "libc", 3031 | "nix 0.24.3", 3032 | "scoped-tls", 3033 | "wayland-commons", 3034 | "wayland-scanner", 3035 | "wayland-sys 0.29.5", 3036 | ] 3037 | 3038 | [[package]] 3039 | name = "wayland-commons" 3040 | version = "0.29.5" 3041 | source = "registry+https://github.com/rust-lang/crates.io-index" 3042 | checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" 3043 | dependencies = [ 3044 | "nix 0.24.3", 3045 | "once_cell", 3046 | "smallvec", 3047 | "wayland-sys 0.29.5", 3048 | ] 3049 | 3050 | [[package]] 3051 | name = "wayland-cursor" 3052 | version = "0.29.5" 3053 | source = "registry+https://github.com/rust-lang/crates.io-index" 3054 | checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" 3055 | dependencies = [ 3056 | "nix 0.24.3", 3057 | "wayland-client", 3058 | "xcursor", 3059 | ] 3060 | 3061 | [[package]] 3062 | name = "wayland-protocols" 3063 | version = "0.29.5" 3064 | source = "registry+https://github.com/rust-lang/crates.io-index" 3065 | checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" 3066 | dependencies = [ 3067 | "bitflags 1.3.2", 3068 | "wayland-client", 3069 | "wayland-commons", 3070 | "wayland-scanner", 3071 | ] 3072 | 3073 | [[package]] 3074 | name = "wayland-scanner" 3075 | version = "0.29.5" 3076 | source = "registry+https://github.com/rust-lang/crates.io-index" 3077 | checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" 3078 | dependencies = [ 3079 | "proc-macro2", 3080 | "quote", 3081 | "xml-rs", 3082 | ] 3083 | 3084 | [[package]] 3085 | name = "wayland-sys" 3086 | version = "0.29.5" 3087 | source = "registry+https://github.com/rust-lang/crates.io-index" 3088 | checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" 3089 | dependencies = [ 3090 | "dlib", 3091 | "lazy_static", 3092 | "pkg-config", 3093 | ] 3094 | 3095 | [[package]] 3096 | name = "wayland-sys" 3097 | version = "0.30.1" 3098 | source = "registry+https://github.com/rust-lang/crates.io-index" 3099 | checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" 3100 | dependencies = [ 3101 | "dlib", 3102 | "lazy_static", 3103 | "log", 3104 | "pkg-config", 3105 | ] 3106 | 3107 | [[package]] 3108 | name = "web-sys" 3109 | version = "0.3.64" 3110 | source = "registry+https://github.com/rust-lang/crates.io-index" 3111 | checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" 3112 | dependencies = [ 3113 | "js-sys", 3114 | "wasm-bindgen", 3115 | ] 3116 | 3117 | [[package]] 3118 | name = "webbrowser" 3119 | version = "0.8.10" 3120 | source = "registry+https://github.com/rust-lang/crates.io-index" 3121 | checksum = "fd222aa310eb7532e3fd427a5d7db7e44bc0b0cf1c1e21139c345325511a85b6" 3122 | dependencies = [ 3123 | "core-foundation", 3124 | "home", 3125 | "jni", 3126 | "log", 3127 | "ndk-context", 3128 | "objc", 3129 | "raw-window-handle", 3130 | "url", 3131 | "web-sys", 3132 | ] 3133 | 3134 | [[package]] 3135 | name = "weezl" 3136 | version = "0.1.7" 3137 | source = "registry+https://github.com/rust-lang/crates.io-index" 3138 | checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" 3139 | 3140 | [[package]] 3141 | name = "winapi" 3142 | version = "0.2.8" 3143 | source = "registry+https://github.com/rust-lang/crates.io-index" 3144 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 3145 | 3146 | [[package]] 3147 | name = "winapi" 3148 | version = "0.3.9" 3149 | source = "registry+https://github.com/rust-lang/crates.io-index" 3150 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3151 | dependencies = [ 3152 | "winapi-i686-pc-windows-gnu", 3153 | "winapi-x86_64-pc-windows-gnu", 3154 | ] 3155 | 3156 | [[package]] 3157 | name = "winapi-build" 3158 | version = "0.1.1" 3159 | source = "registry+https://github.com/rust-lang/crates.io-index" 3160 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 3161 | 3162 | [[package]] 3163 | name = "winapi-i686-pc-windows-gnu" 3164 | version = "0.4.0" 3165 | source = "registry+https://github.com/rust-lang/crates.io-index" 3166 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3167 | 3168 | [[package]] 3169 | name = "winapi-util" 3170 | version = "0.1.5" 3171 | source = "registry+https://github.com/rust-lang/crates.io-index" 3172 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 3173 | dependencies = [ 3174 | "winapi 0.3.9", 3175 | ] 3176 | 3177 | [[package]] 3178 | name = "winapi-wsapoll" 3179 | version = "0.1.1" 3180 | source = "registry+https://github.com/rust-lang/crates.io-index" 3181 | checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" 3182 | dependencies = [ 3183 | "winapi 0.3.9", 3184 | ] 3185 | 3186 | [[package]] 3187 | name = "winapi-x86_64-pc-windows-gnu" 3188 | version = "0.4.0" 3189 | source = "registry+https://github.com/rust-lang/crates.io-index" 3190 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3191 | 3192 | [[package]] 3193 | name = "windows" 3194 | version = "0.48.0" 3195 | source = "registry+https://github.com/rust-lang/crates.io-index" 3196 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 3197 | dependencies = [ 3198 | "windows-implement", 3199 | "windows-interface", 3200 | "windows-targets 0.48.1", 3201 | ] 3202 | 3203 | [[package]] 3204 | name = "windows-implement" 3205 | version = "0.48.0" 3206 | source = "registry+https://github.com/rust-lang/crates.io-index" 3207 | checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" 3208 | dependencies = [ 3209 | "proc-macro2", 3210 | "quote", 3211 | "syn 1.0.109", 3212 | ] 3213 | 3214 | [[package]] 3215 | name = "windows-interface" 3216 | version = "0.48.0" 3217 | source = "registry+https://github.com/rust-lang/crates.io-index" 3218 | checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" 3219 | dependencies = [ 3220 | "proc-macro2", 3221 | "quote", 3222 | "syn 1.0.109", 3223 | ] 3224 | 3225 | [[package]] 3226 | name = "windows-sys" 3227 | version = "0.45.0" 3228 | source = "registry+https://github.com/rust-lang/crates.io-index" 3229 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 3230 | dependencies = [ 3231 | "windows-targets 0.42.2", 3232 | ] 3233 | 3234 | [[package]] 3235 | name = "windows-sys" 3236 | version = "0.48.0" 3237 | source = "registry+https://github.com/rust-lang/crates.io-index" 3238 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3239 | dependencies = [ 3240 | "windows-targets 0.48.1", 3241 | ] 3242 | 3243 | [[package]] 3244 | name = "windows-targets" 3245 | version = "0.42.2" 3246 | source = "registry+https://github.com/rust-lang/crates.io-index" 3247 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 3248 | dependencies = [ 3249 | "windows_aarch64_gnullvm 0.42.2", 3250 | "windows_aarch64_msvc 0.42.2", 3251 | "windows_i686_gnu 0.42.2", 3252 | "windows_i686_msvc 0.42.2", 3253 | "windows_x86_64_gnu 0.42.2", 3254 | "windows_x86_64_gnullvm 0.42.2", 3255 | "windows_x86_64_msvc 0.42.2", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "windows-targets" 3260 | version = "0.48.1" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" 3263 | dependencies = [ 3264 | "windows_aarch64_gnullvm 0.48.0", 3265 | "windows_aarch64_msvc 0.48.0", 3266 | "windows_i686_gnu 0.48.0", 3267 | "windows_i686_msvc 0.48.0", 3268 | "windows_x86_64_gnu 0.48.0", 3269 | "windows_x86_64_gnullvm 0.48.0", 3270 | "windows_x86_64_msvc 0.48.0", 3271 | ] 3272 | 3273 | [[package]] 3274 | name = "windows_aarch64_gnullvm" 3275 | version = "0.42.2" 3276 | source = "registry+https://github.com/rust-lang/crates.io-index" 3277 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 3278 | 3279 | [[package]] 3280 | name = "windows_aarch64_gnullvm" 3281 | version = "0.48.0" 3282 | source = "registry+https://github.com/rust-lang/crates.io-index" 3283 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 3284 | 3285 | [[package]] 3286 | name = "windows_aarch64_msvc" 3287 | version = "0.42.2" 3288 | source = "registry+https://github.com/rust-lang/crates.io-index" 3289 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 3290 | 3291 | [[package]] 3292 | name = "windows_aarch64_msvc" 3293 | version = "0.48.0" 3294 | source = "registry+https://github.com/rust-lang/crates.io-index" 3295 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 3296 | 3297 | [[package]] 3298 | name = "windows_i686_gnu" 3299 | version = "0.42.2" 3300 | source = "registry+https://github.com/rust-lang/crates.io-index" 3301 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 3302 | 3303 | [[package]] 3304 | name = "windows_i686_gnu" 3305 | version = "0.48.0" 3306 | source = "registry+https://github.com/rust-lang/crates.io-index" 3307 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 3308 | 3309 | [[package]] 3310 | name = "windows_i686_msvc" 3311 | version = "0.42.2" 3312 | source = "registry+https://github.com/rust-lang/crates.io-index" 3313 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 3314 | 3315 | [[package]] 3316 | name = "windows_i686_msvc" 3317 | version = "0.48.0" 3318 | source = "registry+https://github.com/rust-lang/crates.io-index" 3319 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 3320 | 3321 | [[package]] 3322 | name = "windows_x86_64_gnu" 3323 | version = "0.42.2" 3324 | source = "registry+https://github.com/rust-lang/crates.io-index" 3325 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 3326 | 3327 | [[package]] 3328 | name = "windows_x86_64_gnu" 3329 | version = "0.48.0" 3330 | source = "registry+https://github.com/rust-lang/crates.io-index" 3331 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 3332 | 3333 | [[package]] 3334 | name = "windows_x86_64_gnullvm" 3335 | version = "0.42.2" 3336 | source = "registry+https://github.com/rust-lang/crates.io-index" 3337 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 3338 | 3339 | [[package]] 3340 | name = "windows_x86_64_gnullvm" 3341 | version = "0.48.0" 3342 | source = "registry+https://github.com/rust-lang/crates.io-index" 3343 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 3344 | 3345 | [[package]] 3346 | name = "windows_x86_64_msvc" 3347 | version = "0.42.2" 3348 | source = "registry+https://github.com/rust-lang/crates.io-index" 3349 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 3350 | 3351 | [[package]] 3352 | name = "windows_x86_64_msvc" 3353 | version = "0.48.0" 3354 | source = "registry+https://github.com/rust-lang/crates.io-index" 3355 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 3356 | 3357 | [[package]] 3358 | name = "winit" 3359 | version = "0.28.6" 3360 | source = "registry+https://github.com/rust-lang/crates.io-index" 3361 | checksum = "866db3f712fffba75d31bf0cdecf357c8aeafd158c5b7ab51dba2a2b2d47f196" 3362 | dependencies = [ 3363 | "android-activity", 3364 | "bitflags 1.3.2", 3365 | "cfg_aliases", 3366 | "core-foundation", 3367 | "core-graphics", 3368 | "dispatch", 3369 | "instant", 3370 | "libc", 3371 | "log", 3372 | "mio 0.8.8", 3373 | "ndk", 3374 | "objc2", 3375 | "once_cell", 3376 | "orbclient", 3377 | "percent-encoding", 3378 | "raw-window-handle", 3379 | "redox_syscall", 3380 | "sctk-adwaita", 3381 | "smithay-client-toolkit", 3382 | "wasm-bindgen", 3383 | "wayland-client", 3384 | "wayland-commons", 3385 | "wayland-protocols", 3386 | "wayland-scanner", 3387 | "web-sys", 3388 | "windows-sys 0.45.0", 3389 | "x11-dl", 3390 | ] 3391 | 3392 | [[package]] 3393 | name = "winnow" 3394 | version = "0.5.4" 3395 | source = "registry+https://github.com/rust-lang/crates.io-index" 3396 | checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64" 3397 | dependencies = [ 3398 | "memchr", 3399 | ] 3400 | 3401 | [[package]] 3402 | name = "ws2_32-sys" 3403 | version = "0.2.1" 3404 | source = "registry+https://github.com/rust-lang/crates.io-index" 3405 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 3406 | dependencies = [ 3407 | "winapi 0.2.8", 3408 | "winapi-build", 3409 | ] 3410 | 3411 | [[package]] 3412 | name = "x11-dl" 3413 | version = "2.21.0" 3414 | source = "registry+https://github.com/rust-lang/crates.io-index" 3415 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 3416 | dependencies = [ 3417 | "libc", 3418 | "once_cell", 3419 | "pkg-config", 3420 | ] 3421 | 3422 | [[package]] 3423 | name = "x11rb" 3424 | version = "0.10.1" 3425 | source = "registry+https://github.com/rust-lang/crates.io-index" 3426 | checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" 3427 | dependencies = [ 3428 | "gethostname", 3429 | "nix 0.24.3", 3430 | "winapi 0.3.9", 3431 | "winapi-wsapoll", 3432 | "x11rb-protocol", 3433 | ] 3434 | 3435 | [[package]] 3436 | name = "x11rb-protocol" 3437 | version = "0.10.0" 3438 | source = "registry+https://github.com/rust-lang/crates.io-index" 3439 | checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" 3440 | dependencies = [ 3441 | "nix 0.24.3", 3442 | ] 3443 | 3444 | [[package]] 3445 | name = "xcursor" 3446 | version = "0.3.4" 3447 | source = "registry+https://github.com/rust-lang/crates.io-index" 3448 | checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" 3449 | dependencies = [ 3450 | "nom", 3451 | ] 3452 | 3453 | [[package]] 3454 | name = "xdg-home" 3455 | version = "1.0.0" 3456 | source = "registry+https://github.com/rust-lang/crates.io-index" 3457 | checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" 3458 | dependencies = [ 3459 | "nix 0.26.2", 3460 | "winapi 0.3.9", 3461 | ] 3462 | 3463 | [[package]] 3464 | name = "xml-rs" 3465 | version = "0.8.16" 3466 | source = "registry+https://github.com/rust-lang/crates.io-index" 3467 | checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" 3468 | 3469 | [[package]] 3470 | name = "zbus" 3471 | version = "3.14.1" 3472 | source = "registry+https://github.com/rust-lang/crates.io-index" 3473 | checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" 3474 | dependencies = [ 3475 | "async-broadcast", 3476 | "async-executor", 3477 | "async-fs", 3478 | "async-io", 3479 | "async-lock", 3480 | "async-process", 3481 | "async-recursion", 3482 | "async-task", 3483 | "async-trait", 3484 | "blocking", 3485 | "byteorder", 3486 | "derivative", 3487 | "enumflags2", 3488 | "event-listener", 3489 | "futures-core", 3490 | "futures-sink", 3491 | "futures-util", 3492 | "hex", 3493 | "nix 0.26.2", 3494 | "once_cell", 3495 | "ordered-stream", 3496 | "rand 0.8.5", 3497 | "serde", 3498 | "serde_repr", 3499 | "sha1", 3500 | "static_assertions", 3501 | "tracing", 3502 | "uds_windows", 3503 | "winapi 0.3.9", 3504 | "xdg-home", 3505 | "zbus_macros", 3506 | "zbus_names", 3507 | "zvariant", 3508 | ] 3509 | 3510 | [[package]] 3511 | name = "zbus_macros" 3512 | version = "3.14.1" 3513 | source = "registry+https://github.com/rust-lang/crates.io-index" 3514 | checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" 3515 | dependencies = [ 3516 | "proc-macro-crate", 3517 | "proc-macro2", 3518 | "quote", 3519 | "regex", 3520 | "syn 1.0.109", 3521 | "zvariant_utils", 3522 | ] 3523 | 3524 | [[package]] 3525 | name = "zbus_names" 3526 | version = "2.6.0" 3527 | source = "registry+https://github.com/rust-lang/crates.io-index" 3528 | checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" 3529 | dependencies = [ 3530 | "serde", 3531 | "static_assertions", 3532 | "zvariant", 3533 | ] 3534 | 3535 | [[package]] 3536 | name = "zune-inflate" 3537 | version = "0.2.54" 3538 | source = "registry+https://github.com/rust-lang/crates.io-index" 3539 | checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" 3540 | dependencies = [ 3541 | "simd-adler32", 3542 | ] 3543 | 3544 | [[package]] 3545 | name = "zvariant" 3546 | version = "3.15.0" 3547 | source = "registry+https://github.com/rust-lang/crates.io-index" 3548 | checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" 3549 | dependencies = [ 3550 | "byteorder", 3551 | "enumflags2", 3552 | "libc", 3553 | "serde", 3554 | "static_assertions", 3555 | "zvariant_derive", 3556 | ] 3557 | 3558 | [[package]] 3559 | name = "zvariant_derive" 3560 | version = "3.15.0" 3561 | source = "registry+https://github.com/rust-lang/crates.io-index" 3562 | checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" 3563 | dependencies = [ 3564 | "proc-macro-crate", 3565 | "proc-macro2", 3566 | "quote", 3567 | "syn 1.0.109", 3568 | "zvariant_utils", 3569 | ] 3570 | 3571 | [[package]] 3572 | name = "zvariant_utils" 3573 | version = "1.0.1" 3574 | source = "registry+https://github.com/rust-lang/crates.io-index" 3575 | checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" 3576 | dependencies = [ 3577 | "proc-macro2", 3578 | "quote", 3579 | "syn 1.0.109", 3580 | ] 3581 | --------------------------------------------------------------------------------