├── traity_trait ├── .gitignore ├── Cargo.toml ├── src │ └── lib.rs └── Cargo.lock ├── src ├── routes │ ├── mod.rs │ ├── todo.rs │ └── user.rs ├── main.rs ├── middleware.rs └── db │ └── mod.rs ├── .gitignore ├── Cargo.toml ├── .vscode └── launch.json └── Cargo.lock /traity_trait/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/routes/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod todo; 2 | pub mod user; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | 3 | 4 | # Added by cargo 5 | # 6 | # already existing elements were commented out 7 | 8 | #/target 9 | 10 | 11 | # Added by cargo 12 | # 13 | # already existing elements were commented out 14 | 15 | #/target 16 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "assignment-1" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [dependencies] 7 | actix-web = "4.11.0" 8 | jsonwebtoken = "9.3.1" 9 | serde = {version = "1.0.219", features = ["derive"]} 10 | serde_json = {version = "1.0.140"} 11 | traity_trait = { path = "./traity_trait" } -------------------------------------------------------------------------------- /traity_trait/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "traity_trait" 3 | version = "0.1.0" 4 | edition = "2024" 5 | 6 | [lib] 7 | proc-macro = true 8 | 9 | [dependencies] 10 | quote = "1.0.40" 11 | syn = "2.0.104" 12 | proc-macro2 = "1.0" 13 | trybuild = "1.0" 14 | criterion = { version = "0.5", optional = true } 15 | 16 | [features] 17 | bench = ["criterion"] -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "lldb", 9 | "request": "launch", 10 | "name": "Debug", 11 | "program": "${workspaceFolder}/", 12 | "args": [], 13 | "cwd": "${workspaceFolder}" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /traity_trait/src/lib.rs: -------------------------------------------------------------------------------- 1 | use proc_macro::TokenStream; 2 | use quote::quote; 3 | use syn::{parse_macro_input, Data, DeriveInput, Fields, FieldsNamed}; 4 | 5 | fn todo_app_impl(input: DeriveInput) -> Result { 6 | 7 | } 8 | 9 | #[proc_macro_attribute] 10 | pub fn todo_app(_args: TokenStream, input: TokenStream) -> TokenStream { 11 | let input = parse_macro_input!(input as DeriveInput); 12 | match todo_app_impl(input) { 13 | Ok(tokens) => tokens.into(), 14 | Err(err) => err.to_compile_error().into(), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::sync::{Arc, Mutex}; 2 | 3 | use actix_web::{web, App, HttpServer}; 4 | 5 | use crate::routes::{todo::{create_todo, get_todos}, user::{sign_in, sign_up}}; 6 | pub mod routes; 7 | pub mod db; 8 | pub mod middleware; 9 | 10 | #[actix_web::main] 11 | async fn main() -> std::io::Result<()> { 12 | let db = Arc::new(Mutex::new(db::Db::default())); 13 | 14 | HttpServer::new(move || { 15 | App::new() 16 | .app_data(web::Data::new(db.clone())) 17 | .service(sign_up) 18 | .service(sign_in) 19 | .service(create_todo) 20 | .service(get_todos) 21 | }) 22 | .bind(("127.0.0.1", 8080))? 23 | .run() 24 | .await 25 | } 26 | -------------------------------------------------------------------------------- /src/middleware.rs: -------------------------------------------------------------------------------- 1 | use std::future::{ready, Ready}; 2 | 3 | use actix_web::{error::ErrorUnauthorized, Error, FromRequest, HttpRequest}; 4 | use jsonwebtoken::{decode, DecodingKey, Validation}; 5 | 6 | use crate::routes::user::Claims; 7 | 8 | pub struct UserId(pub String); 9 | 10 | impl FromRequest for UserId { 11 | type Error = Error; 12 | type Future = Ready>; 13 | 14 | fn from_request(req: &HttpRequest, _: &mut actix_web::dev::Payload) -> Self::Future { 15 | match req.headers().get("Authorization") { 16 | Some(token) => { 17 | let token = token.to_str().unwrap(); 18 | let user_id = validate_token(token).unwrap(); 19 | ready(Ok(UserId(user_id))) 20 | } 21 | None => ready(Err(Error::from(ErrorUnauthorized("Authorization header not found")))), 22 | } 23 | } 24 | } 25 | 26 | fn validate_token(token: &str) -> Result { 27 | let token = decode::(&token, &DecodingKey::from_secret("secret".as_ref()), &Validation::default())?; 28 | Ok(token.claims.sub.clone()) 29 | } -------------------------------------------------------------------------------- /src/routes/todo.rs: -------------------------------------------------------------------------------- 1 | use std::sync::{Arc, Mutex}; 2 | use traity_trait::todo_app; 3 | use actix_web::web::{Data, Json}; 4 | use actix_web::{HttpResponse, Responder, get, post}; 5 | use serde::{Serialize, Deserialize}; 6 | use crate::middleware::UserId; 7 | use crate::db::Db; 8 | 9 | #[todo_app] 10 | #[derive(Serialize, Deserialize)] 11 | struct CreateTodoResponse { 12 | message: String 13 | } 14 | 15 | #[todo_app] 16 | #[derive(Serialize, Deserialize)] 17 | struct CreateTodoRequest { 18 | pub text: String 19 | } 20 | 21 | #[todo_app] 22 | #[derive(Serialize, Deserialize)] 23 | struct GetTodosResponse { 24 | todos: Vec 25 | } 26 | 27 | #[post("/todo")] 28 | pub async fn create_todo(user_id: UserId, db: Data>>, body: Json) -> impl Responder { 29 | let mut db = db.lock().unwrap(); 30 | db.create_todo(user_id.0, body.text.clone()); 31 | HttpResponse::Ok().json(CreateTodoResponse { 32 | message: "Todo created".to_string() 33 | }) 34 | } 35 | 36 | #[get("/todos")] 37 | pub async fn get_todos(user_id: UserId, db: Data>>) -> impl Responder { 38 | let db = db.lock().unwrap(); 39 | let todos = db.get_todos(user_id.0); 40 | HttpResponse::Ok().json(GetTodosResponse { 41 | todos: todos 42 | }) 43 | } 44 | -------------------------------------------------------------------------------- /src/db/mod.rs: -------------------------------------------------------------------------------- 1 | use serde::{Serialize, Deserialize}; 2 | 3 | #[derive(Clone, Debug, Serialize, Deserialize)] 4 | pub struct User { 5 | pub id: String, 6 | pub role: UserRole, 7 | pub username: String, 8 | pub password: String, 9 | pub todos: Vec 10 | } 11 | 12 | #[derive(Clone, Debug, Serialize, Deserialize)] 13 | pub enum UserRole { 14 | Admin, 15 | User, 16 | } 17 | 18 | #[derive(Clone, Debug)] 19 | pub struct Db { 20 | pub index: u32, 21 | pub users: Vec, 22 | } 23 | 24 | impl Default for Db { 25 | fn default() -> Self { 26 | Db { 27 | index: 0, 28 | users: vec![], 29 | } 30 | } 31 | } 32 | 33 | impl Db { 34 | pub fn create_user(&mut self, username: String, password: String, role: UserRole) -> String { 35 | self.users.push(User { 36 | id: self.index.to_string(), 37 | username, 38 | password, 39 | todos: vec![], 40 | role: UserRole::User, 41 | }); 42 | self.index = self.index + 1; 43 | (self.index - 1).to_string() 44 | } 45 | 46 | pub fn get_user_by_username(&mut self, username: String) -> Option<&User> { 47 | println!("users: {:?}", self.users); 48 | println!("username: {:?}", username); 49 | self.users.iter().find(|u| { 50 | u.username == username 51 | }) 52 | } 53 | 54 | pub fn create_todo(&mut self, user_id: String, text: String) { 55 | println!("users: {:?}", self.users); 56 | let user = self.users.iter_mut().find(|u| { 57 | u.id == user_id 58 | }); 59 | 60 | println!("user: {:?}", user); 61 | println!("user_id: {:?}", user_id); 62 | println!("text: {:?}", text); 63 | 64 | match user { 65 | Some(u) => { 66 | u.todos.push(text.clone()) 67 | }, 68 | None => { 69 | panic!("User not found"); 70 | } 71 | }; 72 | } 73 | 74 | pub fn get_todos(&self, user_id: String) -> Vec { 75 | let user = self.users.iter().find(|u| { 76 | u.id == user_id 77 | }); 78 | 79 | match user { 80 | Some(u) => { 81 | u.todos.clone() 82 | }, 83 | None => { 84 | vec![] 85 | } 86 | } 87 | } 88 | } -------------------------------------------------------------------------------- /src/routes/user.rs: -------------------------------------------------------------------------------- 1 | use std::sync::{Arc, Mutex}; 2 | use traity_trait::todo_app; 3 | 4 | use actix_web::{web::{Data, Json}, HttpResponse, Responder}; 5 | use jsonwebtoken::{encode, EncodingKey, Header}; 6 | use serde::{Serialize, Deserialize}; 7 | use actix_web::{post}; 8 | 9 | use crate::db::{self, UserRole}; 10 | 11 | #[todo_app] 12 | #[derive(Serialize, Deserialize)] 13 | struct CreateUserResponse { 14 | id: String 15 | } 16 | 17 | #[todo_app] 18 | #[derive(Serialize, Deserialize)] 19 | struct SigninResponse { 20 | token: String 21 | } 22 | 23 | #[derive(Debug, Serialize, Deserialize)] 24 | pub struct Claims { 25 | pub sub: String, 26 | pub exp: usize, 27 | } 28 | 29 | #[derive(Serialize, Deserialize)] 30 | struct CreateUserRequest { 31 | username: String, 32 | password: String, 33 | role: UserRole 34 | } 35 | 36 | #[post("/signup")] 37 | pub async fn sign_up(request: Json, db: Data>>) -> impl Responder { 38 | let mut db = db.lock().unwrap(); 39 | let user = db.users.iter().find(|u| { 40 | u.username == request.username 41 | }); 42 | 43 | match user { 44 | Some(_) => { 45 | HttpResponse::BadRequest().body("User already exists") 46 | }, 47 | None => { 48 | let id = db.create_user(request.username.clone(), request.password.clone(), request.role.clone()); 49 | HttpResponse::Ok().json(CreateUserResponse{ 50 | id: id 51 | }) 52 | } 53 | } 54 | } 55 | 56 | #[post("/signin")] 57 | pub async fn sign_in(request: Json, db: Data>>) -> impl Responder { 58 | let mut db = db.lock().unwrap(); 59 | let user = db.get_user_by_username(request.username.clone()); 60 | match user { 61 | Some(user) => { 62 | if user.password == request.password { 63 | let claims = Claims { 64 | sub: user.id.clone(), 65 | exp: 10000000000000000 66 | }; 67 | 68 | let token = encode(&Header::default(), &claims, &EncodingKey::from_secret("secret".as_ref())).unwrap(); 69 | HttpResponse::Ok().json(SigninResponse { 70 | token 71 | }) 72 | } else { 73 | HttpResponse::BadRequest().body("Incorrect creds") 74 | } 75 | }, 76 | None => { 77 | HttpResponse::BadRequest().body("User doesnt exist") 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /traity_trait/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "aho-corasick" 7 | version = "1.1.3" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 10 | dependencies = [ 11 | "memchr", 12 | ] 13 | 14 | [[package]] 15 | name = "anes" 16 | version = "0.1.6" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" 19 | 20 | [[package]] 21 | name = "anstyle" 22 | version = "1.0.11" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" 25 | 26 | [[package]] 27 | name = "autocfg" 28 | version = "1.5.0" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 31 | 32 | [[package]] 33 | name = "bumpalo" 34 | version = "3.19.0" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 37 | 38 | [[package]] 39 | name = "cast" 40 | version = "0.3.0" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" 43 | 44 | [[package]] 45 | name = "cfg-if" 46 | version = "1.0.1" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 49 | 50 | [[package]] 51 | name = "ciborium" 52 | version = "0.2.2" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 55 | dependencies = [ 56 | "ciborium-io", 57 | "ciborium-ll", 58 | "serde", 59 | ] 60 | 61 | [[package]] 62 | name = "ciborium-io" 63 | version = "0.2.2" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 66 | 67 | [[package]] 68 | name = "ciborium-ll" 69 | version = "0.2.2" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 72 | dependencies = [ 73 | "ciborium-io", 74 | "half", 75 | ] 76 | 77 | [[package]] 78 | name = "clap" 79 | version = "4.5.41" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" 82 | dependencies = [ 83 | "clap_builder", 84 | ] 85 | 86 | [[package]] 87 | name = "clap_builder" 88 | version = "4.5.41" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" 91 | dependencies = [ 92 | "anstyle", 93 | "clap_lex", 94 | ] 95 | 96 | [[package]] 97 | name = "clap_lex" 98 | version = "0.7.5" 99 | source = "registry+https://github.com/rust-lang/crates.io-index" 100 | checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" 101 | 102 | [[package]] 103 | name = "criterion" 104 | version = "0.5.1" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" 107 | dependencies = [ 108 | "anes", 109 | "cast", 110 | "ciborium", 111 | "clap", 112 | "criterion-plot", 113 | "is-terminal", 114 | "itertools", 115 | "num-traits", 116 | "once_cell", 117 | "oorandom", 118 | "plotters", 119 | "rayon", 120 | "regex", 121 | "serde", 122 | "serde_derive", 123 | "serde_json", 124 | "tinytemplate", 125 | "walkdir", 126 | ] 127 | 128 | [[package]] 129 | name = "criterion-plot" 130 | version = "0.5.0" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" 133 | dependencies = [ 134 | "cast", 135 | "itertools", 136 | ] 137 | 138 | [[package]] 139 | name = "crossbeam-deque" 140 | version = "0.8.6" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 143 | dependencies = [ 144 | "crossbeam-epoch", 145 | "crossbeam-utils", 146 | ] 147 | 148 | [[package]] 149 | name = "crossbeam-epoch" 150 | version = "0.9.18" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 153 | dependencies = [ 154 | "crossbeam-utils", 155 | ] 156 | 157 | [[package]] 158 | name = "crossbeam-utils" 159 | version = "0.8.21" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 162 | 163 | [[package]] 164 | name = "crunchy" 165 | version = "0.2.4" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" 168 | 169 | [[package]] 170 | name = "either" 171 | version = "1.15.0" 172 | source = "registry+https://github.com/rust-lang/crates.io-index" 173 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 174 | 175 | [[package]] 176 | name = "equivalent" 177 | version = "1.0.2" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 180 | 181 | [[package]] 182 | name = "glob" 183 | version = "0.3.2" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 186 | 187 | [[package]] 188 | name = "half" 189 | version = "2.6.0" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" 192 | dependencies = [ 193 | "cfg-if", 194 | "crunchy", 195 | ] 196 | 197 | [[package]] 198 | name = "hashbrown" 199 | version = "0.15.4" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" 202 | 203 | [[package]] 204 | name = "hermit-abi" 205 | version = "0.5.2" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 208 | 209 | [[package]] 210 | name = "indexmap" 211 | version = "2.10.0" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 214 | dependencies = [ 215 | "equivalent", 216 | "hashbrown", 217 | ] 218 | 219 | [[package]] 220 | name = "is-terminal" 221 | version = "0.4.16" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" 224 | dependencies = [ 225 | "hermit-abi", 226 | "libc", 227 | "windows-sys", 228 | ] 229 | 230 | [[package]] 231 | name = "itertools" 232 | version = "0.10.5" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 235 | dependencies = [ 236 | "either", 237 | ] 238 | 239 | [[package]] 240 | name = "itoa" 241 | version = "1.0.15" 242 | source = "registry+https://github.com/rust-lang/crates.io-index" 243 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 244 | 245 | [[package]] 246 | name = "js-sys" 247 | version = "0.3.77" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 250 | dependencies = [ 251 | "once_cell", 252 | "wasm-bindgen", 253 | ] 254 | 255 | [[package]] 256 | name = "libc" 257 | version = "0.2.174" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" 260 | 261 | [[package]] 262 | name = "log" 263 | version = "0.4.27" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 266 | 267 | [[package]] 268 | name = "memchr" 269 | version = "2.7.5" 270 | source = "registry+https://github.com/rust-lang/crates.io-index" 271 | checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 272 | 273 | [[package]] 274 | name = "num-traits" 275 | version = "0.2.19" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 278 | dependencies = [ 279 | "autocfg", 280 | ] 281 | 282 | [[package]] 283 | name = "once_cell" 284 | version = "1.21.3" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 287 | 288 | [[package]] 289 | name = "oorandom" 290 | version = "11.1.5" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" 293 | 294 | [[package]] 295 | name = "plotters" 296 | version = "0.3.7" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" 299 | dependencies = [ 300 | "num-traits", 301 | "plotters-backend", 302 | "plotters-svg", 303 | "wasm-bindgen", 304 | "web-sys", 305 | ] 306 | 307 | [[package]] 308 | name = "plotters-backend" 309 | version = "0.3.7" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" 312 | 313 | [[package]] 314 | name = "plotters-svg" 315 | version = "0.3.7" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" 318 | dependencies = [ 319 | "plotters-backend", 320 | ] 321 | 322 | [[package]] 323 | name = "proc-macro2" 324 | version = "1.0.95" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 327 | dependencies = [ 328 | "unicode-ident", 329 | ] 330 | 331 | [[package]] 332 | name = "quote" 333 | version = "1.0.40" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 336 | dependencies = [ 337 | "proc-macro2", 338 | ] 339 | 340 | [[package]] 341 | name = "rayon" 342 | version = "1.10.0" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 345 | dependencies = [ 346 | "either", 347 | "rayon-core", 348 | ] 349 | 350 | [[package]] 351 | name = "rayon-core" 352 | version = "1.12.1" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 355 | dependencies = [ 356 | "crossbeam-deque", 357 | "crossbeam-utils", 358 | ] 359 | 360 | [[package]] 361 | name = "regex" 362 | version = "1.11.1" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 365 | dependencies = [ 366 | "aho-corasick", 367 | "memchr", 368 | "regex-automata", 369 | "regex-syntax", 370 | ] 371 | 372 | [[package]] 373 | name = "regex-automata" 374 | version = "0.4.9" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 377 | dependencies = [ 378 | "aho-corasick", 379 | "memchr", 380 | "regex-syntax", 381 | ] 382 | 383 | [[package]] 384 | name = "regex-syntax" 385 | version = "0.8.5" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 388 | 389 | [[package]] 390 | name = "rustversion" 391 | version = "1.0.21" 392 | source = "registry+https://github.com/rust-lang/crates.io-index" 393 | checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" 394 | 395 | [[package]] 396 | name = "ryu" 397 | version = "1.0.20" 398 | source = "registry+https://github.com/rust-lang/crates.io-index" 399 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 400 | 401 | [[package]] 402 | name = "same-file" 403 | version = "1.0.6" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 406 | dependencies = [ 407 | "winapi-util", 408 | ] 409 | 410 | [[package]] 411 | name = "serde" 412 | version = "1.0.219" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 415 | dependencies = [ 416 | "serde_derive", 417 | ] 418 | 419 | [[package]] 420 | name = "serde_derive" 421 | version = "1.0.219" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 424 | dependencies = [ 425 | "proc-macro2", 426 | "quote", 427 | "syn", 428 | ] 429 | 430 | [[package]] 431 | name = "serde_json" 432 | version = "1.0.141" 433 | source = "registry+https://github.com/rust-lang/crates.io-index" 434 | checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" 435 | dependencies = [ 436 | "itoa", 437 | "memchr", 438 | "ryu", 439 | "serde", 440 | ] 441 | 442 | [[package]] 443 | name = "serde_spanned" 444 | version = "1.0.0" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" 447 | dependencies = [ 448 | "serde", 449 | ] 450 | 451 | [[package]] 452 | name = "syn" 453 | version = "2.0.104" 454 | source = "registry+https://github.com/rust-lang/crates.io-index" 455 | checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" 456 | dependencies = [ 457 | "proc-macro2", 458 | "quote", 459 | "unicode-ident", 460 | ] 461 | 462 | [[package]] 463 | name = "target-triple" 464 | version = "0.1.4" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" 467 | 468 | [[package]] 469 | name = "termcolor" 470 | version = "1.4.1" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 473 | dependencies = [ 474 | "winapi-util", 475 | ] 476 | 477 | [[package]] 478 | name = "tinytemplate" 479 | version = "1.2.1" 480 | source = "registry+https://github.com/rust-lang/crates.io-index" 481 | checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" 482 | dependencies = [ 483 | "serde", 484 | "serde_json", 485 | ] 486 | 487 | [[package]] 488 | name = "toml" 489 | version = "0.9.2" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac" 492 | dependencies = [ 493 | "indexmap", 494 | "serde", 495 | "serde_spanned", 496 | "toml_datetime", 497 | "toml_parser", 498 | "toml_writer", 499 | "winnow", 500 | ] 501 | 502 | [[package]] 503 | name = "toml_datetime" 504 | version = "0.7.0" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" 507 | dependencies = [ 508 | "serde", 509 | ] 510 | 511 | [[package]] 512 | name = "toml_parser" 513 | version = "1.0.1" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" 516 | dependencies = [ 517 | "winnow", 518 | ] 519 | 520 | [[package]] 521 | name = "toml_writer" 522 | version = "1.0.2" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" 525 | 526 | [[package]] 527 | name = "traity_trait" 528 | version = "0.1.0" 529 | dependencies = [ 530 | "criterion", 531 | "proc-macro2", 532 | "quote", 533 | "syn", 534 | "trybuild", 535 | ] 536 | 537 | [[package]] 538 | name = "trybuild" 539 | version = "1.0.106" 540 | source = "registry+https://github.com/rust-lang/crates.io-index" 541 | checksum = "65af40ad689f2527aebbd37a0a816aea88ff5f774ceabe99de5be02f2f91dae2" 542 | dependencies = [ 543 | "glob", 544 | "serde", 545 | "serde_derive", 546 | "serde_json", 547 | "target-triple", 548 | "termcolor", 549 | "toml", 550 | ] 551 | 552 | [[package]] 553 | name = "unicode-ident" 554 | version = "1.0.18" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 557 | 558 | [[package]] 559 | name = "walkdir" 560 | version = "2.5.0" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 563 | dependencies = [ 564 | "same-file", 565 | "winapi-util", 566 | ] 567 | 568 | [[package]] 569 | name = "wasm-bindgen" 570 | version = "0.2.100" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 573 | dependencies = [ 574 | "cfg-if", 575 | "once_cell", 576 | "rustversion", 577 | "wasm-bindgen-macro", 578 | ] 579 | 580 | [[package]] 581 | name = "wasm-bindgen-backend" 582 | version = "0.2.100" 583 | source = "registry+https://github.com/rust-lang/crates.io-index" 584 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 585 | dependencies = [ 586 | "bumpalo", 587 | "log", 588 | "proc-macro2", 589 | "quote", 590 | "syn", 591 | "wasm-bindgen-shared", 592 | ] 593 | 594 | [[package]] 595 | name = "wasm-bindgen-macro" 596 | version = "0.2.100" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 599 | dependencies = [ 600 | "quote", 601 | "wasm-bindgen-macro-support", 602 | ] 603 | 604 | [[package]] 605 | name = "wasm-bindgen-macro-support" 606 | version = "0.2.100" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 609 | dependencies = [ 610 | "proc-macro2", 611 | "quote", 612 | "syn", 613 | "wasm-bindgen-backend", 614 | "wasm-bindgen-shared", 615 | ] 616 | 617 | [[package]] 618 | name = "wasm-bindgen-shared" 619 | version = "0.2.100" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 622 | dependencies = [ 623 | "unicode-ident", 624 | ] 625 | 626 | [[package]] 627 | name = "web-sys" 628 | version = "0.3.77" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 631 | dependencies = [ 632 | "js-sys", 633 | "wasm-bindgen", 634 | ] 635 | 636 | [[package]] 637 | name = "winapi-util" 638 | version = "0.1.9" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 641 | dependencies = [ 642 | "windows-sys", 643 | ] 644 | 645 | [[package]] 646 | name = "windows-sys" 647 | version = "0.59.0" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 650 | dependencies = [ 651 | "windows-targets", 652 | ] 653 | 654 | [[package]] 655 | name = "windows-targets" 656 | version = "0.52.6" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 659 | dependencies = [ 660 | "windows_aarch64_gnullvm", 661 | "windows_aarch64_msvc", 662 | "windows_i686_gnu", 663 | "windows_i686_gnullvm", 664 | "windows_i686_msvc", 665 | "windows_x86_64_gnu", 666 | "windows_x86_64_gnullvm", 667 | "windows_x86_64_msvc", 668 | ] 669 | 670 | [[package]] 671 | name = "windows_aarch64_gnullvm" 672 | version = "0.52.6" 673 | source = "registry+https://github.com/rust-lang/crates.io-index" 674 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 675 | 676 | [[package]] 677 | name = "windows_aarch64_msvc" 678 | version = "0.52.6" 679 | source = "registry+https://github.com/rust-lang/crates.io-index" 680 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 681 | 682 | [[package]] 683 | name = "windows_i686_gnu" 684 | version = "0.52.6" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 687 | 688 | [[package]] 689 | name = "windows_i686_gnullvm" 690 | version = "0.52.6" 691 | source = "registry+https://github.com/rust-lang/crates.io-index" 692 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 693 | 694 | [[package]] 695 | name = "windows_i686_msvc" 696 | version = "0.52.6" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 699 | 700 | [[package]] 701 | name = "windows_x86_64_gnu" 702 | version = "0.52.6" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 705 | 706 | [[package]] 707 | name = "windows_x86_64_gnullvm" 708 | version = "0.52.6" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 711 | 712 | [[package]] 713 | name = "windows_x86_64_msvc" 714 | version = "0.52.6" 715 | source = "registry+https://github.com/rust-lang/crates.io-index" 716 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 717 | 718 | [[package]] 719 | name = "winnow" 720 | version = "0.7.12" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 723 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "actix-codec" 7 | version = "0.5.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" 10 | dependencies = [ 11 | "bitflags", 12 | "bytes", 13 | "futures-core", 14 | "futures-sink", 15 | "memchr", 16 | "pin-project-lite", 17 | "tokio", 18 | "tokio-util", 19 | "tracing", 20 | ] 21 | 22 | [[package]] 23 | name = "actix-http" 24 | version = "3.11.0" 25 | source = "registry+https://github.com/rust-lang/crates.io-index" 26 | checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2" 27 | dependencies = [ 28 | "actix-codec", 29 | "actix-rt", 30 | "actix-service", 31 | "actix-utils", 32 | "base64", 33 | "bitflags", 34 | "brotli", 35 | "bytes", 36 | "bytestring", 37 | "derive_more", 38 | "encoding_rs", 39 | "flate2", 40 | "foldhash", 41 | "futures-core", 42 | "h2", 43 | "http", 44 | "httparse", 45 | "httpdate", 46 | "itoa", 47 | "language-tags", 48 | "local-channel", 49 | "mime", 50 | "percent-encoding", 51 | "pin-project-lite", 52 | "rand", 53 | "sha1", 54 | "smallvec", 55 | "tokio", 56 | "tokio-util", 57 | "tracing", 58 | "zstd", 59 | ] 60 | 61 | [[package]] 62 | name = "actix-macros" 63 | version = "0.2.4" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" 66 | dependencies = [ 67 | "quote", 68 | "syn", 69 | ] 70 | 71 | [[package]] 72 | name = "actix-router" 73 | version = "0.5.3" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" 76 | dependencies = [ 77 | "bytestring", 78 | "cfg-if", 79 | "http", 80 | "regex", 81 | "regex-lite", 82 | "serde", 83 | "tracing", 84 | ] 85 | 86 | [[package]] 87 | name = "actix-rt" 88 | version = "2.10.0" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" 91 | dependencies = [ 92 | "futures-core", 93 | "tokio", 94 | ] 95 | 96 | [[package]] 97 | name = "actix-server" 98 | version = "2.6.0" 99 | source = "registry+https://github.com/rust-lang/crates.io-index" 100 | checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502" 101 | dependencies = [ 102 | "actix-rt", 103 | "actix-service", 104 | "actix-utils", 105 | "futures-core", 106 | "futures-util", 107 | "mio", 108 | "socket2", 109 | "tokio", 110 | "tracing", 111 | ] 112 | 113 | [[package]] 114 | name = "actix-service" 115 | version = "2.0.3" 116 | source = "registry+https://github.com/rust-lang/crates.io-index" 117 | checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" 118 | dependencies = [ 119 | "futures-core", 120 | "pin-project-lite", 121 | ] 122 | 123 | [[package]] 124 | name = "actix-utils" 125 | version = "3.0.1" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" 128 | dependencies = [ 129 | "local-waker", 130 | "pin-project-lite", 131 | ] 132 | 133 | [[package]] 134 | name = "actix-web" 135 | version = "4.11.0" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea" 138 | dependencies = [ 139 | "actix-codec", 140 | "actix-http", 141 | "actix-macros", 142 | "actix-router", 143 | "actix-rt", 144 | "actix-server", 145 | "actix-service", 146 | "actix-utils", 147 | "actix-web-codegen", 148 | "bytes", 149 | "bytestring", 150 | "cfg-if", 151 | "cookie", 152 | "derive_more", 153 | "encoding_rs", 154 | "foldhash", 155 | "futures-core", 156 | "futures-util", 157 | "impl-more", 158 | "itoa", 159 | "language-tags", 160 | "log", 161 | "mime", 162 | "once_cell", 163 | "pin-project-lite", 164 | "regex", 165 | "regex-lite", 166 | "serde", 167 | "serde_json", 168 | "serde_urlencoded", 169 | "smallvec", 170 | "socket2", 171 | "time", 172 | "tracing", 173 | "url", 174 | ] 175 | 176 | [[package]] 177 | name = "actix-web-codegen" 178 | version = "4.3.0" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8" 181 | dependencies = [ 182 | "actix-router", 183 | "proc-macro2", 184 | "quote", 185 | "syn", 186 | ] 187 | 188 | [[package]] 189 | name = "addr2line" 190 | version = "0.24.2" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 193 | dependencies = [ 194 | "gimli", 195 | ] 196 | 197 | [[package]] 198 | name = "adler2" 199 | version = "2.0.1" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 202 | 203 | [[package]] 204 | name = "aho-corasick" 205 | version = "1.1.3" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 208 | dependencies = [ 209 | "memchr", 210 | ] 211 | 212 | [[package]] 213 | name = "alloc-no-stdlib" 214 | version = "2.0.4" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 217 | 218 | [[package]] 219 | name = "alloc-stdlib" 220 | version = "0.2.2" 221 | source = "registry+https://github.com/rust-lang/crates.io-index" 222 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 223 | dependencies = [ 224 | "alloc-no-stdlib", 225 | ] 226 | 227 | [[package]] 228 | name = "assignment-1" 229 | version = "0.1.0" 230 | dependencies = [ 231 | "actix-web", 232 | "jsonwebtoken", 233 | "serde", 234 | "serde_json", 235 | "traity_trait", 236 | ] 237 | 238 | [[package]] 239 | name = "autocfg" 240 | version = "1.5.0" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 243 | 244 | [[package]] 245 | name = "backtrace" 246 | version = "0.3.75" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 249 | dependencies = [ 250 | "addr2line", 251 | "cfg-if", 252 | "libc", 253 | "miniz_oxide", 254 | "object", 255 | "rustc-demangle", 256 | "windows-targets", 257 | ] 258 | 259 | [[package]] 260 | name = "base64" 261 | version = "0.22.1" 262 | source = "registry+https://github.com/rust-lang/crates.io-index" 263 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 264 | 265 | [[package]] 266 | name = "bitflags" 267 | version = "2.9.1" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 270 | 271 | [[package]] 272 | name = "block-buffer" 273 | version = "0.10.4" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 276 | dependencies = [ 277 | "generic-array", 278 | ] 279 | 280 | [[package]] 281 | name = "brotli" 282 | version = "8.0.1" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d" 285 | dependencies = [ 286 | "alloc-no-stdlib", 287 | "alloc-stdlib", 288 | "brotli-decompressor", 289 | ] 290 | 291 | [[package]] 292 | name = "brotli-decompressor" 293 | version = "5.0.0" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" 296 | dependencies = [ 297 | "alloc-no-stdlib", 298 | "alloc-stdlib", 299 | ] 300 | 301 | [[package]] 302 | name = "bumpalo" 303 | version = "3.19.0" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 306 | 307 | [[package]] 308 | name = "bytes" 309 | version = "1.10.1" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 312 | 313 | [[package]] 314 | name = "bytestring" 315 | version = "1.4.0" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" 318 | dependencies = [ 319 | "bytes", 320 | ] 321 | 322 | [[package]] 323 | name = "cc" 324 | version = "1.2.29" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" 327 | dependencies = [ 328 | "jobserver", 329 | "libc", 330 | "shlex", 331 | ] 332 | 333 | [[package]] 334 | name = "cfg-if" 335 | version = "1.0.1" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 338 | 339 | [[package]] 340 | name = "cookie" 341 | version = "0.16.2" 342 | source = "registry+https://github.com/rust-lang/crates.io-index" 343 | checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" 344 | dependencies = [ 345 | "percent-encoding", 346 | "time", 347 | "version_check", 348 | ] 349 | 350 | [[package]] 351 | name = "cpufeatures" 352 | version = "0.2.17" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 355 | dependencies = [ 356 | "libc", 357 | ] 358 | 359 | [[package]] 360 | name = "crc32fast" 361 | version = "1.5.0" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 364 | dependencies = [ 365 | "cfg-if", 366 | ] 367 | 368 | [[package]] 369 | name = "crypto-common" 370 | version = "0.1.6" 371 | source = "registry+https://github.com/rust-lang/crates.io-index" 372 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 373 | dependencies = [ 374 | "generic-array", 375 | "typenum", 376 | ] 377 | 378 | [[package]] 379 | name = "deranged" 380 | version = "0.4.0" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 383 | dependencies = [ 384 | "powerfmt", 385 | ] 386 | 387 | [[package]] 388 | name = "derive_more" 389 | version = "2.0.1" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 392 | dependencies = [ 393 | "derive_more-impl", 394 | ] 395 | 396 | [[package]] 397 | name = "derive_more-impl" 398 | version = "2.0.1" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 401 | dependencies = [ 402 | "proc-macro2", 403 | "quote", 404 | "syn", 405 | "unicode-xid", 406 | ] 407 | 408 | [[package]] 409 | name = "digest" 410 | version = "0.10.7" 411 | source = "registry+https://github.com/rust-lang/crates.io-index" 412 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 413 | dependencies = [ 414 | "block-buffer", 415 | "crypto-common", 416 | ] 417 | 418 | [[package]] 419 | name = "displaydoc" 420 | version = "0.2.5" 421 | source = "registry+https://github.com/rust-lang/crates.io-index" 422 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 423 | dependencies = [ 424 | "proc-macro2", 425 | "quote", 426 | "syn", 427 | ] 428 | 429 | [[package]] 430 | name = "encoding_rs" 431 | version = "0.8.35" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 434 | dependencies = [ 435 | "cfg-if", 436 | ] 437 | 438 | [[package]] 439 | name = "equivalent" 440 | version = "1.0.2" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 443 | 444 | [[package]] 445 | name = "flate2" 446 | version = "1.1.2" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" 449 | dependencies = [ 450 | "crc32fast", 451 | "miniz_oxide", 452 | ] 453 | 454 | [[package]] 455 | name = "fnv" 456 | version = "1.0.7" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 459 | 460 | [[package]] 461 | name = "foldhash" 462 | version = "0.1.5" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 465 | 466 | [[package]] 467 | name = "form_urlencoded" 468 | version = "1.2.1" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 471 | dependencies = [ 472 | "percent-encoding", 473 | ] 474 | 475 | [[package]] 476 | name = "futures-core" 477 | version = "0.3.31" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 480 | 481 | [[package]] 482 | name = "futures-sink" 483 | version = "0.3.31" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 486 | 487 | [[package]] 488 | name = "futures-task" 489 | version = "0.3.31" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 492 | 493 | [[package]] 494 | name = "futures-util" 495 | version = "0.3.31" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 498 | dependencies = [ 499 | "futures-core", 500 | "futures-task", 501 | "pin-project-lite", 502 | "pin-utils", 503 | ] 504 | 505 | [[package]] 506 | name = "generic-array" 507 | version = "0.14.7" 508 | source = "registry+https://github.com/rust-lang/crates.io-index" 509 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 510 | dependencies = [ 511 | "typenum", 512 | "version_check", 513 | ] 514 | 515 | [[package]] 516 | name = "getrandom" 517 | version = "0.2.16" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 520 | dependencies = [ 521 | "cfg-if", 522 | "js-sys", 523 | "libc", 524 | "wasi 0.11.1+wasi-snapshot-preview1", 525 | "wasm-bindgen", 526 | ] 527 | 528 | [[package]] 529 | name = "getrandom" 530 | version = "0.3.3" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 533 | dependencies = [ 534 | "cfg-if", 535 | "libc", 536 | "r-efi", 537 | "wasi 0.14.2+wasi-0.2.4", 538 | ] 539 | 540 | [[package]] 541 | name = "gimli" 542 | version = "0.31.1" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 545 | 546 | [[package]] 547 | name = "glob" 548 | version = "0.3.2" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 551 | 552 | [[package]] 553 | name = "h2" 554 | version = "0.3.27" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" 557 | dependencies = [ 558 | "bytes", 559 | "fnv", 560 | "futures-core", 561 | "futures-sink", 562 | "futures-util", 563 | "http", 564 | "indexmap", 565 | "slab", 566 | "tokio", 567 | "tokio-util", 568 | "tracing", 569 | ] 570 | 571 | [[package]] 572 | name = "hashbrown" 573 | version = "0.15.4" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" 576 | 577 | [[package]] 578 | name = "http" 579 | version = "0.2.12" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 582 | dependencies = [ 583 | "bytes", 584 | "fnv", 585 | "itoa", 586 | ] 587 | 588 | [[package]] 589 | name = "httparse" 590 | version = "1.10.1" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 593 | 594 | [[package]] 595 | name = "httpdate" 596 | version = "1.0.3" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 599 | 600 | [[package]] 601 | name = "icu_collections" 602 | version = "2.0.0" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 605 | dependencies = [ 606 | "displaydoc", 607 | "potential_utf", 608 | "yoke", 609 | "zerofrom", 610 | "zerovec", 611 | ] 612 | 613 | [[package]] 614 | name = "icu_locale_core" 615 | version = "2.0.0" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 618 | dependencies = [ 619 | "displaydoc", 620 | "litemap", 621 | "tinystr", 622 | "writeable", 623 | "zerovec", 624 | ] 625 | 626 | [[package]] 627 | name = "icu_normalizer" 628 | version = "2.0.0" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 631 | dependencies = [ 632 | "displaydoc", 633 | "icu_collections", 634 | "icu_normalizer_data", 635 | "icu_properties", 636 | "icu_provider", 637 | "smallvec", 638 | "zerovec", 639 | ] 640 | 641 | [[package]] 642 | name = "icu_normalizer_data" 643 | version = "2.0.0" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 646 | 647 | [[package]] 648 | name = "icu_properties" 649 | version = "2.0.1" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 652 | dependencies = [ 653 | "displaydoc", 654 | "icu_collections", 655 | "icu_locale_core", 656 | "icu_properties_data", 657 | "icu_provider", 658 | "potential_utf", 659 | "zerotrie", 660 | "zerovec", 661 | ] 662 | 663 | [[package]] 664 | name = "icu_properties_data" 665 | version = "2.0.1" 666 | source = "registry+https://github.com/rust-lang/crates.io-index" 667 | checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 668 | 669 | [[package]] 670 | name = "icu_provider" 671 | version = "2.0.0" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 674 | dependencies = [ 675 | "displaydoc", 676 | "icu_locale_core", 677 | "stable_deref_trait", 678 | "tinystr", 679 | "writeable", 680 | "yoke", 681 | "zerofrom", 682 | "zerotrie", 683 | "zerovec", 684 | ] 685 | 686 | [[package]] 687 | name = "idna" 688 | version = "1.0.3" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 691 | dependencies = [ 692 | "idna_adapter", 693 | "smallvec", 694 | "utf8_iter", 695 | ] 696 | 697 | [[package]] 698 | name = "idna_adapter" 699 | version = "1.2.1" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 702 | dependencies = [ 703 | "icu_normalizer", 704 | "icu_properties", 705 | ] 706 | 707 | [[package]] 708 | name = "impl-more" 709 | version = "0.1.9" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" 712 | 713 | [[package]] 714 | name = "indexmap" 715 | version = "2.10.0" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 718 | dependencies = [ 719 | "equivalent", 720 | "hashbrown", 721 | ] 722 | 723 | [[package]] 724 | name = "io-uring" 725 | version = "0.7.8" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" 728 | dependencies = [ 729 | "bitflags", 730 | "cfg-if", 731 | "libc", 732 | ] 733 | 734 | [[package]] 735 | name = "itoa" 736 | version = "1.0.15" 737 | source = "registry+https://github.com/rust-lang/crates.io-index" 738 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 739 | 740 | [[package]] 741 | name = "jobserver" 742 | version = "0.1.33" 743 | source = "registry+https://github.com/rust-lang/crates.io-index" 744 | checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" 745 | dependencies = [ 746 | "getrandom 0.3.3", 747 | "libc", 748 | ] 749 | 750 | [[package]] 751 | name = "js-sys" 752 | version = "0.3.77" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 755 | dependencies = [ 756 | "once_cell", 757 | "wasm-bindgen", 758 | ] 759 | 760 | [[package]] 761 | name = "jsonwebtoken" 762 | version = "9.3.1" 763 | source = "registry+https://github.com/rust-lang/crates.io-index" 764 | checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" 765 | dependencies = [ 766 | "base64", 767 | "js-sys", 768 | "pem", 769 | "ring", 770 | "serde", 771 | "serde_json", 772 | "simple_asn1", 773 | ] 774 | 775 | [[package]] 776 | name = "language-tags" 777 | version = "0.3.2" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" 780 | 781 | [[package]] 782 | name = "libc" 783 | version = "0.2.174" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" 786 | 787 | [[package]] 788 | name = "litemap" 789 | version = "0.8.0" 790 | source = "registry+https://github.com/rust-lang/crates.io-index" 791 | checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 792 | 793 | [[package]] 794 | name = "local-channel" 795 | version = "0.1.5" 796 | source = "registry+https://github.com/rust-lang/crates.io-index" 797 | checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8" 798 | dependencies = [ 799 | "futures-core", 800 | "futures-sink", 801 | "local-waker", 802 | ] 803 | 804 | [[package]] 805 | name = "local-waker" 806 | version = "0.1.4" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" 809 | 810 | [[package]] 811 | name = "lock_api" 812 | version = "0.4.13" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 815 | dependencies = [ 816 | "autocfg", 817 | "scopeguard", 818 | ] 819 | 820 | [[package]] 821 | name = "log" 822 | version = "0.4.27" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 825 | 826 | [[package]] 827 | name = "memchr" 828 | version = "2.7.5" 829 | source = "registry+https://github.com/rust-lang/crates.io-index" 830 | checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 831 | 832 | [[package]] 833 | name = "mime" 834 | version = "0.3.17" 835 | source = "registry+https://github.com/rust-lang/crates.io-index" 836 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 837 | 838 | [[package]] 839 | name = "miniz_oxide" 840 | version = "0.8.9" 841 | source = "registry+https://github.com/rust-lang/crates.io-index" 842 | checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 843 | dependencies = [ 844 | "adler2", 845 | ] 846 | 847 | [[package]] 848 | name = "mio" 849 | version = "1.0.4" 850 | source = "registry+https://github.com/rust-lang/crates.io-index" 851 | checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 852 | dependencies = [ 853 | "libc", 854 | "log", 855 | "wasi 0.11.1+wasi-snapshot-preview1", 856 | "windows-sys 0.59.0", 857 | ] 858 | 859 | [[package]] 860 | name = "num-bigint" 861 | version = "0.4.6" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 864 | dependencies = [ 865 | "num-integer", 866 | "num-traits", 867 | ] 868 | 869 | [[package]] 870 | name = "num-conv" 871 | version = "0.1.0" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 874 | 875 | [[package]] 876 | name = "num-integer" 877 | version = "0.1.46" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 880 | dependencies = [ 881 | "num-traits", 882 | ] 883 | 884 | [[package]] 885 | name = "num-traits" 886 | version = "0.2.19" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 889 | dependencies = [ 890 | "autocfg", 891 | ] 892 | 893 | [[package]] 894 | name = "object" 895 | version = "0.36.7" 896 | source = "registry+https://github.com/rust-lang/crates.io-index" 897 | checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 898 | dependencies = [ 899 | "memchr", 900 | ] 901 | 902 | [[package]] 903 | name = "once_cell" 904 | version = "1.21.3" 905 | source = "registry+https://github.com/rust-lang/crates.io-index" 906 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 907 | 908 | [[package]] 909 | name = "parking_lot" 910 | version = "0.12.4" 911 | source = "registry+https://github.com/rust-lang/crates.io-index" 912 | checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 913 | dependencies = [ 914 | "lock_api", 915 | "parking_lot_core", 916 | ] 917 | 918 | [[package]] 919 | name = "parking_lot_core" 920 | version = "0.9.11" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 923 | dependencies = [ 924 | "cfg-if", 925 | "libc", 926 | "redox_syscall", 927 | "smallvec", 928 | "windows-targets", 929 | ] 930 | 931 | [[package]] 932 | name = "pem" 933 | version = "3.0.5" 934 | source = "registry+https://github.com/rust-lang/crates.io-index" 935 | checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" 936 | dependencies = [ 937 | "base64", 938 | "serde", 939 | ] 940 | 941 | [[package]] 942 | name = "percent-encoding" 943 | version = "2.3.1" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 946 | 947 | [[package]] 948 | name = "pin-project-lite" 949 | version = "0.2.16" 950 | source = "registry+https://github.com/rust-lang/crates.io-index" 951 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 952 | 953 | [[package]] 954 | name = "pin-utils" 955 | version = "0.1.0" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 958 | 959 | [[package]] 960 | name = "pkg-config" 961 | version = "0.3.32" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 964 | 965 | [[package]] 966 | name = "potential_utf" 967 | version = "0.1.2" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 970 | dependencies = [ 971 | "zerovec", 972 | ] 973 | 974 | [[package]] 975 | name = "powerfmt" 976 | version = "0.2.0" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 979 | 980 | [[package]] 981 | name = "ppv-lite86" 982 | version = "0.2.21" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 985 | dependencies = [ 986 | "zerocopy", 987 | ] 988 | 989 | [[package]] 990 | name = "proc-macro2" 991 | version = "1.0.95" 992 | source = "registry+https://github.com/rust-lang/crates.io-index" 993 | checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 994 | dependencies = [ 995 | "unicode-ident", 996 | ] 997 | 998 | [[package]] 999 | name = "quote" 1000 | version = "1.0.40" 1001 | source = "registry+https://github.com/rust-lang/crates.io-index" 1002 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1003 | dependencies = [ 1004 | "proc-macro2", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "r-efi" 1009 | version = "5.3.0" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1012 | 1013 | [[package]] 1014 | name = "rand" 1015 | version = "0.9.1" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" 1018 | dependencies = [ 1019 | "rand_chacha", 1020 | "rand_core", 1021 | ] 1022 | 1023 | [[package]] 1024 | name = "rand_chacha" 1025 | version = "0.9.0" 1026 | source = "registry+https://github.com/rust-lang/crates.io-index" 1027 | checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1028 | dependencies = [ 1029 | "ppv-lite86", 1030 | "rand_core", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "rand_core" 1035 | version = "0.9.3" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 1038 | dependencies = [ 1039 | "getrandom 0.3.3", 1040 | ] 1041 | 1042 | [[package]] 1043 | name = "redox_syscall" 1044 | version = "0.5.13" 1045 | source = "registry+https://github.com/rust-lang/crates.io-index" 1046 | checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" 1047 | dependencies = [ 1048 | "bitflags", 1049 | ] 1050 | 1051 | [[package]] 1052 | name = "regex" 1053 | version = "1.11.1" 1054 | source = "registry+https://github.com/rust-lang/crates.io-index" 1055 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1056 | dependencies = [ 1057 | "aho-corasick", 1058 | "memchr", 1059 | "regex-automata", 1060 | "regex-syntax", 1061 | ] 1062 | 1063 | [[package]] 1064 | name = "regex-automata" 1065 | version = "0.4.9" 1066 | source = "registry+https://github.com/rust-lang/crates.io-index" 1067 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1068 | dependencies = [ 1069 | "aho-corasick", 1070 | "memchr", 1071 | "regex-syntax", 1072 | ] 1073 | 1074 | [[package]] 1075 | name = "regex-lite" 1076 | version = "0.1.6" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" 1079 | 1080 | [[package]] 1081 | name = "regex-syntax" 1082 | version = "0.8.5" 1083 | source = "registry+https://github.com/rust-lang/crates.io-index" 1084 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1085 | 1086 | [[package]] 1087 | name = "ring" 1088 | version = "0.17.14" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 1091 | dependencies = [ 1092 | "cc", 1093 | "cfg-if", 1094 | "getrandom 0.2.16", 1095 | "libc", 1096 | "untrusted", 1097 | "windows-sys 0.52.0", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "rustc-demangle" 1102 | version = "0.1.25" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" 1105 | 1106 | [[package]] 1107 | name = "ryu" 1108 | version = "1.0.20" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1111 | 1112 | [[package]] 1113 | name = "scopeguard" 1114 | version = "1.2.0" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1117 | 1118 | [[package]] 1119 | name = "serde" 1120 | version = "1.0.219" 1121 | source = "registry+https://github.com/rust-lang/crates.io-index" 1122 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1123 | dependencies = [ 1124 | "serde_derive", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "serde_derive" 1129 | version = "1.0.219" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1132 | dependencies = [ 1133 | "proc-macro2", 1134 | "quote", 1135 | "syn", 1136 | ] 1137 | 1138 | [[package]] 1139 | name = "serde_json" 1140 | version = "1.0.140" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 1143 | dependencies = [ 1144 | "itoa", 1145 | "memchr", 1146 | "ryu", 1147 | "serde", 1148 | ] 1149 | 1150 | [[package]] 1151 | name = "serde_spanned" 1152 | version = "1.0.0" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" 1155 | dependencies = [ 1156 | "serde", 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "serde_urlencoded" 1161 | version = "0.7.1" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1164 | dependencies = [ 1165 | "form_urlencoded", 1166 | "itoa", 1167 | "ryu", 1168 | "serde", 1169 | ] 1170 | 1171 | [[package]] 1172 | name = "sha1" 1173 | version = "0.10.6" 1174 | source = "registry+https://github.com/rust-lang/crates.io-index" 1175 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1176 | dependencies = [ 1177 | "cfg-if", 1178 | "cpufeatures", 1179 | "digest", 1180 | ] 1181 | 1182 | [[package]] 1183 | name = "shlex" 1184 | version = "1.3.0" 1185 | source = "registry+https://github.com/rust-lang/crates.io-index" 1186 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1187 | 1188 | [[package]] 1189 | name = "signal-hook-registry" 1190 | version = "1.4.5" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" 1193 | dependencies = [ 1194 | "libc", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "simple_asn1" 1199 | version = "0.6.3" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" 1202 | dependencies = [ 1203 | "num-bigint", 1204 | "num-traits", 1205 | "thiserror", 1206 | "time", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "slab" 1211 | version = "0.4.10" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" 1214 | 1215 | [[package]] 1216 | name = "smallvec" 1217 | version = "1.15.1" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1220 | 1221 | [[package]] 1222 | name = "socket2" 1223 | version = "0.5.10" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 1226 | dependencies = [ 1227 | "libc", 1228 | "windows-sys 0.52.0", 1229 | ] 1230 | 1231 | [[package]] 1232 | name = "stable_deref_trait" 1233 | version = "1.2.0" 1234 | source = "registry+https://github.com/rust-lang/crates.io-index" 1235 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1236 | 1237 | [[package]] 1238 | name = "syn" 1239 | version = "2.0.104" 1240 | source = "registry+https://github.com/rust-lang/crates.io-index" 1241 | checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" 1242 | dependencies = [ 1243 | "proc-macro2", 1244 | "quote", 1245 | "unicode-ident", 1246 | ] 1247 | 1248 | [[package]] 1249 | name = "synstructure" 1250 | version = "0.13.2" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1253 | dependencies = [ 1254 | "proc-macro2", 1255 | "quote", 1256 | "syn", 1257 | ] 1258 | 1259 | [[package]] 1260 | name = "target-triple" 1261 | version = "0.1.4" 1262 | source = "registry+https://github.com/rust-lang/crates.io-index" 1263 | checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" 1264 | 1265 | [[package]] 1266 | name = "termcolor" 1267 | version = "1.4.1" 1268 | source = "registry+https://github.com/rust-lang/crates.io-index" 1269 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 1270 | dependencies = [ 1271 | "winapi-util", 1272 | ] 1273 | 1274 | [[package]] 1275 | name = "thiserror" 1276 | version = "2.0.12" 1277 | source = "registry+https://github.com/rust-lang/crates.io-index" 1278 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 1279 | dependencies = [ 1280 | "thiserror-impl", 1281 | ] 1282 | 1283 | [[package]] 1284 | name = "thiserror-impl" 1285 | version = "2.0.12" 1286 | source = "registry+https://github.com/rust-lang/crates.io-index" 1287 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 1288 | dependencies = [ 1289 | "proc-macro2", 1290 | "quote", 1291 | "syn", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "time" 1296 | version = "0.3.41" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 1299 | dependencies = [ 1300 | "deranged", 1301 | "itoa", 1302 | "num-conv", 1303 | "powerfmt", 1304 | "serde", 1305 | "time-core", 1306 | "time-macros", 1307 | ] 1308 | 1309 | [[package]] 1310 | name = "time-core" 1311 | version = "0.1.4" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 1314 | 1315 | [[package]] 1316 | name = "time-macros" 1317 | version = "0.2.22" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" 1320 | dependencies = [ 1321 | "num-conv", 1322 | "time-core", 1323 | ] 1324 | 1325 | [[package]] 1326 | name = "tinystr" 1327 | version = "0.8.1" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 1330 | dependencies = [ 1331 | "displaydoc", 1332 | "zerovec", 1333 | ] 1334 | 1335 | [[package]] 1336 | name = "tokio" 1337 | version = "1.46.1" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" 1340 | dependencies = [ 1341 | "backtrace", 1342 | "bytes", 1343 | "io-uring", 1344 | "libc", 1345 | "mio", 1346 | "parking_lot", 1347 | "pin-project-lite", 1348 | "signal-hook-registry", 1349 | "slab", 1350 | "socket2", 1351 | "windows-sys 0.52.0", 1352 | ] 1353 | 1354 | [[package]] 1355 | name = "tokio-util" 1356 | version = "0.7.15" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" 1359 | dependencies = [ 1360 | "bytes", 1361 | "futures-core", 1362 | "futures-sink", 1363 | "pin-project-lite", 1364 | "tokio", 1365 | ] 1366 | 1367 | [[package]] 1368 | name = "toml" 1369 | version = "0.9.2" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac" 1372 | dependencies = [ 1373 | "indexmap", 1374 | "serde", 1375 | "serde_spanned", 1376 | "toml_datetime", 1377 | "toml_parser", 1378 | "toml_writer", 1379 | "winnow", 1380 | ] 1381 | 1382 | [[package]] 1383 | name = "toml_datetime" 1384 | version = "0.7.0" 1385 | source = "registry+https://github.com/rust-lang/crates.io-index" 1386 | checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" 1387 | dependencies = [ 1388 | "serde", 1389 | ] 1390 | 1391 | [[package]] 1392 | name = "toml_parser" 1393 | version = "1.0.1" 1394 | source = "registry+https://github.com/rust-lang/crates.io-index" 1395 | checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" 1396 | dependencies = [ 1397 | "winnow", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "toml_writer" 1402 | version = "1.0.2" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" 1405 | 1406 | [[package]] 1407 | name = "tracing" 1408 | version = "0.1.41" 1409 | source = "registry+https://github.com/rust-lang/crates.io-index" 1410 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 1411 | dependencies = [ 1412 | "log", 1413 | "pin-project-lite", 1414 | "tracing-attributes", 1415 | "tracing-core", 1416 | ] 1417 | 1418 | [[package]] 1419 | name = "tracing-attributes" 1420 | version = "0.1.30" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 1423 | dependencies = [ 1424 | "proc-macro2", 1425 | "quote", 1426 | "syn", 1427 | ] 1428 | 1429 | [[package]] 1430 | name = "tracing-core" 1431 | version = "0.1.34" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 1434 | dependencies = [ 1435 | "once_cell", 1436 | ] 1437 | 1438 | [[package]] 1439 | name = "traity_trait" 1440 | version = "0.1.0" 1441 | dependencies = [ 1442 | "proc-macro2", 1443 | "quote", 1444 | "syn", 1445 | "trybuild", 1446 | ] 1447 | 1448 | [[package]] 1449 | name = "trybuild" 1450 | version = "1.0.106" 1451 | source = "registry+https://github.com/rust-lang/crates.io-index" 1452 | checksum = "65af40ad689f2527aebbd37a0a816aea88ff5f774ceabe99de5be02f2f91dae2" 1453 | dependencies = [ 1454 | "glob", 1455 | "serde", 1456 | "serde_derive", 1457 | "serde_json", 1458 | "target-triple", 1459 | "termcolor", 1460 | "toml", 1461 | ] 1462 | 1463 | [[package]] 1464 | name = "typenum" 1465 | version = "1.18.0" 1466 | source = "registry+https://github.com/rust-lang/crates.io-index" 1467 | checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 1468 | 1469 | [[package]] 1470 | name = "unicode-ident" 1471 | version = "1.0.18" 1472 | source = "registry+https://github.com/rust-lang/crates.io-index" 1473 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 1474 | 1475 | [[package]] 1476 | name = "unicode-xid" 1477 | version = "0.2.6" 1478 | source = "registry+https://github.com/rust-lang/crates.io-index" 1479 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 1480 | 1481 | [[package]] 1482 | name = "untrusted" 1483 | version = "0.9.0" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1486 | 1487 | [[package]] 1488 | name = "url" 1489 | version = "2.5.4" 1490 | source = "registry+https://github.com/rust-lang/crates.io-index" 1491 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 1492 | dependencies = [ 1493 | "form_urlencoded", 1494 | "idna", 1495 | "percent-encoding", 1496 | ] 1497 | 1498 | [[package]] 1499 | name = "utf8_iter" 1500 | version = "1.0.4" 1501 | source = "registry+https://github.com/rust-lang/crates.io-index" 1502 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1503 | 1504 | [[package]] 1505 | name = "version_check" 1506 | version = "0.9.5" 1507 | source = "registry+https://github.com/rust-lang/crates.io-index" 1508 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1509 | 1510 | [[package]] 1511 | name = "wasi" 1512 | version = "0.11.1+wasi-snapshot-preview1" 1513 | source = "registry+https://github.com/rust-lang/crates.io-index" 1514 | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1515 | 1516 | [[package]] 1517 | name = "wasi" 1518 | version = "0.14.2+wasi-0.2.4" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 1521 | dependencies = [ 1522 | "wit-bindgen-rt", 1523 | ] 1524 | 1525 | [[package]] 1526 | name = "wasm-bindgen" 1527 | version = "0.2.100" 1528 | source = "registry+https://github.com/rust-lang/crates.io-index" 1529 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 1530 | dependencies = [ 1531 | "cfg-if", 1532 | "once_cell", 1533 | "wasm-bindgen-macro", 1534 | ] 1535 | 1536 | [[package]] 1537 | name = "wasm-bindgen-backend" 1538 | version = "0.2.100" 1539 | source = "registry+https://github.com/rust-lang/crates.io-index" 1540 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 1541 | dependencies = [ 1542 | "bumpalo", 1543 | "log", 1544 | "proc-macro2", 1545 | "quote", 1546 | "syn", 1547 | "wasm-bindgen-shared", 1548 | ] 1549 | 1550 | [[package]] 1551 | name = "wasm-bindgen-macro" 1552 | version = "0.2.100" 1553 | source = "registry+https://github.com/rust-lang/crates.io-index" 1554 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 1555 | dependencies = [ 1556 | "quote", 1557 | "wasm-bindgen-macro-support", 1558 | ] 1559 | 1560 | [[package]] 1561 | name = "wasm-bindgen-macro-support" 1562 | version = "0.2.100" 1563 | source = "registry+https://github.com/rust-lang/crates.io-index" 1564 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 1565 | dependencies = [ 1566 | "proc-macro2", 1567 | "quote", 1568 | "syn", 1569 | "wasm-bindgen-backend", 1570 | "wasm-bindgen-shared", 1571 | ] 1572 | 1573 | [[package]] 1574 | name = "wasm-bindgen-shared" 1575 | version = "0.2.100" 1576 | source = "registry+https://github.com/rust-lang/crates.io-index" 1577 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 1578 | dependencies = [ 1579 | "unicode-ident", 1580 | ] 1581 | 1582 | [[package]] 1583 | name = "winapi-util" 1584 | version = "0.1.9" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 1587 | dependencies = [ 1588 | "windows-sys 0.59.0", 1589 | ] 1590 | 1591 | [[package]] 1592 | name = "windows-sys" 1593 | version = "0.52.0" 1594 | source = "registry+https://github.com/rust-lang/crates.io-index" 1595 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1596 | dependencies = [ 1597 | "windows-targets", 1598 | ] 1599 | 1600 | [[package]] 1601 | name = "windows-sys" 1602 | version = "0.59.0" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1605 | dependencies = [ 1606 | "windows-targets", 1607 | ] 1608 | 1609 | [[package]] 1610 | name = "windows-targets" 1611 | version = "0.52.6" 1612 | source = "registry+https://github.com/rust-lang/crates.io-index" 1613 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1614 | dependencies = [ 1615 | "windows_aarch64_gnullvm", 1616 | "windows_aarch64_msvc", 1617 | "windows_i686_gnu", 1618 | "windows_i686_gnullvm", 1619 | "windows_i686_msvc", 1620 | "windows_x86_64_gnu", 1621 | "windows_x86_64_gnullvm", 1622 | "windows_x86_64_msvc", 1623 | ] 1624 | 1625 | [[package]] 1626 | name = "windows_aarch64_gnullvm" 1627 | version = "0.52.6" 1628 | source = "registry+https://github.com/rust-lang/crates.io-index" 1629 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1630 | 1631 | [[package]] 1632 | name = "windows_aarch64_msvc" 1633 | version = "0.52.6" 1634 | source = "registry+https://github.com/rust-lang/crates.io-index" 1635 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1636 | 1637 | [[package]] 1638 | name = "windows_i686_gnu" 1639 | version = "0.52.6" 1640 | source = "registry+https://github.com/rust-lang/crates.io-index" 1641 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1642 | 1643 | [[package]] 1644 | name = "windows_i686_gnullvm" 1645 | version = "0.52.6" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1648 | 1649 | [[package]] 1650 | name = "windows_i686_msvc" 1651 | version = "0.52.6" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1654 | 1655 | [[package]] 1656 | name = "windows_x86_64_gnu" 1657 | version = "0.52.6" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1660 | 1661 | [[package]] 1662 | name = "windows_x86_64_gnullvm" 1663 | version = "0.52.6" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1666 | 1667 | [[package]] 1668 | name = "windows_x86_64_msvc" 1669 | version = "0.52.6" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1672 | 1673 | [[package]] 1674 | name = "winnow" 1675 | version = "0.7.12" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 1678 | 1679 | [[package]] 1680 | name = "wit-bindgen-rt" 1681 | version = "0.39.0" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 1684 | dependencies = [ 1685 | "bitflags", 1686 | ] 1687 | 1688 | [[package]] 1689 | name = "writeable" 1690 | version = "0.6.1" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 1693 | 1694 | [[package]] 1695 | name = "yoke" 1696 | version = "0.8.0" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 1699 | dependencies = [ 1700 | "serde", 1701 | "stable_deref_trait", 1702 | "yoke-derive", 1703 | "zerofrom", 1704 | ] 1705 | 1706 | [[package]] 1707 | name = "yoke-derive" 1708 | version = "0.8.0" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 1711 | dependencies = [ 1712 | "proc-macro2", 1713 | "quote", 1714 | "syn", 1715 | "synstructure", 1716 | ] 1717 | 1718 | [[package]] 1719 | name = "zerocopy" 1720 | version = "0.8.26" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 1723 | dependencies = [ 1724 | "zerocopy-derive", 1725 | ] 1726 | 1727 | [[package]] 1728 | name = "zerocopy-derive" 1729 | version = "0.8.26" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 1732 | dependencies = [ 1733 | "proc-macro2", 1734 | "quote", 1735 | "syn", 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "zerofrom" 1740 | version = "0.1.6" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 1743 | dependencies = [ 1744 | "zerofrom-derive", 1745 | ] 1746 | 1747 | [[package]] 1748 | name = "zerofrom-derive" 1749 | version = "0.1.6" 1750 | source = "registry+https://github.com/rust-lang/crates.io-index" 1751 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 1752 | dependencies = [ 1753 | "proc-macro2", 1754 | "quote", 1755 | "syn", 1756 | "synstructure", 1757 | ] 1758 | 1759 | [[package]] 1760 | name = "zerotrie" 1761 | version = "0.2.2" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 1764 | dependencies = [ 1765 | "displaydoc", 1766 | "yoke", 1767 | "zerofrom", 1768 | ] 1769 | 1770 | [[package]] 1771 | name = "zerovec" 1772 | version = "0.11.2" 1773 | source = "registry+https://github.com/rust-lang/crates.io-index" 1774 | checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" 1775 | dependencies = [ 1776 | "yoke", 1777 | "zerofrom", 1778 | "zerovec-derive", 1779 | ] 1780 | 1781 | [[package]] 1782 | name = "zerovec-derive" 1783 | version = "0.11.1" 1784 | source = "registry+https://github.com/rust-lang/crates.io-index" 1785 | checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 1786 | dependencies = [ 1787 | "proc-macro2", 1788 | "quote", 1789 | "syn", 1790 | ] 1791 | 1792 | [[package]] 1793 | name = "zstd" 1794 | version = "0.13.3" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" 1797 | dependencies = [ 1798 | "zstd-safe", 1799 | ] 1800 | 1801 | [[package]] 1802 | name = "zstd-safe" 1803 | version = "7.2.4" 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" 1805 | checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" 1806 | dependencies = [ 1807 | "zstd-sys", 1808 | ] 1809 | 1810 | [[package]] 1811 | name = "zstd-sys" 1812 | version = "2.0.15+zstd.1.5.7" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" 1815 | dependencies = [ 1816 | "cc", 1817 | "pkg-config", 1818 | ] 1819 | --------------------------------------------------------------------------------