├── .github └── img │ ├── screenshot-1.png │ ├── screenshot-2.png │ └── screenshot-3.png ├── .vscode ├── extensions.json └── settings.json ├── .gitignore ├── assets └── img │ ├── play.svg │ └── restart.svg ├── src ├── utils.rs ├── main.rs ├── pieces.rs ├── controller │ └── game_controller.rs └── game.rs ├── Cargo.toml ├── ui ├── theme.slint └── appwindow.slint ├── README.md ├── LICENSE └── Cargo.lock /.github/img/screenshot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaspardCulis/slint-tetris/HEAD/.github/img/screenshot-1.png -------------------------------------------------------------------------------- /.github/img/screenshot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaspardCulis/slint-tetris/HEAD/.github/img/screenshot-2.png -------------------------------------------------------------------------------- /.github/img/screenshot-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GaspardCulis/slint-tetris/HEAD/.github/img/screenshot-3.png -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "rust-lang.rust-analyzer", 4 | "Slint.slint" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # These are backup files generated by rustfmt 6 | **/*.rs.bk 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "rust-analyzer.linkedProjects": [ 3 | "./Cargo.toml", 4 | "./Cargo.toml", 5 | "./Cargo.toml", 6 | "./Cargo.toml" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /assets/img/play.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- 1 | pub struct Vector2 { 2 | x: i32, 3 | y: i32 4 | } 5 | 6 | impl Vector2 { 7 | fn new(x: i32, y: i32) -> Self { 8 | Vector2 {x, y} 9 | } 10 | } 11 | 12 | impl Vector2 { 13 | pub fn add(self, other: Self) -> Self { 14 | Vector2 { 15 | x: self.x + other.x, 16 | y: self.y + other.y 17 | } 18 | } 19 | 20 | pub fn sub(self, other: Self) -> Self { 21 | Vector2 { 22 | x: self.x - other.x, 23 | y: self.y - other.y 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "tetris-slint" 3 | version = "0.1.0" 4 | authors = ["a903823"] 5 | edition = "2021" 6 | build = "build.rs" 7 | 8 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 9 | 10 | [dependencies] 11 | rand = "0.8.5" 12 | slint = "1.0" 13 | 14 | [build-dependencies] 15 | slint-build = "1.0" 16 | 17 | [target.'cfg(target_arch = "wasm32")'.dependencies] 18 | wasm-bindgen = { version = "0.2" } 19 | getrandom = { version = "0.2.2", features = ["js"] } 20 | web-sys = { version = "0.3", features=["console", "Element", "HtmlCollection"] } 21 | console_error_panic_hook = "0.1.5" 22 | 23 | [lib] 24 | name = "lib_tetris_slint" 25 | path = "src/main.rs" 26 | crate-type = ["cdylib"] 27 | -------------------------------------------------------------------------------- /ui/theme.slint: -------------------------------------------------------------------------------- 1 | export struct Palette { 2 | primary: brush, 3 | secondary: brush, 4 | text: brush 5 | 6 | } 7 | 8 | export struct TextStyle { 9 | letter-spacing: length 10 | } 11 | 12 | export global Theme { 13 | in property palette: { 14 | primary: #EDEBE9, 15 | secondary: #AAA, 16 | 17 | text: #013E74 18 | }; 19 | 20 | in property textStyle: { 21 | letter-spacing: 3px 22 | }; 23 | } 24 | 25 | 26 | export global ThemeDark { 27 | in property palette: { 28 | primary: #1E2429, 29 | secondary: Colors.black, 30 | 31 | text: #EAEAE7 32 | }; 33 | 34 | in property textStyle: { 35 | letter-spacing: 3px 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /assets/img/restart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tetris Slint 2 | 3 | A Tetris remake that's using [Slint](https://slint-ui.com) for the user interface. [web-demo](https://gaspardculis.github.io/slint-tetris/) 4 | 5 | ## Showcase 6 | 7 | ![V1](.github/img/screenshot-1.png) 8 | *v1* 9 | 10 | ![V2-light](.github/img/screenshot-2.png) 11 | *v2 Light* 12 | 13 | ![V2-light](.github/img/screenshot-3.png) 14 | *v2 Dark* 15 | 16 | ## Usage 17 | 18 | ``` 19 | cargo run 20 | ``` 21 | 22 | ### Controls 23 | - Move right and left: `Q - D / ← - →` 24 | - Rotate right: `Z / ↑ / C` 25 | - Rotate left: `X` 26 | - Drop: `S / ↓` 27 | - Hard-drop: `` 28 | - Hold: `H` 29 | 30 | ## Next Steps 31 | 32 | - Add a level system to gradually increase speed 33 | - Add touch buttons 34 | 35 | ## Credits 36 | 37 | Thanks to [Wimble](https://dribbble.com/wimble) for [this](https://dribbble.com/shots/9976347-Neumorphic-Tetris) amazing Tetris UI design 38 | 39 | ## Star history 40 | 41 | [![Star History Chart](https://api.star-history.com/svg?repos=GaspardCulis/slint-tetris&type=Date)](https://star-history.com/#GaspardCulis/slint-tetris&Date) 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gaspard Culis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{cell::RefCell, rc::Rc, time::Duration}; 2 | 3 | use game::Game; 4 | use slint::{SharedString, Timer}; 5 | 6 | #[cfg(target_arch = "wasm32")] 7 | use wasm_bindgen::prelude::*; 8 | 9 | mod game; 10 | mod pieces; 11 | mod controller { 12 | pub mod game_controller; 13 | } 14 | use controller::*; 15 | 16 | pub mod ui { 17 | slint::include_modules!(); 18 | } 19 | use ui::*; 20 | 21 | #[cfg_attr(target_arch = "wasm32", wasm_bindgen(start))] 22 | pub fn main() { 23 | #[cfg(all(debug_assertions, target_arch = "wasm32"))] 24 | console_error_panic_hook::set_once(); 25 | 26 | let ui = AppWindow::new().unwrap(); 27 | let game = Rc::new(RefCell::new(Game::new())); 28 | 29 | let _game_controller = game_controller::setup(&ui, game.clone()); 30 | 31 | let game_handle = game.clone(); 32 | let ui_handle = ui.as_weak(); 33 | let game_update_timer = Timer::default(); 34 | game_update_timer.start(slint::TimerMode::Repeated, Duration::from_millis(30), { 35 | move || { 36 | if ui_handle.unwrap().global::().get_playing() { 37 | game_handle.borrow_mut().update(); 38 | } 39 | } 40 | }); 41 | 42 | let ui_handle = ui.as_weak(); 43 | let game_handle = game.clone(); 44 | ui.global::().on_play_pressed(move || { 45 | let ui = ui_handle.unwrap(); 46 | let game_adapter = ui.global::(); 47 | if game_adapter.get_game_over() { 48 | game_handle.replace(Game::new()); 49 | } 50 | game_adapter.set_playing(true); 51 | 52 | }); 53 | 54 | let game_handle = game.clone(); 55 | ui.on_key_pressed(move |key_text: SharedString| { 56 | let keycode = key_text.as_str().chars().nth(0).unwrap(); 57 | let mut game = game_handle.borrow_mut(); 58 | game.handle_input(keycode); 59 | }); 60 | 61 | ui.run().unwrap(); 62 | } 63 | -------------------------------------------------------------------------------- /src/pieces.rs: -------------------------------------------------------------------------------- 1 | use std::clone::Clone; 2 | pub const PIECE_COUNT: usize = 7; 3 | 4 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] 5 | pub enum Color { 6 | CYAN, 7 | BLUE, 8 | ORANGE, 9 | YELLOW, 10 | GREEN, 11 | PURPLE, 12 | RED 13 | } 14 | 15 | #[derive(Clone, Copy)] 16 | pub struct Piece { 17 | pub color: Color, 18 | rotations: [[(u16, u16); 4]; 4] 19 | } 20 | 21 | impl Piece { 22 | pub fn get_shape<'a>(&'a self, rotation: usize) -> &'a [(u16, u16); 4] { 23 | &self.rotations[rotation] 24 | } 25 | } 26 | 27 | #[derive(Clone)] 28 | pub struct PhysicalPiece { 29 | pub x: i16, 30 | pub y: i16, 31 | pub rotation: usize, 32 | pub piece: Piece 33 | } 34 | 35 | impl PhysicalPiece { 36 | pub fn rotate_right(&mut self) { 37 | self.rotation = (self.rotation + 1) % 4; 38 | } 39 | 40 | pub fn rotate_left(&mut self) { 41 | self.rotation = (self.rotation + 4 - 1) % 4; 42 | } 43 | 44 | pub fn move_right(&mut self) { 45 | self.x += 1; 46 | } 47 | 48 | pub fn move_left(&mut self) { 49 | self.x -= 1; 50 | } 51 | 52 | pub fn newton(&mut self) { 53 | self.y += 1; 54 | } 55 | 56 | pub fn get_shape(&self) -> & [(u16, u16); 4] { 57 | self.piece.get_shape(self.rotation) 58 | } 59 | 60 | #[allow(dead_code)] 61 | pub fn get_piece<'a>(&'a self) -> &'a Piece { 62 | &self.piece 63 | } 64 | 65 | } 66 | 67 | pub static PIECES: [&Piece; PIECE_COUNT] = [ 68 | &BLOCK_I, 69 | &BLOCK_J, 70 | &BLOCK_L, 71 | &BLOCK_O, 72 | &BLOCK_S, 73 | &BLOCK_T, 74 | &BLOCK_Z 75 | ]; 76 | 77 | pub static BLOCK_I: Piece = Piece { 78 | color: Color::CYAN, 79 | rotations: [ 80 | [(0,1),(1,1),(2,1),(3,1)], 81 | [(2,0),(2,1),(2,2),(2,3)], 82 | [(0,2),(1,2),(2,2),(3,2)], 83 | [(1,0),(1,1),(1,2),(1,3)] 84 | ] 85 | }; 86 | 87 | pub static BLOCK_O: Piece = Piece { 88 | color: Color::YELLOW, 89 | rotations: [ 90 | [(0,0),(0,1),(1,0),(1,1)], 91 | [(0,0),(0,1),(1,0),(1,1)], 92 | [(0,0),(0,1),(1,0),(1,1)], 93 | [(0,0),(0,1),(1,0),(1,1)] 94 | ] 95 | }; 96 | 97 | pub static BLOCK_T: Piece = Piece { 98 | color: Color::PURPLE, 99 | rotations: [ 100 | [(1,0),(0,1),(1,1),(2,1)], 101 | [(1,0),(1,1),(1,2),(2,1)], 102 | [(0,1),(1,1),(2,1),(1,2)], 103 | [(1,0),(1,1),(1,2),(0,1)] 104 | ] 105 | }; 106 | 107 | pub static BLOCK_S: Piece = Piece { 108 | color: Color::GREEN, 109 | rotations: [ 110 | [(0,1),(1,1),(1,0),(2,0)], 111 | [(1,0),(1,1),(2,1),(2,2)], 112 | [(0,2),(1,2),(1,1),(2,1)], 113 | [(0,0),(0,1),(1,1),(1,2)] 114 | ] 115 | }; 116 | 117 | 118 | pub static BLOCK_Z: Piece = Piece { 119 | color: Color::RED, 120 | rotations: [ 121 | [(0,0),(1,0),(1,1),(2,1)], 122 | [(1,2),(1,1),(2,1),(2,0)], 123 | [(0,1),(1,1),(1,2),(2,2)], 124 | [(0,2),(0,1),(1,1),(1,0)], 125 | ] 126 | }; 127 | 128 | pub static BLOCK_J: Piece = Piece { 129 | color: Color::BLUE, 130 | rotations: [ 131 | [(0,0),(0,1),(1,1),(2,1)], 132 | [(1,2),(1,1),(1,0),(2,0)], 133 | [(0,1),(1,1),(2,1),(2,2)], 134 | [(0,2),(1,2),(1,1),(1,0)] 135 | ] 136 | }; 137 | 138 | pub static BLOCK_L: Piece = Piece { 139 | color: Color::ORANGE, 140 | rotations: [ 141 | [(0,1),(1,1),(2,1),(2,0)], 142 | [(1,0),(1,1),(1,2),(2,2)], 143 | [(0,2),(0,1),(1,1),(2,1)], 144 | [(0,0),(1,0),(1,1),(1,2)] 145 | ] 146 | }; 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /src/controller/game_controller.rs: -------------------------------------------------------------------------------- 1 | use crate::{game::Game, pieces, ui::*}; 2 | use slint::*; 3 | use std::{cell::RefCell, rc::Rc, time::Duration}; 4 | 5 | pub fn setup(window: &AppWindow, game: Rc>) -> Timer { 6 | window.global::().set_grid_size(Size { 7 | height: Game::GRID_HEIGHT.into(), 8 | width: Game::GRID_WIDTH.into(), 9 | }); 10 | 11 | let update_timer = Timer::default(); 12 | update_timer.start(TimerMode::Repeated, Duration::from_millis(30), { 13 | let weak_window = window.as_weak(); 14 | 15 | move || { 16 | let window = weak_window.unwrap(); 17 | let game_adapter = window.global::(); 18 | if game.borrow().is_game_over() { 19 | game_adapter.set_game_over(true); 20 | game_adapter.set_playing(false); 21 | } 22 | update_ui(&game_adapter, &game.borrow()); 23 | } 24 | }); 25 | 26 | update_timer 27 | } 28 | 29 | fn update_ui(game_grid_adapter: &GameAdapter, game: &Game) { 30 | if !game_grid_adapter.get_playing() { 31 | return; 32 | }; 33 | // Grid 34 | let grid = game.get_grid(); 35 | let vec = VecModel::>::default(); 36 | for i in 0..Game::GRID_HEIGHT { 37 | let row = VecModel::::default(); 38 | for j in 0..Game::GRID_WIDTH { 39 | row.insert(j.into(), col2col(grid[i as usize][j as usize])); 40 | } 41 | vec.insert(i.into(), Rc::new(row).clone().into()); 42 | } 43 | // Current piece 44 | let current = game.get_current(); 45 | for cell in current.get_shape() { 46 | let x = current.x + cell.0 as i16; 47 | let y = current.y + cell.1 as i16; 48 | 49 | let row = vec.row_data(y as usize); 50 | if row.is_some() { 51 | row.unwrap() 52 | .set_row_data(x as usize, col2col(Some(current.piece.color))); 53 | } 54 | } 55 | game_grid_adapter.set_grid(Rc::new(vec).clone().into()); 56 | 57 | // Next piece 58 | let next = game.get_next(); 59 | game_grid_adapter.set_next_piece(SPiece { 60 | blocks: piece_to_model(next), 61 | is_I: next.color == pieces::Color::CYAN, 62 | is_O: next.color == pieces::Color::YELLOW, 63 | }); 64 | 65 | // Held piece 66 | if game.get_held().is_some() { 67 | let held = game.get_held().unwrap(); 68 | game_grid_adapter.set_held_piece(SPiece { 69 | blocks: piece_to_model(&held), 70 | is_I: held.color == pieces::Color::CYAN, 71 | is_O: held.color == pieces::Color::YELLOW, 72 | }); 73 | } 74 | 75 | // Score 76 | game_grid_adapter.set_score(game.get_score() as i32); 77 | } 78 | 79 | fn piece_to_model(piece: &pieces::Piece) -> ModelRc> { 80 | let piece_shape = piece.get_shape(0); 81 | let vec = VecModel::>::default(); 82 | for i in 0..4 { 83 | let row = VecModel::::from_slice(&[ 84 | col2col(None), 85 | col2col(None), 86 | col2col(None), 87 | col2col(None), 88 | ]); 89 | vec.insert(i, row); 90 | } 91 | for cell in piece_shape { 92 | let x = cell.0 as usize; 93 | let y = cell.1 as usize; 94 | 95 | let row = vec.row_data(y); 96 | row.unwrap().set_row_data(x, col2col(Some(piece.color))); 97 | } 98 | 99 | Rc::new(vec).clone().into() 100 | } 101 | 102 | fn col2col(color: Option) -> slint::Color { 103 | match color { 104 | Some(pieces::Color::CYAN) => slint::Color::from_rgb_u8(82, 177, 252), 105 | Some(pieces::Color::BLUE) => slint::Color::from_rgb_u8(60, 118, 181), 106 | Some(pieces::Color::ORANGE) => slint::Color::from_rgb_u8(255, 92, 27), 107 | Some(pieces::Color::YELLOW) => slint::Color::from_rgb_u8(251, 206, 5), 108 | Some(pieces::Color::GREEN) => slint::Color::from_rgb_u8(67, 213, 97), 109 | Some(pieces::Color::PURPLE) => slint::Color::from_rgb_u8(164, 105, 184), 110 | Some(pieces::Color::RED) => slint::Color::from_rgb_u8(255, 1, 39), 111 | None => slint::Color::from_argb_u8(0, 0, 0, 0), 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /ui/appwindow.slint: -------------------------------------------------------------------------------- 1 | import { Button, VerticalBox , HorizontalBox, GridBox, ListView} from "std-widgets.slint"; 2 | import { Theme } from "./theme.slint"; 3 | 4 | struct Size { 5 | width: int, 6 | height: int 7 | } 8 | 9 | struct SPiece { 10 | blocks: [[color]], 11 | is_I: bool, 12 | is_O: bool 13 | } 14 | 15 | component ShadedBox inherits Rectangle { 16 | padding: 20px; 17 | 18 | background: Theme.palette.primary; 19 | 20 | border-radius: 10px; 21 | drop-shadow-blur: 20px; 22 | drop-shadow-color: Theme.palette.secondary; 23 | } 24 | 25 | component Block inherits Rectangle { 26 | in property block_color ; 27 | in property size; 28 | 29 | width: size; 30 | height: size; 31 | background: block-color; 32 | border-width: size / 12; 33 | border-color: block-color.darker(0.3); 34 | border-radius: size / 4; 35 | } 36 | 37 | export global GameAdapter { 38 | in property grid_size; 39 | in property <[[color]]> grid; 40 | in property next_piece; 41 | in property held_piece; 42 | in property score: 0; 43 | in property playing: false; 44 | in property game_over: false; 45 | 46 | callback play-pressed(); 47 | } 48 | 49 | component GridBlockDisplay inherits VerticalLayout { 50 | in property grid_size; 51 | in property <[[color]]> grid; 52 | in property block_size: 28px; 53 | 54 | padding: 4px; 55 | spacing: 2px; 56 | for y in grid-size.height : HorizontalLayout { 57 | spacing: 2px; 58 | for x in grid-size.width : Block { 59 | block-color: grid[y][x]; 60 | size: block-size; 61 | } 62 | } 63 | } 64 | 65 | component HUDOverlay inherits Rectangle { 66 | in-out property background-opacity: GameAdapter.playing ? 0.0 : 0.5; 67 | 68 | background: rgba(100, 100,100, background-opacity); 69 | border-radius: 10px; 70 | visible: !(background-opacity == 0.0); 71 | 72 | animate background-opacity { 73 | duration: 500ms; 74 | } 75 | 76 | HorizontalLayout { 77 | alignment: center; 78 | VerticalLayout { 79 | alignment: center; 80 | Image { 81 | source: GameAdapter.game_over ? @image-url("../assets/img/restart.svg") : @image-url("../assets/img/play.svg"); 82 | width: 100px; 83 | height: 100px; 84 | 85 | opacity: GameAdapter.playing ? 0 : area.has-hover ? 1 : 0.8; 86 | 87 | animate opacity { 88 | duration: 500ms; 89 | } 90 | 91 | area := TouchArea { 92 | width: parent.width; 93 | height: parent.height; 94 | clicked => { 95 | GameAdapter.play-pressed(); 96 | } 97 | } 98 | } 99 | } 100 | } 101 | } 102 | 103 | export component PieceDisplay inherits HorizontalLayout { 104 | in property piece; 105 | 106 | width: 18px * 5; 107 | alignment: center; 108 | padding-top: piece.is-I ? -9px : 4px; 109 | GridBlockDisplay { 110 | grid-size: { 111 | width: piece.is-I ? 4 : piece.is-O ? 2 : 3, 112 | height: 2 113 | }; 114 | block-size: 18px; 115 | padding: 0px; 116 | 117 | grid: piece.blocks; 118 | } 119 | } 120 | 121 | export component AppWindow inherits Window { 122 | callback key-pressed(string); 123 | forward-focus: key-handler; 124 | 125 | key-handler := FocusScope { 126 | key-pressed(event) => { 127 | root.key-pressed(event.text); 128 | return accept; 129 | } 130 | Rectangle { 131 | background: Theme.palette.primary; 132 | 133 | VerticalLayout { 134 | padding: 12px; 135 | HorizontalLayout { // Top section 136 | spacing: 24px; 137 | VerticalLayout { 138 | spacing: 8px; 139 | HorizontalLayout { 140 | alignment: space-around; 141 | Text { 142 | text: "NEXT"; 143 | color: Theme.palette.text; 144 | letter-spacing: Theme.textStyle.letter-spacing; 145 | } 146 | Text { 147 | text: "HOLD"; 148 | color: Theme.palette.text; 149 | letter-spacing: Theme.textStyle.letter-spacing; 150 | } 151 | } 152 | HorizontalLayout { 153 | alignment: stretch; 154 | ShadedBox { 155 | height: 60px; 156 | 157 | HorizontalBox { 158 | alignment: space-around; 159 | 160 | PieceDisplay { 161 | piece: GameAdapter.next-piece; 162 | } 163 | 164 | PieceDisplay { 165 | piece: GameAdapter.held-piece; 166 | } 167 | } 168 | } 169 | } 170 | } 171 | VerticalLayout { 172 | alignment: stretch; 173 | spacing: 8px; 174 | Text { 175 | text: "SCORE"; 176 | horizontal-alignment: center; 177 | horizontal-stretch: 1; 178 | color: Theme.palette.text; 179 | letter-spacing: Theme.textStyle.letter-spacing; 180 | } 181 | ShadedBox { 182 | vertical-stretch: 2; 183 | Text { 184 | text: GameAdapter.score; 185 | color: Theme.palette.text; 186 | font-size: 24px; 187 | font-weight: 600; 188 | } 189 | } 190 | } 191 | } 192 | 193 | spacing: 24px; 194 | 195 | ShadedBox { 196 | GridBlockDisplay { 197 | grid_size <=> GameAdapter.grid_size; 198 | grid <=> GameAdapter.grid; 199 | } 200 | HUDOverlay { 201 | 202 | } 203 | } 204 | 205 | HorizontalLayout { 206 | 207 | } 208 | } 209 | } 210 | } 211 | } 212 | -------------------------------------------------------------------------------- /src/game.rs: -------------------------------------------------------------------------------- 1 | #[cfg(target_arch = "wasm32")] 2 | use wasm_bindgen::prelude::*; 3 | 4 | use std::time::*; 5 | 6 | #[cfg(target_arch = "wasm32")] 7 | #[wasm_bindgen] 8 | extern "C" { 9 | #[wasm_bindgen(js_namespace = Date, js_name = now)] 10 | fn date_now() -> f64; 11 | } 12 | #[cfg(target_arch = "wasm32")] 13 | #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] 14 | pub struct Instant(u64); 15 | #[cfg(target_arch = "wasm32")] 16 | impl Instant { 17 | pub fn now() -> Self { 18 | Self(date_now() as u64) 19 | } 20 | pub fn duration_since(&self, earlier: Instant) -> Duration { 21 | Duration::from_millis(self.0 - earlier.0) 22 | } 23 | } 24 | 25 | use crate::pieces::{Color, PhysicalPiece, Piece, PIECES, PIECE_COUNT}; 26 | use rand::Rng; 27 | 28 | pub struct Game { 29 | grid: [[Option; Game::GRID_WIDTH as usize]; Game::GRID_HEIGHT as usize], 30 | current: PhysicalPiece, 31 | next: Piece, 32 | held: Option, 33 | has_held: bool, 34 | score: u32, 35 | rng: rand::rngs::ThreadRng, 36 | time: Instant, 37 | game_over: bool, 38 | } 39 | 40 | impl Game { 41 | pub const GRID_WIDTH: u16 = 10; 42 | pub const GRID_HEIGHT: u16 = 20; 43 | 44 | pub fn new() -> Game { 45 | let mut rng = rand::thread_rng(); 46 | 47 | Game { 48 | grid: [[None; Game::GRID_WIDTH as usize]; Game::GRID_HEIGHT as usize], 49 | current: PhysicalPiece { 50 | x: Game::GRID_WIDTH as i16 / 2i16 - 2i16, 51 | y: -1, 52 | rotation: 0, 53 | piece: *PIECES[rng.gen_range(0..PIECE_COUNT)], 54 | }, 55 | next: *PIECES[rng.gen_range(0..PIECE_COUNT)], 56 | held: None, 57 | has_held: false, 58 | score: 0, 59 | rng, 60 | time: Instant::now(), 61 | game_over: false, 62 | } 63 | } 64 | 65 | pub fn update(&mut self) { 66 | let now = Instant::now(); 67 | let delta = now.duration_since(self.time).as_millis(); 68 | if delta > 150 { 69 | self.tick(); 70 | self.time = now; 71 | } 72 | } 73 | 74 | fn tick(&mut self) { 75 | if self.move_and_collide(PhysicalPiece::newton) { 76 | if self.boup() { 77 | self.game_over = true; 78 | } 79 | let cleared = self.clear_lines(); 80 | self.score += self.compute_score(cleared); 81 | self.has_held = false; 82 | } 83 | } 84 | 85 | fn hold(&mut self) { 86 | if self.has_held { 87 | return; 88 | } else if self.held.is_none() { 89 | self.held = Some(self.current.piece); 90 | self.spawn_new(); 91 | } else { 92 | let bkp = self.held; 93 | self.held = Some(self.current.piece); 94 | self.current = PhysicalPiece { 95 | x: Game::GRID_WIDTH as i16 / 2 - 2, 96 | y: -1, 97 | rotation: 0, 98 | piece: bkp.unwrap(), 99 | }; 100 | } 101 | self.has_held = true; 102 | } 103 | 104 | pub fn handle_input(&mut self, keycode: char) { 105 | match keycode { 106 | 'd' | '' => self.move_and_collide(PhysicalPiece::move_right), 107 | 'q' | '' => self.move_and_collide(PhysicalPiece::move_left), 108 | 'z' | '' => self.move_and_collide(PhysicalPiece::rotate_right), 109 | 'c' => self.move_and_collide(PhysicalPiece::rotate_right), 110 | 'x' => self.move_and_collide(PhysicalPiece::rotate_left), 111 | 's' => self.move_and_collide(PhysicalPiece::newton), 112 | 'h' => { 113 | self.hold(); 114 | true 115 | } 116 | ' ' => { 117 | while !self.move_and_collide(PhysicalPiece::newton) {} 118 | true 119 | } 120 | _ => false, 121 | }; 122 | } 123 | 124 | fn clear_lines(&mut self) -> u8 { 125 | let mut cleared = 0u8; 126 | let width = Game::GRID_WIDTH as usize; 127 | let height = Game::GRID_HEIGHT as usize; 128 | let mut y = height; 129 | while y > 0 { 130 | y -= 1; 131 | let row = &self.grid[y]; 132 | let mut x = 0usize; 133 | while x < width as usize && row[x].is_some() { 134 | x += 1; 135 | } 136 | // If line cleared 137 | if x == width { 138 | let mut s_y = y; 139 | while s_y > 0 { 140 | self.grid[s_y] = self.grid[s_y - 1]; 141 | s_y -= 1; 142 | } 143 | cleared += 1 + self.clear_lines(); 144 | y = 0; 145 | } 146 | } 147 | 148 | cleared 149 | } 150 | 151 | fn boup(&mut self) -> bool { 152 | // Save current piece in grid 153 | let shape = self.current.get_shape(); 154 | for i in 0..4 { 155 | let p = shape[i]; 156 | let p_x = self.current.x + p.0 as i16; 157 | let p_y = self.current.y + p.1 as i16; 158 | if p_y < 0 { 159 | return true; 160 | } 161 | self.grid[p_y as usize][p_x as usize] = Some(self.current.piece.color); 162 | } 163 | self.spawn_new(); 164 | false 165 | } 166 | 167 | fn spawn_new(&mut self) { 168 | self.current = PhysicalPiece { 169 | x: Game::GRID_WIDTH as i16 / 2 - 2, 170 | y: -1, 171 | rotation: 0, 172 | piece: self.next, 173 | }; 174 | self.next = *PIECES[self.rng.gen_range(0..PIECE_COUNT)]; 175 | } 176 | 177 | /// Returns true if a collison occured 178 | fn move_and_collide(&mut self, func: fn(&mut PhysicalPiece)) -> bool { 179 | let mut test_piece = self.current.clone(); 180 | func(&mut test_piece); 181 | if self.collides(&test_piece) { 182 | true 183 | } else { 184 | func(&mut self.current); 185 | false 186 | } 187 | } 188 | 189 | fn collides(&self, piece: &PhysicalPiece) -> bool { 190 | let shape = piece.get_shape(); 191 | let mut collision = false; 192 | let mut s_i = 0; 193 | while !collision && s_i < 4 { 194 | let p = shape[s_i]; 195 | let p_x = piece.x + p.0 as i16; 196 | let p_y = piece.y + p.1 as i16; 197 | 198 | // Check if out of bounds 199 | if p_x < 0 || p_x >= Game::GRID_WIDTH as i16 || p_y >= Game::GRID_HEIGHT as i16 { 200 | collision = true; 201 | } else if p_y >= 0 && self.grid[p_y as usize][p_x as usize].is_some() { 202 | // Check if grid has some at p_x and p_y 203 | collision = true; 204 | } 205 | 206 | s_i += 1; 207 | } 208 | 209 | collision 210 | } 211 | 212 | fn compute_score(&self, cleared: u8) -> u32 { 213 | let score = match cleared { 214 | 0 => 0, 215 | 1 => 40, 216 | 2 => 100, 217 | 3 => 300, 218 | 4 => 1200, 219 | _ => panic!("Invalid line number"), 220 | }; 221 | 222 | return score; 223 | } 224 | 225 | pub fn get_grid<'a>( 226 | &'a self, 227 | ) -> &'a [[Option; Game::GRID_WIDTH as usize]; Game::GRID_HEIGHT as usize] { 228 | &self.grid 229 | } 230 | 231 | pub fn get_current<'a>(&'a self) -> &'a PhysicalPiece { 232 | &self.current 233 | } 234 | 235 | pub fn get_next<'a>(&'a self) -> &'a Piece { 236 | &self.next 237 | } 238 | 239 | pub fn get_held<'a>(&'a self) -> &'a Option { 240 | &self.held 241 | } 242 | 243 | pub fn get_score(&self) -> u32 { 244 | self.score 245 | } 246 | 247 | pub fn is_game_over(&self) -> bool { 248 | self.game_over 249 | } 250 | } 251 | -------------------------------------------------------------------------------- /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 = "Inflector" 7 | version = "0.11.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 | 11 | [[package]] 12 | name = "ab_glyph" 13 | version = "0.2.21" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39" 16 | dependencies = [ 17 | "ab_glyph_rasterizer", 18 | "owned_ttf_parser", 19 | ] 20 | 21 | [[package]] 22 | name = "ab_glyph_rasterizer" 23 | version = "0.1.8" 24 | source = "registry+https://github.com/rust-lang/crates.io-index" 25 | checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" 26 | 27 | [[package]] 28 | name = "adler" 29 | version = "1.0.2" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 32 | 33 | [[package]] 34 | name = "ahash" 35 | version = "0.7.6" 36 | source = "registry+https://github.com/rust-lang/crates.io-index" 37 | checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" 38 | dependencies = [ 39 | "getrandom", 40 | "once_cell", 41 | "version_check", 42 | ] 43 | 44 | [[package]] 45 | name = "ahash" 46 | version = "0.8.3" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" 49 | dependencies = [ 50 | "cfg-if 1.0.0", 51 | "once_cell", 52 | "version_check", 53 | ] 54 | 55 | [[package]] 56 | name = "aho-corasick" 57 | version = "0.7.20" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" 60 | dependencies = [ 61 | "memchr", 62 | ] 63 | 64 | [[package]] 65 | name = "aho-corasick" 66 | version = "1.0.1" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" 69 | dependencies = [ 70 | "memchr", 71 | ] 72 | 73 | [[package]] 74 | name = "aliasable" 75 | version = "0.1.3" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" 78 | 79 | [[package]] 80 | name = "android-activity" 81 | version = "0.4.1" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6" 84 | dependencies = [ 85 | "android-properties", 86 | "bitflags", 87 | "cc", 88 | "jni-sys", 89 | "libc", 90 | "log", 91 | "ndk", 92 | "ndk-context", 93 | "ndk-sys", 94 | "num_enum 0.5.11", 95 | ] 96 | 97 | [[package]] 98 | name = "android-properties" 99 | version = "0.2.2" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 102 | 103 | [[package]] 104 | name = "arrayref" 105 | version = "0.3.7" 106 | source = "registry+https://github.com/rust-lang/crates.io-index" 107 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 108 | 109 | [[package]] 110 | name = "arrayvec" 111 | version = "0.7.2" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" 114 | 115 | [[package]] 116 | name = "atomic-polyfill" 117 | version = "1.0.2" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "c314e70d181aa6053b26e3f7fbf86d1dfff84f816a6175b967666b3506ef7289" 120 | dependencies = [ 121 | "critical-section", 122 | ] 123 | 124 | [[package]] 125 | name = "atty" 126 | version = "0.2.14" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 129 | dependencies = [ 130 | "hermit-abi 0.1.19", 131 | "libc", 132 | "winapi", 133 | ] 134 | 135 | [[package]] 136 | name = "auto_enums" 137 | version = "0.8.0" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "10143e1d6fc660ac7bfc268c6ec2f9699129a3cfbb241eed50393d1562e0a4ce" 140 | dependencies = [ 141 | "derive_utils", 142 | "proc-macro2", 143 | "quote", 144 | "syn 1.0.109", 145 | ] 146 | 147 | [[package]] 148 | name = "autocfg" 149 | version = "1.1.0" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 152 | 153 | [[package]] 154 | name = "base64" 155 | version = "0.13.1" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 158 | 159 | [[package]] 160 | name = "base64" 161 | version = "0.21.0" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 164 | 165 | [[package]] 166 | name = "bindgen" 167 | version = "0.64.0" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" 170 | dependencies = [ 171 | "bitflags", 172 | "cexpr", 173 | "clang-sys", 174 | "lazy_static", 175 | "lazycell", 176 | "log", 177 | "peeking_take_while", 178 | "proc-macro2", 179 | "quote", 180 | "regex", 181 | "rustc-hash", 182 | "shlex", 183 | "syn 1.0.109", 184 | "which", 185 | ] 186 | 187 | [[package]] 188 | name = "bit_field" 189 | version = "0.10.2" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" 192 | 193 | [[package]] 194 | name = "bitflags" 195 | version = "1.3.2" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 198 | 199 | [[package]] 200 | name = "block" 201 | version = "0.1.6" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 204 | 205 | [[package]] 206 | name = "block-sys" 207 | version = "0.1.0-beta.1" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" 210 | dependencies = [ 211 | "objc-sys", 212 | ] 213 | 214 | [[package]] 215 | name = "block2" 216 | version = "0.2.0-alpha.6" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" 219 | dependencies = [ 220 | "block-sys", 221 | "objc2-encode", 222 | ] 223 | 224 | [[package]] 225 | name = "bumpalo" 226 | version = "3.12.1" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" 229 | 230 | [[package]] 231 | name = "by_address" 232 | version = "1.1.0" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "bf8dba2868114ed769a1f2590fc9ae5eb331175b44313b6c9b922f8f7ca813d0" 235 | 236 | [[package]] 237 | name = "bytemuck" 238 | version = "1.13.1" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" 241 | 242 | [[package]] 243 | name = "byteorder" 244 | version = "1.4.3" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 247 | 248 | [[package]] 249 | name = "calloop" 250 | version = "0.10.5" 251 | source = "registry+https://github.com/rust-lang/crates.io-index" 252 | checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192" 253 | dependencies = [ 254 | "log", 255 | "nix 0.25.1", 256 | "slotmap", 257 | "thiserror", 258 | "vec_map", 259 | ] 260 | 261 | [[package]] 262 | name = "cc" 263 | version = "1.0.79" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 266 | dependencies = [ 267 | "jobserver", 268 | ] 269 | 270 | [[package]] 271 | name = "cexpr" 272 | version = "0.6.0" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 275 | dependencies = [ 276 | "nom", 277 | ] 278 | 279 | [[package]] 280 | name = "cfg-if" 281 | version = "0.1.10" 282 | source = "registry+https://github.com/rust-lang/crates.io-index" 283 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 284 | 285 | [[package]] 286 | name = "cfg-if" 287 | version = "1.0.0" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 290 | 291 | [[package]] 292 | name = "cfg_aliases" 293 | version = "0.1.1" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 296 | 297 | [[package]] 298 | name = "cgl" 299 | version = "0.3.2" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" 302 | dependencies = [ 303 | "libc", 304 | ] 305 | 306 | [[package]] 307 | name = "clang-sys" 308 | version = "1.6.1" 309 | source = "registry+https://github.com/rust-lang/crates.io-index" 310 | checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" 311 | dependencies = [ 312 | "glob", 313 | "libc", 314 | "libloading", 315 | ] 316 | 317 | [[package]] 318 | name = "clipboard-win" 319 | version = "3.1.1" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "9fdf5e01086b6be750428ba4a40619f847eb2e95756eee84b18e06e5f0b50342" 322 | dependencies = [ 323 | "lazy-bytes-cast", 324 | "winapi", 325 | ] 326 | 327 | [[package]] 328 | name = "clru" 329 | version = "0.6.1" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" 332 | 333 | [[package]] 334 | name = "cocoa" 335 | version = "0.24.1" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" 338 | dependencies = [ 339 | "bitflags", 340 | "block", 341 | "cocoa-foundation", 342 | "core-foundation", 343 | "core-graphics", 344 | "foreign-types", 345 | "libc", 346 | "objc", 347 | ] 348 | 349 | [[package]] 350 | name = "cocoa-foundation" 351 | version = "0.1.1" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" 354 | dependencies = [ 355 | "bitflags", 356 | "block", 357 | "core-foundation", 358 | "core-graphics-types", 359 | "foreign-types", 360 | "libc", 361 | "objc", 362 | ] 363 | 364 | [[package]] 365 | name = "codemap" 366 | version = "0.1.3" 367 | source = "registry+https://github.com/rust-lang/crates.io-index" 368 | checksum = "b9e769b5c8c8283982a987c6e948e540254f1058d5a74b8794914d4ef5fc2a24" 369 | 370 | [[package]] 371 | name = "codemap-diagnostic" 372 | version = "0.1.1" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "4ba0e6be8e2774e750f9e90625b490249715bece38a12f9d09e82477caba5028" 375 | dependencies = [ 376 | "atty", 377 | "codemap", 378 | "termcolor", 379 | ] 380 | 381 | [[package]] 382 | name = "color_quant" 383 | version = "1.1.0" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 386 | 387 | [[package]] 388 | name = "console_error_panic_hook" 389 | version = "0.1.7" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 392 | dependencies = [ 393 | "cfg-if 1.0.0", 394 | "wasm-bindgen", 395 | ] 396 | 397 | [[package]] 398 | name = "const-cstr" 399 | version = "0.3.0" 400 | source = "registry+https://github.com/rust-lang/crates.io-index" 401 | checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6" 402 | 403 | [[package]] 404 | name = "const-field-offset" 405 | version = "0.1.3" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "6304465f16f463cddc572b737c3df93576edd3a6b53f057bd8beeb29f4ef8dfd" 408 | dependencies = [ 409 | "const-field-offset-macro", 410 | "field-offset", 411 | ] 412 | 413 | [[package]] 414 | name = "const-field-offset-macro" 415 | version = "0.1.3" 416 | source = "registry+https://github.com/rust-lang/crates.io-index" 417 | checksum = "57aaaad9185d3bcb3afe63549d8ba60b2fb0ea8dc2da83f62dd56805edf56fd1" 418 | dependencies = [ 419 | "proc-macro2", 420 | "quote", 421 | "syn 2.0.15", 422 | ] 423 | 424 | [[package]] 425 | name = "convert_case" 426 | version = "0.4.0" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 429 | 430 | [[package]] 431 | name = "copypasta" 432 | version = "0.8.2" 433 | source = "registry+https://github.com/rust-lang/crates.io-index" 434 | checksum = "133fc8675ee3a4ec9aa513584deda9aa0faeda3586b87f7f0f2ba082c66fb172" 435 | dependencies = [ 436 | "clipboard-win", 437 | "objc", 438 | "objc-foundation", 439 | "objc_id", 440 | "smithay-clipboard", 441 | "x11-clipboard", 442 | ] 443 | 444 | [[package]] 445 | name = "core-foundation" 446 | version = "0.9.3" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 449 | dependencies = [ 450 | "core-foundation-sys", 451 | "libc", 452 | ] 453 | 454 | [[package]] 455 | name = "core-foundation-sys" 456 | version = "0.8.4" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 459 | 460 | [[package]] 461 | name = "core-graphics" 462 | version = "0.22.3" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" 465 | dependencies = [ 466 | "bitflags", 467 | "core-foundation", 468 | "core-graphics-types", 469 | "foreign-types", 470 | "libc", 471 | ] 472 | 473 | [[package]] 474 | name = "core-graphics-types" 475 | version = "0.1.1" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" 478 | dependencies = [ 479 | "bitflags", 480 | "core-foundation", 481 | "foreign-types", 482 | "libc", 483 | ] 484 | 485 | [[package]] 486 | name = "core-text" 487 | version = "19.2.0" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" 490 | dependencies = [ 491 | "core-foundation", 492 | "core-graphics", 493 | "foreign-types", 494 | "libc", 495 | ] 496 | 497 | [[package]] 498 | name = "countme" 499 | version = "3.0.1" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" 502 | 503 | [[package]] 504 | name = "cpp" 505 | version = "0.5.8" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "43b6a1d47f376a62bbea281408fe331879b9822c1edb8f67320c7cb8d96a02eb" 508 | dependencies = [ 509 | "cpp_macros", 510 | ] 511 | 512 | [[package]] 513 | name = "cpp_build" 514 | version = "0.5.8" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "5b8f839b67a3deba30b58b281b5fca61477a90830beb084c58bdb9bebd227a1a" 517 | dependencies = [ 518 | "cc", 519 | "cpp_common", 520 | "lazy_static", 521 | "proc-macro2", 522 | "regex", 523 | "syn 2.0.15", 524 | "unicode-xid", 525 | ] 526 | 527 | [[package]] 528 | name = "cpp_common" 529 | version = "0.5.8" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "42d2b968b7b2ac412836e8ce1dfc3dfd5648ae7e8a42fcbbf5bc1d33bb795b0d" 532 | dependencies = [ 533 | "lazy_static", 534 | "proc-macro2", 535 | "syn 2.0.15", 536 | ] 537 | 538 | [[package]] 539 | name = "cpp_macros" 540 | version = "0.5.8" 541 | source = "registry+https://github.com/rust-lang/crates.io-index" 542 | checksum = "5d36d9acb58020380e756d56a8dfc84d0f6ace423bbd4fedf83992b257b7f147" 543 | dependencies = [ 544 | "aho-corasick 0.7.20", 545 | "byteorder", 546 | "cpp_common", 547 | "lazy_static", 548 | "proc-macro2", 549 | "quote", 550 | "syn 2.0.15", 551 | ] 552 | 553 | [[package]] 554 | name = "crc32fast" 555 | version = "1.3.2" 556 | source = "registry+https://github.com/rust-lang/crates.io-index" 557 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 558 | dependencies = [ 559 | "cfg-if 1.0.0", 560 | ] 561 | 562 | [[package]] 563 | name = "critical-section" 564 | version = "1.1.1" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" 567 | 568 | [[package]] 569 | name = "crossbeam-channel" 570 | version = "0.5.8" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" 573 | dependencies = [ 574 | "cfg-if 1.0.0", 575 | "crossbeam-utils", 576 | ] 577 | 578 | [[package]] 579 | name = "crossbeam-deque" 580 | version = "0.8.3" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" 583 | dependencies = [ 584 | "cfg-if 1.0.0", 585 | "crossbeam-epoch", 586 | "crossbeam-utils", 587 | ] 588 | 589 | [[package]] 590 | name = "crossbeam-epoch" 591 | version = "0.9.14" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" 594 | dependencies = [ 595 | "autocfg", 596 | "cfg-if 1.0.0", 597 | "crossbeam-utils", 598 | "memoffset 0.8.0", 599 | "scopeguard", 600 | ] 601 | 602 | [[package]] 603 | name = "crossbeam-utils" 604 | version = "0.8.15" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" 607 | dependencies = [ 608 | "cfg-if 1.0.0", 609 | ] 610 | 611 | [[package]] 612 | name = "crunchy" 613 | version = "0.2.2" 614 | source = "registry+https://github.com/rust-lang/crates.io-index" 615 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 616 | 617 | [[package]] 618 | name = "css-color-parser2" 619 | version = "1.0.1" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "cf8ed1639f4b56ec6f31d007ff66ce4a13099dce5a9995d48368a30d62bf04bd" 622 | dependencies = [ 623 | "lazy_static", 624 | ] 625 | 626 | [[package]] 627 | name = "data-url" 628 | version = "0.2.0" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" 631 | 632 | [[package]] 633 | name = "derive_more" 634 | version = "0.99.17" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 637 | dependencies = [ 638 | "convert_case", 639 | "proc-macro2", 640 | "quote", 641 | "rustc_version", 642 | "syn 1.0.109", 643 | ] 644 | 645 | [[package]] 646 | name = "derive_utils" 647 | version = "0.12.0" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "7590f99468735a318c254ca9158d0c065aa9b5312896b5a043b5e39bc96f5fa2" 650 | dependencies = [ 651 | "proc-macro2", 652 | "quote", 653 | "syn 1.0.109", 654 | ] 655 | 656 | [[package]] 657 | name = "dispatch" 658 | version = "0.2.0" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 661 | 662 | [[package]] 663 | name = "dlib" 664 | version = "0.5.0" 665 | source = "registry+https://github.com/rust-lang/crates.io-index" 666 | checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" 667 | dependencies = [ 668 | "libloading", 669 | ] 670 | 671 | [[package]] 672 | name = "downcast-rs" 673 | version = "1.2.0" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" 676 | 677 | [[package]] 678 | name = "dunce" 679 | version = "1.0.4" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" 682 | 683 | [[package]] 684 | name = "dwrote" 685 | version = "0.11.0" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" 688 | dependencies = [ 689 | "lazy_static", 690 | "libc", 691 | "serde", 692 | "serde_derive", 693 | "winapi", 694 | "wio", 695 | ] 696 | 697 | [[package]] 698 | name = "either" 699 | version = "1.8.1" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" 702 | 703 | [[package]] 704 | name = "euclid" 705 | version = "0.22.9" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" 708 | dependencies = [ 709 | "num-traits", 710 | ] 711 | 712 | [[package]] 713 | name = "exr" 714 | version = "1.6.3" 715 | source = "registry+https://github.com/rust-lang/crates.io-index" 716 | checksum = "bdd2162b720141a91a054640662d3edce3d50a944a50ffca5313cd951abb35b4" 717 | dependencies = [ 718 | "bit_field", 719 | "flume", 720 | "half", 721 | "lebe", 722 | "miniz_oxide 0.6.2", 723 | "rayon-core", 724 | "smallvec", 725 | "zune-inflate", 726 | ] 727 | 728 | [[package]] 729 | name = "fdeflate" 730 | version = "0.3.0" 731 | source = "registry+https://github.com/rust-lang/crates.io-index" 732 | checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10" 733 | dependencies = [ 734 | "simd-adler32", 735 | ] 736 | 737 | [[package]] 738 | name = "femtovg" 739 | version = "0.6.0" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "5ba0074b3a9ae8ffdf581dc28026435062cceed37f893d1be1ff91a457ad8284" 742 | dependencies = [ 743 | "bitflags", 744 | "fnv", 745 | "generational-arena", 746 | "glow", 747 | "image", 748 | "imgref", 749 | "lru", 750 | "ouroboros", 751 | "rgb", 752 | "rustybuzz", 753 | "unicode-bidi", 754 | "unicode-segmentation", 755 | "wasm-bindgen", 756 | "web-sys", 757 | ] 758 | 759 | [[package]] 760 | name = "field-offset" 761 | version = "0.3.5" 762 | source = "registry+https://github.com/rust-lang/crates.io-index" 763 | checksum = "a3cf3a800ff6e860c863ca6d4b16fd999db8b752819c1606884047b73e468535" 764 | dependencies = [ 765 | "memoffset 0.8.0", 766 | "rustc_version", 767 | ] 768 | 769 | [[package]] 770 | name = "filetime" 771 | version = "0.2.21" 772 | source = "registry+https://github.com/rust-lang/crates.io-index" 773 | checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" 774 | dependencies = [ 775 | "cfg-if 1.0.0", 776 | "libc", 777 | "redox_syscall 0.2.16", 778 | "windows-sys 0.48.0", 779 | ] 780 | 781 | [[package]] 782 | name = "flate2" 783 | version = "1.0.25" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" 786 | dependencies = [ 787 | "crc32fast", 788 | "miniz_oxide 0.6.2", 789 | ] 790 | 791 | [[package]] 792 | name = "float-cmp" 793 | version = "0.9.0" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" 796 | 797 | [[package]] 798 | name = "flume" 799 | version = "0.10.14" 800 | source = "registry+https://github.com/rust-lang/crates.io-index" 801 | checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" 802 | dependencies = [ 803 | "futures-core", 804 | "futures-sink", 805 | "nanorand", 806 | "pin-project", 807 | "spin 0.9.8", 808 | ] 809 | 810 | [[package]] 811 | name = "fnv" 812 | version = "1.0.7" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 815 | 816 | [[package]] 817 | name = "fontconfig-parser" 818 | version = "0.5.2" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "4ab2e12762761366dcb876ab8b6e0cfa4797ddcd890575919f008b5ba655672a" 821 | dependencies = [ 822 | "roxmltree", 823 | ] 824 | 825 | [[package]] 826 | name = "fontdb" 827 | version = "0.12.0" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "ff20bef7942a72af07104346154a70a70b089c572e454b41bef6eb6cb10e9c06" 830 | dependencies = [ 831 | "fontconfig-parser", 832 | "log", 833 | "memmap2", 834 | "ttf-parser 0.18.1", 835 | ] 836 | 837 | [[package]] 838 | name = "fontdb" 839 | version = "0.13.1" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | checksum = "237ff9f0813bbfc9de836016472e0c9ae7802f174a51594607e5f4ff334cb2f5" 842 | dependencies = [ 843 | "fontconfig-parser", 844 | "log", 845 | "memmap2", 846 | "slotmap", 847 | "ttf-parser 0.18.1", 848 | ] 849 | 850 | [[package]] 851 | name = "fontdue" 852 | version = "0.7.3" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "0793f5137567643cf65ea42043a538804ff0fbf288649e2141442b602d81f9bc" 855 | dependencies = [ 856 | "hashbrown 0.13.2", 857 | "ttf-parser 0.15.2", 858 | ] 859 | 860 | [[package]] 861 | name = "foreign-types" 862 | version = "0.3.2" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 865 | dependencies = [ 866 | "foreign-types-shared", 867 | ] 868 | 869 | [[package]] 870 | name = "foreign-types-shared" 871 | version = "0.1.1" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 874 | 875 | [[package]] 876 | name = "form_urlencoded" 877 | version = "1.1.0" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 880 | dependencies = [ 881 | "percent-encoding", 882 | ] 883 | 884 | [[package]] 885 | name = "futures-core" 886 | version = "0.3.28" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 889 | 890 | [[package]] 891 | name = "futures-sink" 892 | version = "0.3.28" 893 | source = "registry+https://github.com/rust-lang/crates.io-index" 894 | checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 895 | 896 | [[package]] 897 | name = "generational-arena" 898 | version = "0.2.8" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | checksum = "8e1d3b771574f62d0548cee0ad9057857e9fc25d7a3335f140c84f6acd0bf601" 901 | dependencies = [ 902 | "cfg-if 0.1.10", 903 | ] 904 | 905 | [[package]] 906 | name = "gethostname" 907 | version = "0.2.3" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" 910 | dependencies = [ 911 | "libc", 912 | "winapi", 913 | ] 914 | 915 | [[package]] 916 | name = "getrandom" 917 | version = "0.2.9" 918 | source = "registry+https://github.com/rust-lang/crates.io-index" 919 | checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" 920 | dependencies = [ 921 | "cfg-if 1.0.0", 922 | "js-sys", 923 | "libc", 924 | "wasi", 925 | "wasm-bindgen", 926 | ] 927 | 928 | [[package]] 929 | name = "gif" 930 | version = "0.12.0" 931 | source = "registry+https://github.com/rust-lang/crates.io-index" 932 | checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" 933 | dependencies = [ 934 | "color_quant", 935 | "weezl", 936 | ] 937 | 938 | [[package]] 939 | name = "gl_generator" 940 | version = "0.14.0" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 943 | dependencies = [ 944 | "khronos_api", 945 | "log", 946 | "xml-rs", 947 | ] 948 | 949 | [[package]] 950 | name = "glob" 951 | version = "0.3.1" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 954 | 955 | [[package]] 956 | name = "glow" 957 | version = "0.12.1" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1" 960 | dependencies = [ 961 | "js-sys", 962 | "slotmap", 963 | "wasm-bindgen", 964 | "web-sys", 965 | ] 966 | 967 | [[package]] 968 | name = "glutin" 969 | version = "0.30.7" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | checksum = "f89bab9ec7715de13d5d5402238e66f48e3a5ae636ebb45aba4013c962e2ff15" 972 | dependencies = [ 973 | "bitflags", 974 | "cfg_aliases", 975 | "cgl", 976 | "core-foundation", 977 | "dispatch", 978 | "glutin_egl_sys", 979 | "glutin_glx_sys", 980 | "glutin_wgl_sys", 981 | "libloading", 982 | "objc2", 983 | "once_cell", 984 | "raw-window-handle", 985 | "wayland-sys 0.30.1", 986 | "windows-sys 0.45.0", 987 | "x11-dl", 988 | ] 989 | 990 | [[package]] 991 | name = "glutin-winit" 992 | version = "0.3.0" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4" 995 | dependencies = [ 996 | "cfg_aliases", 997 | "glutin", 998 | "raw-window-handle", 999 | "winit", 1000 | ] 1001 | 1002 | [[package]] 1003 | name = "glutin_egl_sys" 1004 | version = "0.4.0" 1005 | source = "registry+https://github.com/rust-lang/crates.io-index" 1006 | checksum = "e5aaf0abb5c4148685b33101ae326a207946b4d3764d6cdc79f8316cdaa8367d" 1007 | dependencies = [ 1008 | "gl_generator", 1009 | "windows-sys 0.45.0", 1010 | ] 1011 | 1012 | [[package]] 1013 | name = "glutin_glx_sys" 1014 | version = "0.4.0" 1015 | source = "registry+https://github.com/rust-lang/crates.io-index" 1016 | checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494" 1017 | dependencies = [ 1018 | "gl_generator", 1019 | "x11-dl", 1020 | ] 1021 | 1022 | [[package]] 1023 | name = "glutin_wgl_sys" 1024 | version = "0.4.0" 1025 | source = "registry+https://github.com/rust-lang/crates.io-index" 1026 | checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165" 1027 | dependencies = [ 1028 | "gl_generator", 1029 | ] 1030 | 1031 | [[package]] 1032 | name = "half" 1033 | version = "2.2.1" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" 1036 | dependencies = [ 1037 | "crunchy", 1038 | ] 1039 | 1040 | [[package]] 1041 | name = "hashbrown" 1042 | version = "0.12.3" 1043 | source = "registry+https://github.com/rust-lang/crates.io-index" 1044 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1045 | dependencies = [ 1046 | "ahash 0.7.6", 1047 | ] 1048 | 1049 | [[package]] 1050 | name = "hashbrown" 1051 | version = "0.13.2" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 1054 | dependencies = [ 1055 | "ahash 0.8.3", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "heck" 1060 | version = "0.4.1" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1063 | 1064 | [[package]] 1065 | name = "hermit-abi" 1066 | version = "0.1.19" 1067 | source = "registry+https://github.com/rust-lang/crates.io-index" 1068 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 1069 | dependencies = [ 1070 | "libc", 1071 | ] 1072 | 1073 | [[package]] 1074 | name = "hermit-abi" 1075 | version = "0.2.6" 1076 | source = "registry+https://github.com/rust-lang/crates.io-index" 1077 | checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 1078 | dependencies = [ 1079 | "libc", 1080 | ] 1081 | 1082 | [[package]] 1083 | name = "i-slint-backend-qt" 1084 | version = "1.0.1" 1085 | source = "registry+https://github.com/rust-lang/crates.io-index" 1086 | checksum = "4fc0d0004df0efbc2b2e9deda94e32f48b1179e51b40a32b7584051733b4342d" 1087 | dependencies = [ 1088 | "const-field-offset", 1089 | "cpp", 1090 | "cpp_build", 1091 | "i-slint-common", 1092 | "i-slint-core", 1093 | "i-slint-core-macros", 1094 | "lyon_path", 1095 | "once_cell", 1096 | "pin-project", 1097 | "pin-weak", 1098 | "qttypes", 1099 | "vtable", 1100 | ] 1101 | 1102 | [[package]] 1103 | name = "i-slint-backend-selector" 1104 | version = "1.0.1" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "0187fcc5fbc07917ad8bcfc03af57e31cdb42b7ee00e726967ad180a05594cb4" 1107 | dependencies = [ 1108 | "cfg-if 1.0.0", 1109 | "i-slint-backend-qt", 1110 | "i-slint-backend-winit", 1111 | "i-slint-core", 1112 | ] 1113 | 1114 | [[package]] 1115 | name = "i-slint-backend-winit" 1116 | version = "1.0.1" 1117 | source = "registry+https://github.com/rust-lang/crates.io-index" 1118 | checksum = "17086588560f8e7aadf9d79368e7a74866c06bd33c8caf3978c3611b863798b1" 1119 | dependencies = [ 1120 | "cfg-if 1.0.0", 1121 | "cfg_aliases", 1122 | "cocoa", 1123 | "const-field-offset", 1124 | "copypasta", 1125 | "derive_more", 1126 | "glutin", 1127 | "glutin-winit", 1128 | "i-slint-common", 1129 | "i-slint-core", 1130 | "i-slint-core-macros", 1131 | "i-slint-renderer-femtovg", 1132 | "i-slint-renderer-skia", 1133 | "instant", 1134 | "lyon_path", 1135 | "once_cell", 1136 | "pin-weak", 1137 | "raw-window-handle", 1138 | "scoped-tls-hkt", 1139 | "scopeguard", 1140 | "send_wrapper", 1141 | "vtable", 1142 | "wasm-bindgen", 1143 | "web-sys", 1144 | "winit", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "i-slint-common" 1149 | version = "1.0.1" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "3611cf488c72dc24710fe28ac43bf50410a6932019251f9ac60b95d86d0cfae9" 1152 | 1153 | [[package]] 1154 | name = "i-slint-compiler" 1155 | version = "1.0.1" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | checksum = "b81d1711cb1116d40dd686232761b408fb06c4d90bb97f594851cc8b542399bd" 1158 | dependencies = [ 1159 | "by_address", 1160 | "codemap", 1161 | "codemap-diagnostic", 1162 | "css-color-parser2", 1163 | "derive_more", 1164 | "dunce", 1165 | "fontdb 0.13.1", 1166 | "fontdue", 1167 | "i-slint-common", 1168 | "image", 1169 | "itertools", 1170 | "libc", 1171 | "linked_hash_set", 1172 | "lyon_extra", 1173 | "lyon_path", 1174 | "num_enum 0.6.1", 1175 | "once_cell", 1176 | "proc-macro2", 1177 | "quote", 1178 | "resvg", 1179 | "rowan", 1180 | "smol_str", 1181 | "strum", 1182 | "thiserror", 1183 | "url", 1184 | "yeslogic-fontconfig-sys", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "i-slint-core" 1189 | version = "1.0.1" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "3101c6bad7eb4e3e35e9378b4b7e89328d8353ab61fcc55752c75e983d7d133f" 1192 | dependencies = [ 1193 | "atomic-polyfill", 1194 | "auto_enums", 1195 | "cfg-if 1.0.0", 1196 | "clru", 1197 | "const-field-offset", 1198 | "derive_more", 1199 | "euclid", 1200 | "i-slint-common", 1201 | "i-slint-core-macros", 1202 | "image", 1203 | "instant", 1204 | "integer-sqrt", 1205 | "lyon_algorithms", 1206 | "lyon_extra", 1207 | "lyon_geom", 1208 | "lyon_path", 1209 | "num-traits", 1210 | "once_cell", 1211 | "pin-project", 1212 | "pin-weak", 1213 | "resvg", 1214 | "rgb", 1215 | "scoped-tls-hkt", 1216 | "scopeguard", 1217 | "slab", 1218 | "static_assertions", 1219 | "strum", 1220 | "unicode-linebreak", 1221 | "unicode-script", 1222 | "unicode-segmentation", 1223 | "vtable", 1224 | "wasm-bindgen", 1225 | "web-sys", 1226 | ] 1227 | 1228 | [[package]] 1229 | name = "i-slint-core-macros" 1230 | version = "1.0.1" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | checksum = "ce28f8435f79c5b6890671fd5159b9e7b8132251228e693ff7af0b591855aac6" 1233 | dependencies = [ 1234 | "quote", 1235 | "syn 2.0.15", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "i-slint-renderer-femtovg" 1240 | version = "1.0.1" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "6ceae22ac052b41fc634c41933c5f00fc49ba310bf6688b6b331e9b5d74ad485" 1243 | dependencies = [ 1244 | "cfg-if 1.0.0", 1245 | "const-field-offset", 1246 | "core-foundation", 1247 | "core-text", 1248 | "derive_more", 1249 | "dwrote", 1250 | "femtovg", 1251 | "fontdb 0.12.0", 1252 | "glow", 1253 | "i-slint-common", 1254 | "i-slint-core", 1255 | "i-slint-core-macros", 1256 | "imgref", 1257 | "instant", 1258 | "libc", 1259 | "lyon_path", 1260 | "once_cell", 1261 | "pin-weak", 1262 | "raw-window-handle", 1263 | "rgb", 1264 | "scoped-tls-hkt", 1265 | "ttf-parser 0.18.1", 1266 | "unicode-script", 1267 | "unicode-segmentation", 1268 | "vtable", 1269 | "wasm-bindgen", 1270 | "web-sys", 1271 | "winapi", 1272 | "yeslogic-fontconfig-sys", 1273 | ] 1274 | 1275 | [[package]] 1276 | name = "i-slint-renderer-skia" 1277 | version = "1.0.1" 1278 | source = "registry+https://github.com/rust-lang/crates.io-index" 1279 | checksum = "d60e31b7f01b161b7db1725e09f13feca58b60b93b49f8e1c2ec2ecdb10088a3" 1280 | dependencies = [ 1281 | "cfg-if 1.0.0", 1282 | "cfg_aliases", 1283 | "cocoa", 1284 | "const-field-offset", 1285 | "core-foundation", 1286 | "core-graphics-types", 1287 | "core-text", 1288 | "derive_more", 1289 | "foreign-types", 1290 | "glow", 1291 | "glutin", 1292 | "i-slint-common", 1293 | "i-slint-core", 1294 | "i-slint-core-macros", 1295 | "instant", 1296 | "lyon_path", 1297 | "metal", 1298 | "objc", 1299 | "once_cell", 1300 | "pin-weak", 1301 | "raw-window-handle", 1302 | "scoped-tls-hkt", 1303 | "skia-safe", 1304 | "unicode-segmentation", 1305 | "vtable", 1306 | "winapi", 1307 | "winit", 1308 | "wio", 1309 | ] 1310 | 1311 | [[package]] 1312 | name = "idna" 1313 | version = "0.3.0" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 1316 | dependencies = [ 1317 | "unicode-bidi", 1318 | "unicode-normalization", 1319 | ] 1320 | 1321 | [[package]] 1322 | name = "image" 1323 | version = "0.24.6" 1324 | source = "registry+https://github.com/rust-lang/crates.io-index" 1325 | checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" 1326 | dependencies = [ 1327 | "bytemuck", 1328 | "byteorder", 1329 | "color_quant", 1330 | "exr", 1331 | "gif", 1332 | "jpeg-decoder", 1333 | "num-rational", 1334 | "num-traits", 1335 | "png", 1336 | "qoi", 1337 | "tiff", 1338 | ] 1339 | 1340 | [[package]] 1341 | name = "imagesize" 1342 | version = "0.11.0" 1343 | source = "registry+https://github.com/rust-lang/crates.io-index" 1344 | checksum = "b72ad49b554c1728b1e83254a1b1565aea4161e28dabbfa171fc15fe62299caf" 1345 | 1346 | [[package]] 1347 | name = "imgref" 1348 | version = "1.9.4" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | checksum = "b2cf49df1085dcfb171460e4592597b84abe50d900fb83efb6e41b20fefd6c2c" 1351 | 1352 | [[package]] 1353 | name = "indexmap" 1354 | version = "1.9.3" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1357 | dependencies = [ 1358 | "autocfg", 1359 | "hashbrown 0.12.3", 1360 | ] 1361 | 1362 | [[package]] 1363 | name = "instant" 1364 | version = "0.1.12" 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" 1366 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1367 | dependencies = [ 1368 | "cfg-if 1.0.0", 1369 | "js-sys", 1370 | "wasm-bindgen", 1371 | "web-sys", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "integer-sqrt" 1376 | version = "0.1.5" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" 1379 | dependencies = [ 1380 | "num-traits", 1381 | ] 1382 | 1383 | [[package]] 1384 | name = "itertools" 1385 | version = "0.10.5" 1386 | source = "registry+https://github.com/rust-lang/crates.io-index" 1387 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1388 | dependencies = [ 1389 | "either", 1390 | ] 1391 | 1392 | [[package]] 1393 | name = "itoa" 1394 | version = "1.0.6" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 1397 | 1398 | [[package]] 1399 | name = "jni-sys" 1400 | version = "0.3.0" 1401 | source = "registry+https://github.com/rust-lang/crates.io-index" 1402 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 1403 | 1404 | [[package]] 1405 | name = "jobserver" 1406 | version = "0.1.26" 1407 | source = "registry+https://github.com/rust-lang/crates.io-index" 1408 | checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" 1409 | dependencies = [ 1410 | "libc", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "jpeg-decoder" 1415 | version = "0.3.0" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" 1418 | dependencies = [ 1419 | "rayon", 1420 | ] 1421 | 1422 | [[package]] 1423 | name = "js-sys" 1424 | version = "0.3.61" 1425 | source = "registry+https://github.com/rust-lang/crates.io-index" 1426 | checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" 1427 | dependencies = [ 1428 | "wasm-bindgen", 1429 | ] 1430 | 1431 | [[package]] 1432 | name = "khronos_api" 1433 | version = "3.1.0" 1434 | source = "registry+https://github.com/rust-lang/crates.io-index" 1435 | checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 1436 | 1437 | [[package]] 1438 | name = "kurbo" 1439 | version = "0.9.3" 1440 | source = "registry+https://github.com/rust-lang/crates.io-index" 1441 | checksum = "28a2d0c1781729f69dbea30f968608cadfaeb6582e5ce903a167a5216b53cd0f" 1442 | dependencies = [ 1443 | "arrayvec", 1444 | ] 1445 | 1446 | [[package]] 1447 | name = "lazy-bytes-cast" 1448 | version = "5.0.1" 1449 | source = "registry+https://github.com/rust-lang/crates.io-index" 1450 | checksum = "10257499f089cd156ad82d0a9cd57d9501fa2c989068992a97eb3c27836f206b" 1451 | 1452 | [[package]] 1453 | name = "lazy_static" 1454 | version = "1.4.0" 1455 | source = "registry+https://github.com/rust-lang/crates.io-index" 1456 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1457 | 1458 | [[package]] 1459 | name = "lazycell" 1460 | version = "1.3.0" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 1463 | 1464 | [[package]] 1465 | name = "lebe" 1466 | version = "0.5.2" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" 1469 | 1470 | [[package]] 1471 | name = "libc" 1472 | version = "0.2.142" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" 1475 | 1476 | [[package]] 1477 | name = "libloading" 1478 | version = "0.7.4" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 1481 | dependencies = [ 1482 | "cfg-if 1.0.0", 1483 | "winapi", 1484 | ] 1485 | 1486 | [[package]] 1487 | name = "libm" 1488 | version = "0.2.6" 1489 | source = "registry+https://github.com/rust-lang/crates.io-index" 1490 | checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" 1491 | 1492 | [[package]] 1493 | name = "linked-hash-map" 1494 | version = "0.5.6" 1495 | source = "registry+https://github.com/rust-lang/crates.io-index" 1496 | checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 1497 | 1498 | [[package]] 1499 | name = "linked_hash_set" 1500 | version = "0.1.4" 1501 | source = "registry+https://github.com/rust-lang/crates.io-index" 1502 | checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" 1503 | dependencies = [ 1504 | "linked-hash-map", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "lock_api" 1509 | version = "0.4.9" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 1512 | dependencies = [ 1513 | "autocfg", 1514 | "scopeguard", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "log" 1519 | version = "0.4.17" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 1522 | dependencies = [ 1523 | "cfg-if 1.0.0", 1524 | ] 1525 | 1526 | [[package]] 1527 | name = "lru" 1528 | version = "0.9.0" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" 1531 | 1532 | [[package]] 1533 | name = "lyon_algorithms" 1534 | version = "1.0.3" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "00a0349cd8f0270781bb93a824b63df6178e3b4a27794e7be3ce3763f5a44d6e" 1537 | dependencies = [ 1538 | "lyon_path", 1539 | "num-traits", 1540 | ] 1541 | 1542 | [[package]] 1543 | name = "lyon_extra" 1544 | version = "1.0.1" 1545 | source = "registry+https://github.com/rust-lang/crates.io-index" 1546 | checksum = "b9ce2ae38f2480094ec1f0d5df51a75581fa84f0e8f32a0edb1d264630c99f3b" 1547 | dependencies = [ 1548 | "lyon_path", 1549 | ] 1550 | 1551 | [[package]] 1552 | name = "lyon_geom" 1553 | version = "1.0.4" 1554 | source = "registry+https://github.com/rust-lang/crates.io-index" 1555 | checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad" 1556 | dependencies = [ 1557 | "arrayvec", 1558 | "euclid", 1559 | "num-traits", 1560 | ] 1561 | 1562 | [[package]] 1563 | name = "lyon_path" 1564 | version = "1.0.3" 1565 | source = "registry+https://github.com/rust-lang/crates.io-index" 1566 | checksum = "7da8358c012e5651e4619cfd0b5b75c0f77866181a01b0909aab4bae14adf660" 1567 | dependencies = [ 1568 | "lyon_geom", 1569 | "num-traits", 1570 | ] 1571 | 1572 | [[package]] 1573 | name = "malloc_buf" 1574 | version = "0.0.6" 1575 | source = "registry+https://github.com/rust-lang/crates.io-index" 1576 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 1577 | dependencies = [ 1578 | "libc", 1579 | ] 1580 | 1581 | [[package]] 1582 | name = "memchr" 1583 | version = "2.5.0" 1584 | source = "registry+https://github.com/rust-lang/crates.io-index" 1585 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 1586 | 1587 | [[package]] 1588 | name = "memmap2" 1589 | version = "0.5.10" 1590 | source = "registry+https://github.com/rust-lang/crates.io-index" 1591 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1592 | dependencies = [ 1593 | "libc", 1594 | ] 1595 | 1596 | [[package]] 1597 | name = "memoffset" 1598 | version = "0.6.5" 1599 | source = "registry+https://github.com/rust-lang/crates.io-index" 1600 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 1601 | dependencies = [ 1602 | "autocfg", 1603 | ] 1604 | 1605 | [[package]] 1606 | name = "memoffset" 1607 | version = "0.8.0" 1608 | source = "registry+https://github.com/rust-lang/crates.io-index" 1609 | checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" 1610 | dependencies = [ 1611 | "autocfg", 1612 | ] 1613 | 1614 | [[package]] 1615 | name = "metal" 1616 | version = "0.24.0" 1617 | source = "registry+https://github.com/rust-lang/crates.io-index" 1618 | checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" 1619 | dependencies = [ 1620 | "bitflags", 1621 | "block", 1622 | "core-graphics-types", 1623 | "foreign-types", 1624 | "log", 1625 | "objc", 1626 | ] 1627 | 1628 | [[package]] 1629 | name = "minimal-lexical" 1630 | version = "0.2.1" 1631 | source = "registry+https://github.com/rust-lang/crates.io-index" 1632 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1633 | 1634 | [[package]] 1635 | name = "miniz_oxide" 1636 | version = "0.6.2" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" 1639 | dependencies = [ 1640 | "adler", 1641 | ] 1642 | 1643 | [[package]] 1644 | name = "miniz_oxide" 1645 | version = "0.7.1" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 1648 | dependencies = [ 1649 | "adler", 1650 | "simd-adler32", 1651 | ] 1652 | 1653 | [[package]] 1654 | name = "mio" 1655 | version = "0.8.6" 1656 | source = "registry+https://github.com/rust-lang/crates.io-index" 1657 | checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" 1658 | dependencies = [ 1659 | "libc", 1660 | "log", 1661 | "wasi", 1662 | "windows-sys 0.45.0", 1663 | ] 1664 | 1665 | [[package]] 1666 | name = "nanorand" 1667 | version = "0.7.0" 1668 | source = "registry+https://github.com/rust-lang/crates.io-index" 1669 | checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 1670 | dependencies = [ 1671 | "getrandom", 1672 | ] 1673 | 1674 | [[package]] 1675 | name = "ndk" 1676 | version = "0.7.0" 1677 | source = "registry+https://github.com/rust-lang/crates.io-index" 1678 | checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" 1679 | dependencies = [ 1680 | "bitflags", 1681 | "jni-sys", 1682 | "ndk-sys", 1683 | "num_enum 0.5.11", 1684 | "raw-window-handle", 1685 | "thiserror", 1686 | ] 1687 | 1688 | [[package]] 1689 | name = "ndk-context" 1690 | version = "0.1.1" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 1693 | 1694 | [[package]] 1695 | name = "ndk-sys" 1696 | version = "0.4.1+23.1.7779620" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" 1699 | dependencies = [ 1700 | "jni-sys", 1701 | ] 1702 | 1703 | [[package]] 1704 | name = "nix" 1705 | version = "0.24.3" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" 1708 | dependencies = [ 1709 | "bitflags", 1710 | "cfg-if 1.0.0", 1711 | "libc", 1712 | "memoffset 0.6.5", 1713 | ] 1714 | 1715 | [[package]] 1716 | name = "nix" 1717 | version = "0.25.1" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" 1720 | dependencies = [ 1721 | "autocfg", 1722 | "bitflags", 1723 | "cfg-if 1.0.0", 1724 | "libc", 1725 | "memoffset 0.6.5", 1726 | ] 1727 | 1728 | [[package]] 1729 | name = "nom" 1730 | version = "7.1.3" 1731 | source = "registry+https://github.com/rust-lang/crates.io-index" 1732 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1733 | dependencies = [ 1734 | "memchr", 1735 | "minimal-lexical", 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "num-integer" 1740 | version = "0.1.45" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 1743 | dependencies = [ 1744 | "autocfg", 1745 | "num-traits", 1746 | ] 1747 | 1748 | [[package]] 1749 | name = "num-rational" 1750 | version = "0.4.1" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" 1753 | dependencies = [ 1754 | "autocfg", 1755 | "num-integer", 1756 | "num-traits", 1757 | ] 1758 | 1759 | [[package]] 1760 | name = "num-traits" 1761 | version = "0.2.15" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 1764 | dependencies = [ 1765 | "autocfg", 1766 | "libm", 1767 | ] 1768 | 1769 | [[package]] 1770 | name = "num_cpus" 1771 | version = "1.15.0" 1772 | source = "registry+https://github.com/rust-lang/crates.io-index" 1773 | checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 1774 | dependencies = [ 1775 | "hermit-abi 0.2.6", 1776 | "libc", 1777 | ] 1778 | 1779 | [[package]] 1780 | name = "num_enum" 1781 | version = "0.5.11" 1782 | source = "registry+https://github.com/rust-lang/crates.io-index" 1783 | checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" 1784 | dependencies = [ 1785 | "num_enum_derive 0.5.11", 1786 | ] 1787 | 1788 | [[package]] 1789 | name = "num_enum" 1790 | version = "0.6.1" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" 1793 | dependencies = [ 1794 | "num_enum_derive 0.6.1", 1795 | ] 1796 | 1797 | [[package]] 1798 | name = "num_enum_derive" 1799 | version = "0.5.11" 1800 | source = "registry+https://github.com/rust-lang/crates.io-index" 1801 | checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" 1802 | dependencies = [ 1803 | "proc-macro-crate", 1804 | "proc-macro2", 1805 | "quote", 1806 | "syn 1.0.109", 1807 | ] 1808 | 1809 | [[package]] 1810 | name = "num_enum_derive" 1811 | version = "0.6.1" 1812 | source = "registry+https://github.com/rust-lang/crates.io-index" 1813 | checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" 1814 | dependencies = [ 1815 | "proc-macro-crate", 1816 | "proc-macro2", 1817 | "quote", 1818 | "syn 2.0.15", 1819 | ] 1820 | 1821 | [[package]] 1822 | name = "objc" 1823 | version = "0.2.7" 1824 | source = "registry+https://github.com/rust-lang/crates.io-index" 1825 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 1826 | dependencies = [ 1827 | "malloc_buf", 1828 | "objc_exception", 1829 | ] 1830 | 1831 | [[package]] 1832 | name = "objc-foundation" 1833 | version = "0.1.1" 1834 | source = "registry+https://github.com/rust-lang/crates.io-index" 1835 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" 1836 | dependencies = [ 1837 | "block", 1838 | "objc", 1839 | "objc_id", 1840 | ] 1841 | 1842 | [[package]] 1843 | name = "objc-sys" 1844 | version = "0.2.0-beta.2" 1845 | source = "registry+https://github.com/rust-lang/crates.io-index" 1846 | checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" 1847 | 1848 | [[package]] 1849 | name = "objc2" 1850 | version = "0.3.0-beta.3.patch-leaks.3" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" 1853 | dependencies = [ 1854 | "block2", 1855 | "objc-sys", 1856 | "objc2-encode", 1857 | ] 1858 | 1859 | [[package]] 1860 | name = "objc2-encode" 1861 | version = "2.0.0-pre.2" 1862 | source = "registry+https://github.com/rust-lang/crates.io-index" 1863 | checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" 1864 | dependencies = [ 1865 | "objc-sys", 1866 | ] 1867 | 1868 | [[package]] 1869 | name = "objc_exception" 1870 | version = "0.1.2" 1871 | source = "registry+https://github.com/rust-lang/crates.io-index" 1872 | checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" 1873 | dependencies = [ 1874 | "cc", 1875 | ] 1876 | 1877 | [[package]] 1878 | name = "objc_id" 1879 | version = "0.1.1" 1880 | source = "registry+https://github.com/rust-lang/crates.io-index" 1881 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" 1882 | dependencies = [ 1883 | "objc", 1884 | ] 1885 | 1886 | [[package]] 1887 | name = "once_cell" 1888 | version = "1.17.1" 1889 | source = "registry+https://github.com/rust-lang/crates.io-index" 1890 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 1891 | dependencies = [ 1892 | "atomic-polyfill", 1893 | "critical-section", 1894 | ] 1895 | 1896 | [[package]] 1897 | name = "orbclient" 1898 | version = "0.3.44" 1899 | source = "registry+https://github.com/rust-lang/crates.io-index" 1900 | checksum = "0e9829e16c5e112e94efb5e2ad1fe17f8c1c99bb0fcdc8c65c44e935d904767d" 1901 | dependencies = [ 1902 | "cfg-if 1.0.0", 1903 | "redox_syscall 0.2.16", 1904 | "wasm-bindgen", 1905 | "web-sys", 1906 | ] 1907 | 1908 | [[package]] 1909 | name = "ouroboros" 1910 | version = "0.15.6" 1911 | source = "registry+https://github.com/rust-lang/crates.io-index" 1912 | checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" 1913 | dependencies = [ 1914 | "aliasable", 1915 | "ouroboros_macro", 1916 | ] 1917 | 1918 | [[package]] 1919 | name = "ouroboros_macro" 1920 | version = "0.15.6" 1921 | source = "registry+https://github.com/rust-lang/crates.io-index" 1922 | checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" 1923 | dependencies = [ 1924 | "Inflector", 1925 | "proc-macro-error", 1926 | "proc-macro2", 1927 | "quote", 1928 | "syn 1.0.109", 1929 | ] 1930 | 1931 | [[package]] 1932 | name = "owned_ttf_parser" 1933 | version = "0.19.0" 1934 | source = "registry+https://github.com/rust-lang/crates.io-index" 1935 | checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4" 1936 | dependencies = [ 1937 | "ttf-parser 0.19.0", 1938 | ] 1939 | 1940 | [[package]] 1941 | name = "peeking_take_while" 1942 | version = "0.1.2" 1943 | source = "registry+https://github.com/rust-lang/crates.io-index" 1944 | checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" 1945 | 1946 | [[package]] 1947 | name = "percent-encoding" 1948 | version = "2.2.0" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1951 | 1952 | [[package]] 1953 | name = "pico-args" 1954 | version = "0.5.0" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" 1957 | 1958 | [[package]] 1959 | name = "pin-project" 1960 | version = "1.0.12" 1961 | source = "registry+https://github.com/rust-lang/crates.io-index" 1962 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 1963 | dependencies = [ 1964 | "pin-project-internal", 1965 | ] 1966 | 1967 | [[package]] 1968 | name = "pin-project-internal" 1969 | version = "1.0.12" 1970 | source = "registry+https://github.com/rust-lang/crates.io-index" 1971 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 1972 | dependencies = [ 1973 | "proc-macro2", 1974 | "quote", 1975 | "syn 1.0.109", 1976 | ] 1977 | 1978 | [[package]] 1979 | name = "pin-utils" 1980 | version = "0.1.0" 1981 | source = "registry+https://github.com/rust-lang/crates.io-index" 1982 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1983 | 1984 | [[package]] 1985 | name = "pin-weak" 1986 | version = "1.1.0" 1987 | source = "registry+https://github.com/rust-lang/crates.io-index" 1988 | checksum = "b330c9d1b92dfe68442ca20b009c717d5f0b1e3cf4965e62f704c3c6e95a1305" 1989 | 1990 | [[package]] 1991 | name = "pkg-config" 1992 | version = "0.3.26" 1993 | source = "registry+https://github.com/rust-lang/crates.io-index" 1994 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 1995 | 1996 | [[package]] 1997 | name = "png" 1998 | version = "0.17.8" 1999 | source = "registry+https://github.com/rust-lang/crates.io-index" 2000 | checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" 2001 | dependencies = [ 2002 | "bitflags", 2003 | "crc32fast", 2004 | "fdeflate", 2005 | "flate2", 2006 | "miniz_oxide 0.7.1", 2007 | ] 2008 | 2009 | [[package]] 2010 | name = "ppv-lite86" 2011 | version = "0.2.17" 2012 | source = "registry+https://github.com/rust-lang/crates.io-index" 2013 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2014 | 2015 | [[package]] 2016 | name = "proc-macro-crate" 2017 | version = "1.3.1" 2018 | source = "registry+https://github.com/rust-lang/crates.io-index" 2019 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2020 | dependencies = [ 2021 | "once_cell", 2022 | "toml_edit", 2023 | ] 2024 | 2025 | [[package]] 2026 | name = "proc-macro-error" 2027 | version = "1.0.4" 2028 | source = "registry+https://github.com/rust-lang/crates.io-index" 2029 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2030 | dependencies = [ 2031 | "proc-macro-error-attr", 2032 | "proc-macro2", 2033 | "quote", 2034 | "syn 1.0.109", 2035 | "version_check", 2036 | ] 2037 | 2038 | [[package]] 2039 | name = "proc-macro-error-attr" 2040 | version = "1.0.4" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2043 | dependencies = [ 2044 | "proc-macro2", 2045 | "quote", 2046 | "version_check", 2047 | ] 2048 | 2049 | [[package]] 2050 | name = "proc-macro2" 2051 | version = "1.0.56" 2052 | source = "registry+https://github.com/rust-lang/crates.io-index" 2053 | checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" 2054 | dependencies = [ 2055 | "unicode-ident", 2056 | ] 2057 | 2058 | [[package]] 2059 | name = "qoi" 2060 | version = "0.4.1" 2061 | source = "registry+https://github.com/rust-lang/crates.io-index" 2062 | checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" 2063 | dependencies = [ 2064 | "bytemuck", 2065 | ] 2066 | 2067 | [[package]] 2068 | name = "qttypes" 2069 | version = "0.2.8" 2070 | source = "registry+https://github.com/rust-lang/crates.io-index" 2071 | checksum = "0c068c77775ed30e644d8f3b3d9a1d1ee9e120a634ede281cdc42a100823deb7" 2072 | dependencies = [ 2073 | "cpp", 2074 | "cpp_build", 2075 | "semver", 2076 | ] 2077 | 2078 | [[package]] 2079 | name = "quote" 2080 | version = "1.0.26" 2081 | source = "registry+https://github.com/rust-lang/crates.io-index" 2082 | checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" 2083 | dependencies = [ 2084 | "proc-macro2", 2085 | ] 2086 | 2087 | [[package]] 2088 | name = "rand" 2089 | version = "0.8.5" 2090 | source = "registry+https://github.com/rust-lang/crates.io-index" 2091 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2092 | dependencies = [ 2093 | "libc", 2094 | "rand_chacha", 2095 | "rand_core", 2096 | ] 2097 | 2098 | [[package]] 2099 | name = "rand_chacha" 2100 | version = "0.3.1" 2101 | source = "registry+https://github.com/rust-lang/crates.io-index" 2102 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2103 | dependencies = [ 2104 | "ppv-lite86", 2105 | "rand_core", 2106 | ] 2107 | 2108 | [[package]] 2109 | name = "rand_core" 2110 | version = "0.6.4" 2111 | source = "registry+https://github.com/rust-lang/crates.io-index" 2112 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2113 | dependencies = [ 2114 | "getrandom", 2115 | ] 2116 | 2117 | [[package]] 2118 | name = "raw-window-handle" 2119 | version = "0.5.2" 2120 | source = "registry+https://github.com/rust-lang/crates.io-index" 2121 | checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 2122 | 2123 | [[package]] 2124 | name = "rayon" 2125 | version = "1.7.0" 2126 | source = "registry+https://github.com/rust-lang/crates.io-index" 2127 | checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" 2128 | dependencies = [ 2129 | "either", 2130 | "rayon-core", 2131 | ] 2132 | 2133 | [[package]] 2134 | name = "rayon-core" 2135 | version = "1.11.0" 2136 | source = "registry+https://github.com/rust-lang/crates.io-index" 2137 | checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" 2138 | dependencies = [ 2139 | "crossbeam-channel", 2140 | "crossbeam-deque", 2141 | "crossbeam-utils", 2142 | "num_cpus", 2143 | ] 2144 | 2145 | [[package]] 2146 | name = "rctree" 2147 | version = "0.5.0" 2148 | source = "registry+https://github.com/rust-lang/crates.io-index" 2149 | checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" 2150 | 2151 | [[package]] 2152 | name = "redox_syscall" 2153 | version = "0.2.16" 2154 | source = "registry+https://github.com/rust-lang/crates.io-index" 2155 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2156 | dependencies = [ 2157 | "bitflags", 2158 | ] 2159 | 2160 | [[package]] 2161 | name = "redox_syscall" 2162 | version = "0.3.5" 2163 | source = "registry+https://github.com/rust-lang/crates.io-index" 2164 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 2165 | dependencies = [ 2166 | "bitflags", 2167 | ] 2168 | 2169 | [[package]] 2170 | name = "regex" 2171 | version = "1.8.1" 2172 | source = "registry+https://github.com/rust-lang/crates.io-index" 2173 | checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" 2174 | dependencies = [ 2175 | "aho-corasick 1.0.1", 2176 | "memchr", 2177 | "regex-syntax", 2178 | ] 2179 | 2180 | [[package]] 2181 | name = "regex-syntax" 2182 | version = "0.7.1" 2183 | source = "registry+https://github.com/rust-lang/crates.io-index" 2184 | checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" 2185 | 2186 | [[package]] 2187 | name = "resvg" 2188 | version = "0.30.0" 2189 | source = "registry+https://github.com/rust-lang/crates.io-index" 2190 | checksum = "3781eed5e82686ce0cc64b081b70920487ad709525b4555060a63d53636dd46f" 2191 | dependencies = [ 2192 | "log", 2193 | "pico-args", 2194 | "rgb", 2195 | "svgtypes", 2196 | "tiny-skia", 2197 | "usvg", 2198 | ] 2199 | 2200 | [[package]] 2201 | name = "rgb" 2202 | version = "0.8.36" 2203 | source = "registry+https://github.com/rust-lang/crates.io-index" 2204 | checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" 2205 | dependencies = [ 2206 | "bytemuck", 2207 | ] 2208 | 2209 | [[package]] 2210 | name = "ring" 2211 | version = "0.16.20" 2212 | source = "registry+https://github.com/rust-lang/crates.io-index" 2213 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2214 | dependencies = [ 2215 | "cc", 2216 | "libc", 2217 | "once_cell", 2218 | "spin 0.5.2", 2219 | "untrusted", 2220 | "web-sys", 2221 | "winapi", 2222 | ] 2223 | 2224 | [[package]] 2225 | name = "rosvgtree" 2226 | version = "0.2.0" 2227 | source = "registry+https://github.com/rust-lang/crates.io-index" 2228 | checksum = "8cdb7996003c5cc8a8c2585b4ab6b422da64ad86a9c99cfa7ba320e15e8739f3" 2229 | dependencies = [ 2230 | "log", 2231 | "roxmltree", 2232 | "simplecss", 2233 | "siphasher", 2234 | "svgtypes", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "rowan" 2239 | version = "0.15.11" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "64449cfef9483a475ed56ae30e2da5ee96448789fb2aa240a04beb6a055078bf" 2242 | dependencies = [ 2243 | "countme", 2244 | "hashbrown 0.12.3", 2245 | "memoffset 0.8.0", 2246 | "rustc-hash", 2247 | "text-size", 2248 | ] 2249 | 2250 | [[package]] 2251 | name = "roxmltree" 2252 | version = "0.18.0" 2253 | source = "registry+https://github.com/rust-lang/crates.io-index" 2254 | checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8" 2255 | dependencies = [ 2256 | "xmlparser", 2257 | ] 2258 | 2259 | [[package]] 2260 | name = "rustc-hash" 2261 | version = "1.1.0" 2262 | source = "registry+https://github.com/rust-lang/crates.io-index" 2263 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 2264 | 2265 | [[package]] 2266 | name = "rustc_version" 2267 | version = "0.4.0" 2268 | source = "registry+https://github.com/rust-lang/crates.io-index" 2269 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2270 | dependencies = [ 2271 | "semver", 2272 | ] 2273 | 2274 | [[package]] 2275 | name = "rustls" 2276 | version = "0.20.8" 2277 | source = "registry+https://github.com/rust-lang/crates.io-index" 2278 | checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" 2279 | dependencies = [ 2280 | "log", 2281 | "ring", 2282 | "sct", 2283 | "webpki", 2284 | ] 2285 | 2286 | [[package]] 2287 | name = "rustversion" 2288 | version = "1.0.12" 2289 | source = "registry+https://github.com/rust-lang/crates.io-index" 2290 | checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" 2291 | 2292 | [[package]] 2293 | name = "rustybuzz" 2294 | version = "0.7.0" 2295 | source = "registry+https://github.com/rust-lang/crates.io-index" 2296 | checksum = "162bdf42e261bee271b3957691018634488084ef577dddeb6420a9684cab2a6a" 2297 | dependencies = [ 2298 | "bitflags", 2299 | "bytemuck", 2300 | "smallvec", 2301 | "ttf-parser 0.18.1", 2302 | "unicode-bidi-mirroring", 2303 | "unicode-ccc", 2304 | "unicode-general-category", 2305 | "unicode-script", 2306 | ] 2307 | 2308 | [[package]] 2309 | name = "ryu" 2310 | version = "1.0.13" 2311 | source = "registry+https://github.com/rust-lang/crates.io-index" 2312 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 2313 | 2314 | [[package]] 2315 | name = "scoped-tls" 2316 | version = "1.0.1" 2317 | source = "registry+https://github.com/rust-lang/crates.io-index" 2318 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2319 | 2320 | [[package]] 2321 | name = "scoped-tls-hkt" 2322 | version = "0.1.2" 2323 | source = "registry+https://github.com/rust-lang/crates.io-index" 2324 | checksum = "c2e9d7eaddb227e8fbaaa71136ae0e1e913ca159b86c7da82f3e8f0044ad3a63" 2325 | 2326 | [[package]] 2327 | name = "scopeguard" 2328 | version = "1.1.0" 2329 | source = "registry+https://github.com/rust-lang/crates.io-index" 2330 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 2331 | 2332 | [[package]] 2333 | name = "sct" 2334 | version = "0.7.0" 2335 | source = "registry+https://github.com/rust-lang/crates.io-index" 2336 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 2337 | dependencies = [ 2338 | "ring", 2339 | "untrusted", 2340 | ] 2341 | 2342 | [[package]] 2343 | name = "sctk-adwaita" 2344 | version = "0.5.4" 2345 | source = "registry+https://github.com/rust-lang/crates.io-index" 2346 | checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" 2347 | dependencies = [ 2348 | "ab_glyph", 2349 | "log", 2350 | "memmap2", 2351 | "smithay-client-toolkit", 2352 | "tiny-skia", 2353 | ] 2354 | 2355 | [[package]] 2356 | name = "semver" 2357 | version = "1.0.17" 2358 | source = "registry+https://github.com/rust-lang/crates.io-index" 2359 | checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" 2360 | 2361 | [[package]] 2362 | name = "send_wrapper" 2363 | version = "0.6.0" 2364 | source = "registry+https://github.com/rust-lang/crates.io-index" 2365 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 2366 | 2367 | [[package]] 2368 | name = "serde" 2369 | version = "1.0.160" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" 2372 | 2373 | [[package]] 2374 | name = "serde_derive" 2375 | version = "1.0.160" 2376 | source = "registry+https://github.com/rust-lang/crates.io-index" 2377 | checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" 2378 | dependencies = [ 2379 | "proc-macro2", 2380 | "quote", 2381 | "syn 2.0.15", 2382 | ] 2383 | 2384 | [[package]] 2385 | name = "serde_json" 2386 | version = "1.0.96" 2387 | source = "registry+https://github.com/rust-lang/crates.io-index" 2388 | checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" 2389 | dependencies = [ 2390 | "itoa", 2391 | "ryu", 2392 | "serde", 2393 | ] 2394 | 2395 | [[package]] 2396 | name = "serde_spanned" 2397 | version = "0.6.1" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" 2400 | dependencies = [ 2401 | "serde", 2402 | ] 2403 | 2404 | [[package]] 2405 | name = "shlex" 2406 | version = "1.1.0" 2407 | source = "registry+https://github.com/rust-lang/crates.io-index" 2408 | checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" 2409 | 2410 | [[package]] 2411 | name = "simd-adler32" 2412 | version = "0.3.5" 2413 | source = "registry+https://github.com/rust-lang/crates.io-index" 2414 | checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" 2415 | 2416 | [[package]] 2417 | name = "simplecss" 2418 | version = "0.2.1" 2419 | source = "registry+https://github.com/rust-lang/crates.io-index" 2420 | checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" 2421 | dependencies = [ 2422 | "log", 2423 | ] 2424 | 2425 | [[package]] 2426 | name = "siphasher" 2427 | version = "0.3.10" 2428 | source = "registry+https://github.com/rust-lang/crates.io-index" 2429 | checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" 2430 | 2431 | [[package]] 2432 | name = "skia-bindings" 2433 | version = "0.60.0" 2434 | source = "registry+https://github.com/rust-lang/crates.io-index" 2435 | checksum = "52d166792c15b8ebd180b83e3b9ab38ef69c09468ed26c11692fb59c5af9bc1d" 2436 | dependencies = [ 2437 | "bindgen", 2438 | "cc", 2439 | "flate2", 2440 | "heck", 2441 | "lazy_static", 2442 | "regex", 2443 | "serde_json", 2444 | "tar", 2445 | "toml", 2446 | "ureq", 2447 | ] 2448 | 2449 | [[package]] 2450 | name = "skia-safe" 2451 | version = "0.60.0" 2452 | source = "registry+https://github.com/rust-lang/crates.io-index" 2453 | checksum = "5fee050b67b2124a5745484f4216999951feeeb1577ef1515e9194ea6d9a9612" 2454 | dependencies = [ 2455 | "bitflags", 2456 | "lazy_static", 2457 | "skia-bindings", 2458 | "winapi", 2459 | "wio", 2460 | ] 2461 | 2462 | [[package]] 2463 | name = "slab" 2464 | version = "0.4.8" 2465 | source = "registry+https://github.com/rust-lang/crates.io-index" 2466 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 2467 | dependencies = [ 2468 | "autocfg", 2469 | ] 2470 | 2471 | [[package]] 2472 | name = "slint" 2473 | version = "1.0.1" 2474 | source = "registry+https://github.com/rust-lang/crates.io-index" 2475 | checksum = "09a9bddc55b3092b4fcc8cd128c8014157c9aa128d0710a209a598e735e6e082" 2476 | dependencies = [ 2477 | "const-field-offset", 2478 | "i-slint-backend-selector", 2479 | "i-slint-core", 2480 | "num-traits", 2481 | "once_cell", 2482 | "pin-weak", 2483 | "slint-macros", 2484 | "vtable", 2485 | ] 2486 | 2487 | [[package]] 2488 | name = "slint-build" 2489 | version = "1.0.1" 2490 | source = "registry+https://github.com/rust-lang/crates.io-index" 2491 | checksum = "1e1e5226a2e73a26d7198047f0fc07d1de304f3a9191c837acb64d08be33abe5" 2492 | dependencies = [ 2493 | "i-slint-compiler", 2494 | "spin_on", 2495 | "thiserror", 2496 | "toml_edit", 2497 | ] 2498 | 2499 | [[package]] 2500 | name = "slint-macros" 2501 | version = "1.0.1" 2502 | source = "registry+https://github.com/rust-lang/crates.io-index" 2503 | checksum = "a902b689b21af5fb7954c822ba986e482e9b0b0439422f6eaf92dd4b053d7add" 2504 | dependencies = [ 2505 | "i-slint-compiler", 2506 | "proc-macro2", 2507 | "quote", 2508 | "spin_on", 2509 | ] 2510 | 2511 | [[package]] 2512 | name = "slotmap" 2513 | version = "1.0.6" 2514 | source = "registry+https://github.com/rust-lang/crates.io-index" 2515 | checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" 2516 | dependencies = [ 2517 | "version_check", 2518 | ] 2519 | 2520 | [[package]] 2521 | name = "smallvec" 2522 | version = "1.10.0" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 2525 | 2526 | [[package]] 2527 | name = "smithay-client-toolkit" 2528 | version = "0.16.0" 2529 | source = "registry+https://github.com/rust-lang/crates.io-index" 2530 | checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" 2531 | dependencies = [ 2532 | "bitflags", 2533 | "calloop", 2534 | "dlib", 2535 | "lazy_static", 2536 | "log", 2537 | "memmap2", 2538 | "nix 0.24.3", 2539 | "pkg-config", 2540 | "wayland-client", 2541 | "wayland-cursor", 2542 | "wayland-protocols", 2543 | ] 2544 | 2545 | [[package]] 2546 | name = "smithay-clipboard" 2547 | version = "0.6.6" 2548 | source = "registry+https://github.com/rust-lang/crates.io-index" 2549 | checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" 2550 | dependencies = [ 2551 | "smithay-client-toolkit", 2552 | "wayland-client", 2553 | ] 2554 | 2555 | [[package]] 2556 | name = "smol_str" 2557 | version = "0.2.0" 2558 | source = "registry+https://github.com/rust-lang/crates.io-index" 2559 | checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" 2560 | dependencies = [ 2561 | "serde", 2562 | ] 2563 | 2564 | [[package]] 2565 | name = "spin" 2566 | version = "0.5.2" 2567 | source = "registry+https://github.com/rust-lang/crates.io-index" 2568 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 2569 | 2570 | [[package]] 2571 | name = "spin" 2572 | version = "0.9.8" 2573 | source = "registry+https://github.com/rust-lang/crates.io-index" 2574 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 2575 | dependencies = [ 2576 | "lock_api", 2577 | ] 2578 | 2579 | [[package]] 2580 | name = "spin_on" 2581 | version = "0.1.1" 2582 | source = "registry+https://github.com/rust-lang/crates.io-index" 2583 | checksum = "076e103ed41b9864aa838287efe5f4e3a7a0362dd00671ae62a212e5e4612da2" 2584 | dependencies = [ 2585 | "pin-utils", 2586 | ] 2587 | 2588 | [[package]] 2589 | name = "stable_deref_trait" 2590 | version = "1.2.0" 2591 | source = "registry+https://github.com/rust-lang/crates.io-index" 2592 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2593 | 2594 | [[package]] 2595 | name = "static_assertions" 2596 | version = "1.1.0" 2597 | source = "registry+https://github.com/rust-lang/crates.io-index" 2598 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2599 | 2600 | [[package]] 2601 | name = "strict-num" 2602 | version = "0.1.0" 2603 | source = "registry+https://github.com/rust-lang/crates.io-index" 2604 | checksum = "9df65f20698aeed245efdde3628a6b559ea1239bbb871af1b6e3b58c413b2bd1" 2605 | dependencies = [ 2606 | "float-cmp", 2607 | ] 2608 | 2609 | [[package]] 2610 | name = "strum" 2611 | version = "0.24.1" 2612 | source = "registry+https://github.com/rust-lang/crates.io-index" 2613 | checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" 2614 | dependencies = [ 2615 | "strum_macros", 2616 | ] 2617 | 2618 | [[package]] 2619 | name = "strum_macros" 2620 | version = "0.24.3" 2621 | source = "registry+https://github.com/rust-lang/crates.io-index" 2622 | checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" 2623 | dependencies = [ 2624 | "heck", 2625 | "proc-macro2", 2626 | "quote", 2627 | "rustversion", 2628 | "syn 1.0.109", 2629 | ] 2630 | 2631 | [[package]] 2632 | name = "svgtypes" 2633 | version = "0.11.0" 2634 | source = "registry+https://github.com/rust-lang/crates.io-index" 2635 | checksum = "ed4b0611e7f3277f68c0fa18e385d9e2d26923691379690039548f867cef02a7" 2636 | dependencies = [ 2637 | "kurbo", 2638 | "siphasher", 2639 | ] 2640 | 2641 | [[package]] 2642 | name = "syn" 2643 | version = "1.0.109" 2644 | source = "registry+https://github.com/rust-lang/crates.io-index" 2645 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2646 | dependencies = [ 2647 | "proc-macro2", 2648 | "quote", 2649 | "unicode-ident", 2650 | ] 2651 | 2652 | [[package]] 2653 | name = "syn" 2654 | version = "2.0.15" 2655 | source = "registry+https://github.com/rust-lang/crates.io-index" 2656 | checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" 2657 | dependencies = [ 2658 | "proc-macro2", 2659 | "quote", 2660 | "unicode-ident", 2661 | ] 2662 | 2663 | [[package]] 2664 | name = "tar" 2665 | version = "0.4.38" 2666 | source = "registry+https://github.com/rust-lang/crates.io-index" 2667 | checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" 2668 | dependencies = [ 2669 | "filetime", 2670 | "libc", 2671 | "xattr", 2672 | ] 2673 | 2674 | [[package]] 2675 | name = "termcolor" 2676 | version = "1.2.0" 2677 | source = "registry+https://github.com/rust-lang/crates.io-index" 2678 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 2679 | dependencies = [ 2680 | "winapi-util", 2681 | ] 2682 | 2683 | [[package]] 2684 | name = "tetris-slint" 2685 | version = "0.1.0" 2686 | dependencies = [ 2687 | "console_error_panic_hook", 2688 | "getrandom", 2689 | "rand", 2690 | "slint", 2691 | "slint-build", 2692 | "wasm-bindgen", 2693 | "web-sys", 2694 | ] 2695 | 2696 | [[package]] 2697 | name = "text-size" 2698 | version = "1.1.0" 2699 | source = "registry+https://github.com/rust-lang/crates.io-index" 2700 | checksum = "288cb548dbe72b652243ea797201f3d481a0609a967980fcc5b2315ea811560a" 2701 | 2702 | [[package]] 2703 | name = "thiserror" 2704 | version = "1.0.40" 2705 | source = "registry+https://github.com/rust-lang/crates.io-index" 2706 | checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" 2707 | dependencies = [ 2708 | "thiserror-impl", 2709 | ] 2710 | 2711 | [[package]] 2712 | name = "thiserror-impl" 2713 | version = "1.0.40" 2714 | source = "registry+https://github.com/rust-lang/crates.io-index" 2715 | checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" 2716 | dependencies = [ 2717 | "proc-macro2", 2718 | "quote", 2719 | "syn 2.0.15", 2720 | ] 2721 | 2722 | [[package]] 2723 | name = "tiff" 2724 | version = "0.8.1" 2725 | source = "registry+https://github.com/rust-lang/crates.io-index" 2726 | checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" 2727 | dependencies = [ 2728 | "flate2", 2729 | "jpeg-decoder", 2730 | "weezl", 2731 | ] 2732 | 2733 | [[package]] 2734 | name = "tiny-skia" 2735 | version = "0.8.4" 2736 | source = "registry+https://github.com/rust-lang/crates.io-index" 2737 | checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" 2738 | dependencies = [ 2739 | "arrayref", 2740 | "arrayvec", 2741 | "bytemuck", 2742 | "cfg-if 1.0.0", 2743 | "png", 2744 | "tiny-skia-path", 2745 | ] 2746 | 2747 | [[package]] 2748 | name = "tiny-skia-path" 2749 | version = "0.8.4" 2750 | source = "registry+https://github.com/rust-lang/crates.io-index" 2751 | checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" 2752 | dependencies = [ 2753 | "arrayref", 2754 | "bytemuck", 2755 | "strict-num", 2756 | ] 2757 | 2758 | [[package]] 2759 | name = "tinyvec" 2760 | version = "1.6.0" 2761 | source = "registry+https://github.com/rust-lang/crates.io-index" 2762 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2763 | dependencies = [ 2764 | "tinyvec_macros", 2765 | ] 2766 | 2767 | [[package]] 2768 | name = "tinyvec_macros" 2769 | version = "0.1.1" 2770 | source = "registry+https://github.com/rust-lang/crates.io-index" 2771 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2772 | 2773 | [[package]] 2774 | name = "toml" 2775 | version = "0.7.3" 2776 | source = "registry+https://github.com/rust-lang/crates.io-index" 2777 | checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" 2778 | dependencies = [ 2779 | "serde", 2780 | "serde_spanned", 2781 | "toml_datetime", 2782 | "toml_edit", 2783 | ] 2784 | 2785 | [[package]] 2786 | name = "toml_datetime" 2787 | version = "0.6.1" 2788 | source = "registry+https://github.com/rust-lang/crates.io-index" 2789 | checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" 2790 | dependencies = [ 2791 | "serde", 2792 | ] 2793 | 2794 | [[package]] 2795 | name = "toml_edit" 2796 | version = "0.19.8" 2797 | source = "registry+https://github.com/rust-lang/crates.io-index" 2798 | checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" 2799 | dependencies = [ 2800 | "indexmap", 2801 | "serde", 2802 | "serde_spanned", 2803 | "toml_datetime", 2804 | "winnow", 2805 | ] 2806 | 2807 | [[package]] 2808 | name = "ttf-parser" 2809 | version = "0.15.2" 2810 | source = "registry+https://github.com/rust-lang/crates.io-index" 2811 | checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd" 2812 | 2813 | [[package]] 2814 | name = "ttf-parser" 2815 | version = "0.18.1" 2816 | source = "registry+https://github.com/rust-lang/crates.io-index" 2817 | checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" 2818 | 2819 | [[package]] 2820 | name = "ttf-parser" 2821 | version = "0.19.0" 2822 | source = "registry+https://github.com/rust-lang/crates.io-index" 2823 | checksum = "44dcf002ae3b32cd25400d6df128c5babec3927cd1eb7ce813cfff20eb6c3746" 2824 | 2825 | [[package]] 2826 | name = "unicode-bidi" 2827 | version = "0.3.13" 2828 | source = "registry+https://github.com/rust-lang/crates.io-index" 2829 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 2830 | 2831 | [[package]] 2832 | name = "unicode-bidi-mirroring" 2833 | version = "0.1.0" 2834 | source = "registry+https://github.com/rust-lang/crates.io-index" 2835 | checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" 2836 | 2837 | [[package]] 2838 | name = "unicode-ccc" 2839 | version = "0.1.2" 2840 | source = "registry+https://github.com/rust-lang/crates.io-index" 2841 | checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" 2842 | 2843 | [[package]] 2844 | name = "unicode-general-category" 2845 | version = "0.6.0" 2846 | source = "registry+https://github.com/rust-lang/crates.io-index" 2847 | checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7" 2848 | 2849 | [[package]] 2850 | name = "unicode-ident" 2851 | version = "1.0.8" 2852 | source = "registry+https://github.com/rust-lang/crates.io-index" 2853 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 2854 | 2855 | [[package]] 2856 | name = "unicode-linebreak" 2857 | version = "0.1.4" 2858 | source = "registry+https://github.com/rust-lang/crates.io-index" 2859 | checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137" 2860 | dependencies = [ 2861 | "hashbrown 0.12.3", 2862 | "regex", 2863 | ] 2864 | 2865 | [[package]] 2866 | name = "unicode-normalization" 2867 | version = "0.1.22" 2868 | source = "registry+https://github.com/rust-lang/crates.io-index" 2869 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2870 | dependencies = [ 2871 | "tinyvec", 2872 | ] 2873 | 2874 | [[package]] 2875 | name = "unicode-script" 2876 | version = "0.5.5" 2877 | source = "registry+https://github.com/rust-lang/crates.io-index" 2878 | checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" 2879 | 2880 | [[package]] 2881 | name = "unicode-segmentation" 2882 | version = "1.10.1" 2883 | source = "registry+https://github.com/rust-lang/crates.io-index" 2884 | checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" 2885 | 2886 | [[package]] 2887 | name = "unicode-xid" 2888 | version = "0.2.4" 2889 | source = "registry+https://github.com/rust-lang/crates.io-index" 2890 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 2891 | 2892 | [[package]] 2893 | name = "untrusted" 2894 | version = "0.7.1" 2895 | source = "registry+https://github.com/rust-lang/crates.io-index" 2896 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 2897 | 2898 | [[package]] 2899 | name = "ureq" 2900 | version = "2.6.2" 2901 | source = "registry+https://github.com/rust-lang/crates.io-index" 2902 | checksum = "338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d" 2903 | dependencies = [ 2904 | "base64 0.13.1", 2905 | "flate2", 2906 | "log", 2907 | "once_cell", 2908 | "rustls", 2909 | "url", 2910 | "webpki", 2911 | "webpki-roots", 2912 | ] 2913 | 2914 | [[package]] 2915 | name = "url" 2916 | version = "2.3.1" 2917 | source = "registry+https://github.com/rust-lang/crates.io-index" 2918 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 2919 | dependencies = [ 2920 | "form_urlencoded", 2921 | "idna", 2922 | "percent-encoding", 2923 | ] 2924 | 2925 | [[package]] 2926 | name = "usvg" 2927 | version = "0.30.0" 2928 | source = "registry+https://github.com/rust-lang/crates.io-index" 2929 | checksum = "15cc6c2525931fafd8dd1b1169805c02b6ad8aeb85ca454413cc251df0592220" 2930 | dependencies = [ 2931 | "base64 0.21.0", 2932 | "log", 2933 | "pico-args", 2934 | "usvg-parser", 2935 | "usvg-tree", 2936 | "xmlwriter", 2937 | ] 2938 | 2939 | [[package]] 2940 | name = "usvg-parser" 2941 | version = "0.30.0" 2942 | source = "registry+https://github.com/rust-lang/crates.io-index" 2943 | checksum = "8177e95723471c172d1163d4d6b28c0ede7a3ef6389a117b69ae323faf8b62a1" 2944 | dependencies = [ 2945 | "data-url", 2946 | "flate2", 2947 | "imagesize", 2948 | "kurbo", 2949 | "log", 2950 | "rosvgtree", 2951 | "strict-num", 2952 | "svgtypes", 2953 | "usvg-tree", 2954 | ] 2955 | 2956 | [[package]] 2957 | name = "usvg-tree" 2958 | version = "0.30.0" 2959 | source = "registry+https://github.com/rust-lang/crates.io-index" 2960 | checksum = "a58ac99ef85e0a970d0b1cdb89b9327069d853876da8b64a2bd96fc0d25cad8c" 2961 | dependencies = [ 2962 | "kurbo", 2963 | "rctree", 2964 | "strict-num", 2965 | "svgtypes", 2966 | ] 2967 | 2968 | [[package]] 2969 | name = "vec_map" 2970 | version = "0.8.2" 2971 | source = "registry+https://github.com/rust-lang/crates.io-index" 2972 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 2973 | 2974 | [[package]] 2975 | name = "version_check" 2976 | version = "0.9.4" 2977 | source = "registry+https://github.com/rust-lang/crates.io-index" 2978 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2979 | 2980 | [[package]] 2981 | name = "vtable" 2982 | version = "0.1.10" 2983 | source = "registry+https://github.com/rust-lang/crates.io-index" 2984 | checksum = "f0eaffdd71dc6eae079fb88ff1d555cd442d25150c28b9fdc69b8af4a9720268" 2985 | dependencies = [ 2986 | "atomic-polyfill", 2987 | "const-field-offset", 2988 | "stable_deref_trait", 2989 | "vtable-macro", 2990 | ] 2991 | 2992 | [[package]] 2993 | name = "vtable-macro" 2994 | version = "0.1.10" 2995 | source = "registry+https://github.com/rust-lang/crates.io-index" 2996 | checksum = "6b2b8eecdb8e4284adf5546fc518f048f6dc33e7203dbe36fa93a4add39b31f6" 2997 | dependencies = [ 2998 | "proc-macro2", 2999 | "quote", 3000 | "syn 2.0.15", 3001 | ] 3002 | 3003 | [[package]] 3004 | name = "wasi" 3005 | version = "0.11.0+wasi-snapshot-preview1" 3006 | source = "registry+https://github.com/rust-lang/crates.io-index" 3007 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3008 | 3009 | [[package]] 3010 | name = "wasm-bindgen" 3011 | version = "0.2.84" 3012 | source = "registry+https://github.com/rust-lang/crates.io-index" 3013 | checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" 3014 | dependencies = [ 3015 | "cfg-if 1.0.0", 3016 | "wasm-bindgen-macro", 3017 | ] 3018 | 3019 | [[package]] 3020 | name = "wasm-bindgen-backend" 3021 | version = "0.2.84" 3022 | source = "registry+https://github.com/rust-lang/crates.io-index" 3023 | checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" 3024 | dependencies = [ 3025 | "bumpalo", 3026 | "log", 3027 | "once_cell", 3028 | "proc-macro2", 3029 | "quote", 3030 | "syn 1.0.109", 3031 | "wasm-bindgen-shared", 3032 | ] 3033 | 3034 | [[package]] 3035 | name = "wasm-bindgen-macro" 3036 | version = "0.2.84" 3037 | source = "registry+https://github.com/rust-lang/crates.io-index" 3038 | checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" 3039 | dependencies = [ 3040 | "quote", 3041 | "wasm-bindgen-macro-support", 3042 | ] 3043 | 3044 | [[package]] 3045 | name = "wasm-bindgen-macro-support" 3046 | version = "0.2.84" 3047 | source = "registry+https://github.com/rust-lang/crates.io-index" 3048 | checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" 3049 | dependencies = [ 3050 | "proc-macro2", 3051 | "quote", 3052 | "syn 1.0.109", 3053 | "wasm-bindgen-backend", 3054 | "wasm-bindgen-shared", 3055 | ] 3056 | 3057 | [[package]] 3058 | name = "wasm-bindgen-shared" 3059 | version = "0.2.84" 3060 | source = "registry+https://github.com/rust-lang/crates.io-index" 3061 | checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" 3062 | 3063 | [[package]] 3064 | name = "wayland-client" 3065 | version = "0.29.5" 3066 | source = "registry+https://github.com/rust-lang/crates.io-index" 3067 | checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" 3068 | dependencies = [ 3069 | "bitflags", 3070 | "downcast-rs", 3071 | "libc", 3072 | "nix 0.24.3", 3073 | "scoped-tls", 3074 | "wayland-commons", 3075 | "wayland-scanner", 3076 | "wayland-sys 0.29.5", 3077 | ] 3078 | 3079 | [[package]] 3080 | name = "wayland-commons" 3081 | version = "0.29.5" 3082 | source = "registry+https://github.com/rust-lang/crates.io-index" 3083 | checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" 3084 | dependencies = [ 3085 | "nix 0.24.3", 3086 | "once_cell", 3087 | "smallvec", 3088 | "wayland-sys 0.29.5", 3089 | ] 3090 | 3091 | [[package]] 3092 | name = "wayland-cursor" 3093 | version = "0.29.5" 3094 | source = "registry+https://github.com/rust-lang/crates.io-index" 3095 | checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" 3096 | dependencies = [ 3097 | "nix 0.24.3", 3098 | "wayland-client", 3099 | "xcursor", 3100 | ] 3101 | 3102 | [[package]] 3103 | name = "wayland-protocols" 3104 | version = "0.29.5" 3105 | source = "registry+https://github.com/rust-lang/crates.io-index" 3106 | checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" 3107 | dependencies = [ 3108 | "bitflags", 3109 | "wayland-client", 3110 | "wayland-commons", 3111 | "wayland-scanner", 3112 | ] 3113 | 3114 | [[package]] 3115 | name = "wayland-scanner" 3116 | version = "0.29.5" 3117 | source = "registry+https://github.com/rust-lang/crates.io-index" 3118 | checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" 3119 | dependencies = [ 3120 | "proc-macro2", 3121 | "quote", 3122 | "xml-rs", 3123 | ] 3124 | 3125 | [[package]] 3126 | name = "wayland-sys" 3127 | version = "0.29.5" 3128 | source = "registry+https://github.com/rust-lang/crates.io-index" 3129 | checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" 3130 | dependencies = [ 3131 | "dlib", 3132 | "lazy_static", 3133 | "pkg-config", 3134 | ] 3135 | 3136 | [[package]] 3137 | name = "wayland-sys" 3138 | version = "0.30.1" 3139 | source = "registry+https://github.com/rust-lang/crates.io-index" 3140 | checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" 3141 | dependencies = [ 3142 | "dlib", 3143 | "lazy_static", 3144 | "log", 3145 | "pkg-config", 3146 | ] 3147 | 3148 | [[package]] 3149 | name = "web-sys" 3150 | version = "0.3.61" 3151 | source = "registry+https://github.com/rust-lang/crates.io-index" 3152 | checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" 3153 | dependencies = [ 3154 | "js-sys", 3155 | "wasm-bindgen", 3156 | ] 3157 | 3158 | [[package]] 3159 | name = "webpki" 3160 | version = "0.22.0" 3161 | source = "registry+https://github.com/rust-lang/crates.io-index" 3162 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 3163 | dependencies = [ 3164 | "ring", 3165 | "untrusted", 3166 | ] 3167 | 3168 | [[package]] 3169 | name = "webpki-roots" 3170 | version = "0.22.6" 3171 | source = "registry+https://github.com/rust-lang/crates.io-index" 3172 | checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" 3173 | dependencies = [ 3174 | "webpki", 3175 | ] 3176 | 3177 | [[package]] 3178 | name = "weezl" 3179 | version = "0.1.7" 3180 | source = "registry+https://github.com/rust-lang/crates.io-index" 3181 | checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" 3182 | 3183 | [[package]] 3184 | name = "which" 3185 | version = "4.4.0" 3186 | source = "registry+https://github.com/rust-lang/crates.io-index" 3187 | checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" 3188 | dependencies = [ 3189 | "either", 3190 | "libc", 3191 | "once_cell", 3192 | ] 3193 | 3194 | [[package]] 3195 | name = "winapi" 3196 | version = "0.3.9" 3197 | source = "registry+https://github.com/rust-lang/crates.io-index" 3198 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3199 | dependencies = [ 3200 | "winapi-i686-pc-windows-gnu", 3201 | "winapi-x86_64-pc-windows-gnu", 3202 | ] 3203 | 3204 | [[package]] 3205 | name = "winapi-i686-pc-windows-gnu" 3206 | version = "0.4.0" 3207 | source = "registry+https://github.com/rust-lang/crates.io-index" 3208 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3209 | 3210 | [[package]] 3211 | name = "winapi-util" 3212 | version = "0.1.5" 3213 | source = "registry+https://github.com/rust-lang/crates.io-index" 3214 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 3215 | dependencies = [ 3216 | "winapi", 3217 | ] 3218 | 3219 | [[package]] 3220 | name = "winapi-wsapoll" 3221 | version = "0.1.1" 3222 | source = "registry+https://github.com/rust-lang/crates.io-index" 3223 | checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" 3224 | dependencies = [ 3225 | "winapi", 3226 | ] 3227 | 3228 | [[package]] 3229 | name = "winapi-x86_64-pc-windows-gnu" 3230 | version = "0.4.0" 3231 | source = "registry+https://github.com/rust-lang/crates.io-index" 3232 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3233 | 3234 | [[package]] 3235 | name = "windows-sys" 3236 | version = "0.45.0" 3237 | source = "registry+https://github.com/rust-lang/crates.io-index" 3238 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 3239 | dependencies = [ 3240 | "windows-targets 0.42.2", 3241 | ] 3242 | 3243 | [[package]] 3244 | name = "windows-sys" 3245 | version = "0.48.0" 3246 | source = "registry+https://github.com/rust-lang/crates.io-index" 3247 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3248 | dependencies = [ 3249 | "windows-targets 0.48.0", 3250 | ] 3251 | 3252 | [[package]] 3253 | name = "windows-targets" 3254 | version = "0.42.2" 3255 | source = "registry+https://github.com/rust-lang/crates.io-index" 3256 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 3257 | dependencies = [ 3258 | "windows_aarch64_gnullvm 0.42.2", 3259 | "windows_aarch64_msvc 0.42.2", 3260 | "windows_i686_gnu 0.42.2", 3261 | "windows_i686_msvc 0.42.2", 3262 | "windows_x86_64_gnu 0.42.2", 3263 | "windows_x86_64_gnullvm 0.42.2", 3264 | "windows_x86_64_msvc 0.42.2", 3265 | ] 3266 | 3267 | [[package]] 3268 | name = "windows-targets" 3269 | version = "0.48.0" 3270 | source = "registry+https://github.com/rust-lang/crates.io-index" 3271 | checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" 3272 | dependencies = [ 3273 | "windows_aarch64_gnullvm 0.48.0", 3274 | "windows_aarch64_msvc 0.48.0", 3275 | "windows_i686_gnu 0.48.0", 3276 | "windows_i686_msvc 0.48.0", 3277 | "windows_x86_64_gnu 0.48.0", 3278 | "windows_x86_64_gnullvm 0.48.0", 3279 | "windows_x86_64_msvc 0.48.0", 3280 | ] 3281 | 3282 | [[package]] 3283 | name = "windows_aarch64_gnullvm" 3284 | version = "0.42.2" 3285 | source = "registry+https://github.com/rust-lang/crates.io-index" 3286 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 3287 | 3288 | [[package]] 3289 | name = "windows_aarch64_gnullvm" 3290 | version = "0.48.0" 3291 | source = "registry+https://github.com/rust-lang/crates.io-index" 3292 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 3293 | 3294 | [[package]] 3295 | name = "windows_aarch64_msvc" 3296 | version = "0.42.2" 3297 | source = "registry+https://github.com/rust-lang/crates.io-index" 3298 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 3299 | 3300 | [[package]] 3301 | name = "windows_aarch64_msvc" 3302 | version = "0.48.0" 3303 | source = "registry+https://github.com/rust-lang/crates.io-index" 3304 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 3305 | 3306 | [[package]] 3307 | name = "windows_i686_gnu" 3308 | version = "0.42.2" 3309 | source = "registry+https://github.com/rust-lang/crates.io-index" 3310 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 3311 | 3312 | [[package]] 3313 | name = "windows_i686_gnu" 3314 | version = "0.48.0" 3315 | source = "registry+https://github.com/rust-lang/crates.io-index" 3316 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 3317 | 3318 | [[package]] 3319 | name = "windows_i686_msvc" 3320 | version = "0.42.2" 3321 | source = "registry+https://github.com/rust-lang/crates.io-index" 3322 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 3323 | 3324 | [[package]] 3325 | name = "windows_i686_msvc" 3326 | version = "0.48.0" 3327 | source = "registry+https://github.com/rust-lang/crates.io-index" 3328 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 3329 | 3330 | [[package]] 3331 | name = "windows_x86_64_gnu" 3332 | version = "0.42.2" 3333 | source = "registry+https://github.com/rust-lang/crates.io-index" 3334 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 3335 | 3336 | [[package]] 3337 | name = "windows_x86_64_gnu" 3338 | version = "0.48.0" 3339 | source = "registry+https://github.com/rust-lang/crates.io-index" 3340 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 3341 | 3342 | [[package]] 3343 | name = "windows_x86_64_gnullvm" 3344 | version = "0.42.2" 3345 | source = "registry+https://github.com/rust-lang/crates.io-index" 3346 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 3347 | 3348 | [[package]] 3349 | name = "windows_x86_64_gnullvm" 3350 | version = "0.48.0" 3351 | source = "registry+https://github.com/rust-lang/crates.io-index" 3352 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 3353 | 3354 | [[package]] 3355 | name = "windows_x86_64_msvc" 3356 | version = "0.42.2" 3357 | source = "registry+https://github.com/rust-lang/crates.io-index" 3358 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 3359 | 3360 | [[package]] 3361 | name = "windows_x86_64_msvc" 3362 | version = "0.48.0" 3363 | source = "registry+https://github.com/rust-lang/crates.io-index" 3364 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 3365 | 3366 | [[package]] 3367 | name = "winit" 3368 | version = "0.28.3" 3369 | source = "registry+https://github.com/rust-lang/crates.io-index" 3370 | checksum = "4f504e8c117b9015f618774f8d58cd4781f5a479bc41079c064f974cbb253874" 3371 | dependencies = [ 3372 | "android-activity", 3373 | "bitflags", 3374 | "cfg_aliases", 3375 | "core-foundation", 3376 | "core-graphics", 3377 | "dispatch", 3378 | "instant", 3379 | "libc", 3380 | "log", 3381 | "mio", 3382 | "ndk", 3383 | "objc2", 3384 | "once_cell", 3385 | "orbclient", 3386 | "percent-encoding", 3387 | "raw-window-handle", 3388 | "redox_syscall 0.3.5", 3389 | "sctk-adwaita", 3390 | "smithay-client-toolkit", 3391 | "wasm-bindgen", 3392 | "wayland-client", 3393 | "wayland-commons", 3394 | "wayland-protocols", 3395 | "wayland-scanner", 3396 | "web-sys", 3397 | "windows-sys 0.45.0", 3398 | "x11-dl", 3399 | ] 3400 | 3401 | [[package]] 3402 | name = "winnow" 3403 | version = "0.4.1" 3404 | source = "registry+https://github.com/rust-lang/crates.io-index" 3405 | checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" 3406 | dependencies = [ 3407 | "memchr", 3408 | ] 3409 | 3410 | [[package]] 3411 | name = "wio" 3412 | version = "0.2.2" 3413 | source = "registry+https://github.com/rust-lang/crates.io-index" 3414 | checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" 3415 | dependencies = [ 3416 | "winapi", 3417 | ] 3418 | 3419 | [[package]] 3420 | name = "x11-clipboard" 3421 | version = "0.7.1" 3422 | source = "registry+https://github.com/rust-lang/crates.io-index" 3423 | checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464" 3424 | dependencies = [ 3425 | "x11rb", 3426 | ] 3427 | 3428 | [[package]] 3429 | name = "x11-dl" 3430 | version = "2.21.0" 3431 | source = "registry+https://github.com/rust-lang/crates.io-index" 3432 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 3433 | dependencies = [ 3434 | "libc", 3435 | "once_cell", 3436 | "pkg-config", 3437 | ] 3438 | 3439 | [[package]] 3440 | name = "x11rb" 3441 | version = "0.10.1" 3442 | source = "registry+https://github.com/rust-lang/crates.io-index" 3443 | checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" 3444 | dependencies = [ 3445 | "gethostname", 3446 | "nix 0.24.3", 3447 | "winapi", 3448 | "winapi-wsapoll", 3449 | "x11rb-protocol", 3450 | ] 3451 | 3452 | [[package]] 3453 | name = "x11rb-protocol" 3454 | version = "0.10.0" 3455 | source = "registry+https://github.com/rust-lang/crates.io-index" 3456 | checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" 3457 | dependencies = [ 3458 | "nix 0.24.3", 3459 | ] 3460 | 3461 | [[package]] 3462 | name = "xattr" 3463 | version = "0.2.3" 3464 | source = "registry+https://github.com/rust-lang/crates.io-index" 3465 | checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" 3466 | dependencies = [ 3467 | "libc", 3468 | ] 3469 | 3470 | [[package]] 3471 | name = "xcursor" 3472 | version = "0.3.4" 3473 | source = "registry+https://github.com/rust-lang/crates.io-index" 3474 | checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" 3475 | dependencies = [ 3476 | "nom", 3477 | ] 3478 | 3479 | [[package]] 3480 | name = "xml-rs" 3481 | version = "0.8.4" 3482 | source = "registry+https://github.com/rust-lang/crates.io-index" 3483 | checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" 3484 | 3485 | [[package]] 3486 | name = "xmlparser" 3487 | version = "0.13.5" 3488 | source = "registry+https://github.com/rust-lang/crates.io-index" 3489 | checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" 3490 | 3491 | [[package]] 3492 | name = "xmlwriter" 3493 | version = "0.1.0" 3494 | source = "registry+https://github.com/rust-lang/crates.io-index" 3495 | checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" 3496 | 3497 | [[package]] 3498 | name = "yeslogic-fontconfig-sys" 3499 | version = "3.2.0" 3500 | source = "registry+https://github.com/rust-lang/crates.io-index" 3501 | checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386" 3502 | dependencies = [ 3503 | "const-cstr", 3504 | "dlib", 3505 | "once_cell", 3506 | "pkg-config", 3507 | ] 3508 | 3509 | [[package]] 3510 | name = "zune-inflate" 3511 | version = "0.2.53" 3512 | source = "registry+https://github.com/rust-lang/crates.io-index" 3513 | checksum = "440a08fd59c6442e4b846ea9b10386c38307eae728b216e1ab2c305d1c9daaf8" 3514 | dependencies = [ 3515 | "simd-adler32", 3516 | ] 3517 | --------------------------------------------------------------------------------