├── .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 | 
8 | *v1*
9 |
10 | 
11 | *v2 Light*
12 |
13 | 
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 | [](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 |
--------------------------------------------------------------------------------