├── .gitignore ├── screenshot.png ├── styles ├── favicon.ico ├── themes.css └── styles.css ├── src ├── main.rs ├── base │ ├── banner.rs │ ├── prompt │ │ ├── themes.rs │ │ ├── general.rs │ │ └── keyboard.rs │ └── prompt.rs ├── base.rs ├── commands.rs └── commands │ ├── fetch │ ├── structs.rs │ └── formats.rs │ ├── texts.rs │ └── fetch.rs ├── README.md ├── Cargo.toml ├── configs ├── neofetch.txt ├── config.json └── lang_icons │ ├── python.txt │ ├── rust.txt │ ├── github.txt │ └── octocat.txt ├── index.html ├── .github └── workflows │ └── gh-pages-deploy.yml └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /dist 3 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shettysach/Termfolio/HEAD/screenshot.png -------------------------------------------------------------------------------- /styles/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shettysach/Termfolio/HEAD/styles/favicon.ico -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use leptos::view; 2 | 3 | mod base; 4 | mod commands; 5 | use base::Base; 6 | 7 | fn main() { 8 | leptos::mount_to_body(|| view! { }); 9 | } 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Termfolio 2 | --- 3 | - Portfolio website inspired by shells, terminals and CLI utilities. 4 | - Customizable and configurable through JSON 5 | - Work in Progress, needs refactoring and optimization. 6 | - Built using the Leptos framework for Rust WASM. 7 | 8 | ![sample](./screenshot.png) 9 | -------------------------------------------------------------------------------- /src/base/banner.rs: -------------------------------------------------------------------------------- 1 | use crate::commands::{banner, get_prompt}; 2 | use leptos::{component, view, IntoView}; 3 | 4 | #[component] 5 | pub fn Banner() -> impl IntoView { 6 | let banner = banner(); 7 | 8 | view! { 9 |

{get_prompt}

10 |

"help"

11 |
12 |             
13 |
14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "termfolio" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | leptos = { version = "0.5.7", features = ["csr", "nightly"] } 10 | leptos-use = "0.9.0" 11 | reqwest = { version = "0.12.9", features = ["json"] } 12 | serde = "1.0.215" 13 | serde_json = "1.0.133" 14 | tokio = { version = "1.41.1", features = ["macros", "sync"] } 15 | -------------------------------------------------------------------------------- /configs/neofetch.txt: -------------------------------------------------------------------------------- 1 | 2 | .x+=:. 3 | z` ^% .uef^" 4 | . >k :d88E 5 | .@8Ned8" u . `888E 6 | .@^%8888" us888u. .udR88N 888E .z8k 7 | x88: `)8b. .@88 "8888" >888'888k 888E~?888L 8 | 8888N=*8888 9888 9888 9888 'Y" 888E 888E 9 | %8" R88 9888 9888 9888 888E 888E 10 | @8Wou 9% 9888 9888 9888 888E 888E 11 | .888888P` 9888 9888 ?8888u../ 888E 888E 12 | ` ^"F "888*""888" "8888P' m888N= 888< 13 | ^Y" ^Y' "P' `Y" 888 14 | J88" 15 | @% 16 | :" 17 | -------------------------------------------------------------------------------- /styles/themes.css: -------------------------------------------------------------------------------- 1 | .catppuccin { 2 | --white: #f5e0dc; 3 | --black: #181825; 4 | --green: #cba6f7; 5 | --red: #e78284; 6 | --blue: #89b4fa; 7 | --yellow: #f9e2af; 8 | --orange: #fab387; 9 | --purple: #b4befe; 10 | --dgreen: #94e2d5; 11 | --dblue: #74c7ec; 12 | } 13 | 14 | .nord { 15 | --white: #d8dee9; 16 | --black: #2b303d; 17 | --green: #88c0d0; 18 | --blue: #5e81ac; 19 | --red: #bf616a; 20 | --yellow: #ebcb8b; 21 | --orange: #d08770; 22 | --purple: #b4befe; 23 | --dgreen: #a3be8c; 24 | --dblue: #81a1c1; 25 | } 26 | 27 | .default { 28 | --white: White; 29 | --black: Black; 30 | --green: LimeGreen; 31 | --red: Red; 32 | --blue: DodgerBlue; 33 | --yellow: Gold; 34 | --orange: OrangeRed; 35 | --purple: MediumSlateBlue; 36 | --dgreen: MediumSeaGreen; 37 | --dblue: DeepSkyBlue; 38 | } 39 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Termfolio 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/base.rs: -------------------------------------------------------------------------------- 1 | use leptos::{component, create_signal, view, For, IntoView, SignalGet}; 2 | use std::collections::VecDeque; 3 | 4 | mod banner; 5 | use banner::Banner; 6 | mod prompt; 7 | use prompt::Prompt; 8 | 9 | #[component] 10 | pub fn Base() -> impl IntoView { 11 | // Signals for number of prompts and history vector 12 | let (prompts, set_prompts) = create_signal(1); 13 | let (history, set_history) = create_signal(VecDeque::new()); 14 | 15 | let prompt_list = move || (0..prompts.get()).collect::>(); 16 | 17 | view! { 18 |
19 | 20 | } 25 | } 26 | /> 27 | 28 |
29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/base/prompt/themes.rs: -------------------------------------------------------------------------------- 1 | use leptos::Signal; 2 | use leptos_use::{ 3 | use_color_mode_with_options, use_cycle_list_with_options, ColorMode, UseColorModeOptions, 4 | UseColorModeReturn, UseCycleListOptions, UseCycleListReturn, 5 | }; 6 | 7 | // Last theme will be default 8 | static THEMES: [&str; 4] = ["catppuccin", "nord", "default", "tokyonight"]; 9 | 10 | pub fn theme_changer() -> (Signal, impl Fn() + Clone) { 11 | let UseColorModeReturn { mode, set_mode, .. } = use_color_mode_with_options( 12 | UseColorModeOptions::default() 13 | .custom_modes(THEMES.into_iter().map(String::from).collect()) 14 | .initial_value(ColorMode::from(THEMES.last().unwrap().to_string())), 15 | ); 16 | 17 | let UseCycleListReturn { state, next, .. } = use_cycle_list_with_options( 18 | THEMES 19 | .iter() 20 | .map(|s| ColorMode::Custom(s.to_string())) 21 | .collect::>(), 22 | UseCycleListOptions::default().initial_value(Some((mode, set_mode).into())), 23 | ); 24 | 25 | (state, next) 26 | } 27 | -------------------------------------------------------------------------------- /configs/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "github": "shettysach", 3 | 4 | "about": { 5 | "name": "Sachith C Shetty", 6 | "intro": "Hi, I'm Sachith, a Master's student in Computer Science at USC, with interests in systems programming, deep learning compilers and programming language compilers. I am also interested in learning about information theory, deep learning and functional programming. I currently use Rust, Python, C++ and C.", 7 | 8 | "langs": ["Rust", "Python", "C++", "C", "Haskell"], 9 | 10 | "experience": [ 11 | { 12 | "title": "Intern at Thingularity India", 13 | "description": [ "Created a demo mobile app using Flutter(Dart, Android SDK)", "Helped in testing APIs and preparing test reports using Postman API.", "Learnt about embedded systems and programming, interacting with Bluetooth Low Energy (BLE) devices and Raspberry Pi (Python), and using REST API to get and post data to servers."] 14 | } 15 | ], 16 | 17 | "education": [ 18 | { 19 | "institute": "USC, Los Angeles", 20 | "course": "MSCS", 21 | "duration": "2025 - 2027" 22 | }, 23 | { 24 | "institute": "VIT, Vellore", 25 | "course": "B.Tech CSE", 26 | "duration": "2021 - 2025" 27 | } 28 | ] 29 | }, 30 | 31 | "links": { 32 | "github": "shettysach", 33 | "email": "ShettySachith47@gmail.com", 34 | "linkedin": "in/sachith-shetty-3a165724b", 35 | "twitter": null 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/commands.rs: -------------------------------------------------------------------------------- 1 | mod fetch; 2 | mod texts; 3 | pub use fetch::get_prompt; 4 | 5 | pub async fn command(inp0: &str, inp1: &str) -> String { 6 | let result = match inp0 { 7 | "help" | "termfolio" => texts::HELP, 8 | "about" => &fetch::get_about(), 9 | "github" | "neofetch" | "fastfetch" => &fetch::get_github().await, 10 | "repos" | "onefetch" => &fetch::get_repos().await, 11 | "links" => fetch::get_contacts(), 12 | "credits" => texts::CREDITS, 13 | 14 | "cd" => "Nowhere to go.", 15 | "mkdir" | "touch" => "Nowhere to create.", 16 | "rm" | "rmdir" => "Nothing to destroy.", 17 | "cp" => "Nothing to duplicate.", 18 | "mv" => "Nowhere to move.", 19 | "ls" | "cat" => "Nothing to see.", 20 | "grep" | "which" | "find" => "Nowhere to search.", 21 | "pwd" => "You are here.", 22 | "nano" | "vi" | "vim" | "nvim" | "hx" => "Great editor.", 23 | "emacs" => "Great mail client", 24 | "su" | "sudo" | "chmod" => "With great power comes great responsibility.", 25 | "whoami" => "Despite everything, it's still you.", 26 | "exit" => "Hasta la vista.", 27 | "echo" => inp1.trim(), 28 | "" => "", 29 | _ => &format!("{inp0}: command not found"), 30 | }; 31 | 32 | result.to_string() 33 | } 34 | 35 | pub fn autocomplete(inp: &str) -> &str { 36 | let inp = inp.trim(); 37 | 38 | let comms = [ 39 | "help", 40 | "history", 41 | "about", 42 | "github", 43 | "repos", 44 | "links", 45 | "theme", 46 | "wal", 47 | "credits", 48 | "onefetch", 49 | "neofetch", 50 | "fastfetch", 51 | ]; 52 | 53 | if !inp.is_empty() { 54 | for &c in comms.iter() { 55 | if c.starts_with(inp) { 56 | return c; 57 | } 58 | } 59 | } 60 | 61 | inp 62 | } 63 | 64 | pub fn banner() -> String { 65 | String::from(texts::HELP) 66 | } 67 | -------------------------------------------------------------------------------- /src/base/prompt/general.rs: -------------------------------------------------------------------------------- 1 | use crate::commands::command; 2 | use leptos::{ReadSignal, Signal, SignalGetUntracked, SignalUpdate, WriteSignal}; 3 | use leptos_use::ColorMode; 4 | use std::collections::VecDeque; 5 | 6 | pub async fn general_commands( 7 | value: String, 8 | state: Signal, 9 | next: F, 10 | set_out: WriteSignal, 11 | submitter: WriteSignal, 12 | updater: WriteSignal>, 13 | history: ReadSignal>, 14 | ) where 15 | F: Fn(), 16 | { 17 | let value = value.trim().replace("<", "‹").replace(">", "›"); 18 | let val = value.split_once(' ').unwrap_or((&value, "")); 19 | 20 | match val.0 { 21 | "clear" => { 22 | submitter.update(|prompts| { 23 | *prompts = 0; 24 | }); 25 | } 26 | "history" => { 27 | let hist: Vec = history.get_untracked().into(); 28 | let hist: Vec = hist 29 | .iter() 30 | .rev() 31 | .enumerate() 32 | .map(|(i, c)| format!("{} {}", i + 1, c)) 33 | .collect(); 34 | set_out(hist.join("\n")); 35 | } 36 | "theme" | "t" | "wal" => { 37 | next(); 38 | let new_theme = state.get_untracked(); 39 | set_out(format!( 40 | r#"Theme changed to: {new_theme}"# 41 | )); 42 | } 43 | _ => set_out(command(val.0, val.1).await), 44 | } 45 | 46 | updater.update(|hist| { 47 | if !value.is_empty() && hist.front() != Some(&value) { 48 | hist.push_front(value); 49 | if hist.len() > 20 { 50 | hist.pop_back(); 51 | } 52 | } 53 | }); 54 | 55 | // Clears if max limit is reached 56 | submitter.update(|prompts| { 57 | if *prompts == u8::MAX { 58 | *prompts = 0; 59 | } 60 | }); 61 | 62 | submitter.update(|prompts| { 63 | *prompts += 1; 64 | }); 65 | } 66 | -------------------------------------------------------------------------------- /src/commands/fetch/structs.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | #[derive(Deserialize, Serialize, Clone)] 4 | pub struct Config { 5 | pub github: String, 6 | pub about: About, 7 | pub links: Links, 8 | } 9 | 10 | #[derive(Deserialize, Serialize, Clone)] 11 | pub struct About { 12 | pub name: String, 13 | pub intro: String, 14 | pub langs: Vec, 15 | pub experience: Vec, 16 | pub education: Vec, 17 | } 18 | 19 | #[derive(Deserialize, Serialize, Clone)] 20 | pub struct Experience { 21 | pub title: String, 22 | pub description: Vec, 23 | } 24 | 25 | #[derive(Deserialize, Serialize, Clone)] 26 | pub struct Education { 27 | pub institute: String, 28 | pub course: String, 29 | pub duration: String, 30 | } 31 | 32 | #[derive(Deserialize, Serialize, Clone)] 33 | pub struct Links { 34 | pub github: String, 35 | pub email: Option, 36 | pub linkedin: Option, 37 | pub twitter: Option, 38 | } 39 | 40 | #[derive(Deserialize, Serialize, Clone)] 41 | pub struct Profile { 42 | pub username: String, 43 | pub langs: Vec, 44 | pub info: UserInfo, 45 | pub stats: UserStats, 46 | } 47 | 48 | #[derive(Deserialize, Serialize, Clone)] 49 | pub struct UserInfo { 50 | pub name: Option, 51 | pub bio: Option, 52 | pub public_repos: u16, 53 | pub company: Option, 54 | pub location: Option, 55 | pub followers: u16, 56 | pub following: u16, 57 | pub created_at: String, 58 | } 59 | 60 | #[derive(Deserialize, Serialize, Clone)] 61 | pub struct UserStats { 62 | pub stars: u16, 63 | pub forks: u16, 64 | } 65 | 66 | #[derive(Deserialize, Serialize)] 67 | pub struct ApiResponse { 68 | pub response: Vec, 69 | } 70 | 71 | #[derive(Deserialize, Serialize)] 72 | pub struct Repos { 73 | pub repos: Vec, 74 | } 75 | 76 | #[derive(Deserialize, Serialize, Clone)] 77 | pub struct Repository { 78 | pub author: String, 79 | pub name: String, 80 | pub description: String, 81 | pub stars: u16, 82 | pub forks: u16, 83 | pub language: String, 84 | } 85 | -------------------------------------------------------------------------------- /styles/styles.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --white: #c0caf5; 3 | --black: #1a1b26; 4 | --green: #2ac3de; 5 | --red: #bb9af7; 6 | --blue: #7aa2f7; 7 | --yellow: #ffc777; 8 | --orange: #ff757f; 9 | --purple: #bb9af7; 10 | --dgreen: #c3e88d; 11 | --dblue: #7dcfff; 12 | } 13 | 14 | * { 15 | font-family: "JetBrains Mono"; 16 | font-size: 17px; 17 | background: var(--black); 18 | color: var(--white); 19 | text-underline-offset: 8px; 20 | text-decoration-thickness: 2px; 21 | /*text-shadow: 0px 3px 8px currentColor;*/ 22 | } 23 | 24 | input { 25 | font-size: 100%; 26 | outline: none; 27 | border: none; 28 | width: 460px; 29 | } 30 | 31 | form { 32 | display: inline-block; 33 | margin-bottom: 0px; 34 | caret-shape: block; 35 | caret-color: var(--green); 36 | font-weight: 500; 37 | } 38 | 39 | .semibold { 40 | font-weight: 500; 41 | } 42 | 43 | .rd { 44 | color: var(--red); 45 | } 46 | 47 | .grn { 48 | color: var(--green); 49 | } 50 | 51 | .ylw { 52 | color: var(--yellow); 53 | } 54 | 55 | .blu { 56 | color: var(--blue); 57 | } 58 | 59 | .inline { 60 | display: inline; 61 | font-weight: 500; 62 | color: var(--green); 63 | } 64 | 65 | .output { 66 | white-space: pre-wrap; 67 | word-wrap: break-word; 68 | margin-bottom: 22px; 69 | } 70 | 71 | .about, 72 | .ascii, 73 | .text { 74 | flex-direction: row; 75 | box-sizing: border-box; 76 | float: left; 77 | } 78 | 79 | /* About */ 80 | 81 | .about { 82 | flex: 0 0 calc(60%); 83 | outline: 3.5px solid var(--green); 84 | outline-offset: 25px; 85 | } 86 | 87 | /* Github fetch */ 88 | 89 | .ascii { 90 | flex: 0 0 calc(50% - 15px); 91 | margin: 20px; 92 | } 93 | 94 | /* Repos fetch */ 95 | 96 | .text { 97 | flex: 0 0 calc(50% - 35px); 98 | margin: 30px; 99 | max-width: 30%; 100 | } 101 | 102 | .row:after { 103 | content: ""; 104 | display: table; 105 | clear: both; 106 | align-items: baseline; 107 | } 108 | 109 | /* Color blocks */ 110 | 111 | .blocks { 112 | font-size: 35px; 113 | } 114 | 115 | #orientation-warning { 116 | display: none; 117 | position: fixed; 118 | width: 100%; 119 | height: 100%; 120 | background-color: rgba(0, 0, 0, 0.75); 121 | color: white; 122 | top: 0; 123 | left: 0; 124 | font-size: 1.2rem; 125 | text-align: center; 126 | padding-top: 30vh; 127 | } 128 | -------------------------------------------------------------------------------- /src/base/prompt/keyboard.rs: -------------------------------------------------------------------------------- 1 | use crate::commands::autocomplete; 2 | use leptos::{ 3 | ev::{keydown, KeyboardEvent}, 4 | html::Input, 5 | NodeRef, ReadSignal, SignalGet, SignalUpdate, WriteSignal, 6 | }; 7 | use leptos_use::use_event_listener; 8 | use std::{cmp::Ordering, collections::VecDeque}; 9 | 10 | pub fn keyboard_commands( 11 | input_element: NodeRef, 12 | history: ReadSignal>, 13 | history_index: ReadSignal, 14 | set_history_index: WriteSignal, 15 | submitter: WriteSignal, 16 | ) { 17 | let _ = use_event_listener(input_element, keydown, move |ev: KeyboardEvent| { 18 | let hist = history.get(); 19 | let index = history_index.get().into(); 20 | let inp = input_element.get().unwrap(); 21 | 22 | match &ev.key()[..] { 23 | //Previous command in history 24 | "ArrowUp" => { 25 | ev.prevent_default(); 26 | if index < hist.len() { 27 | inp.set_value(&hist[index]); 28 | set_history_index.update(move |history_index| *history_index += 1); 29 | } 30 | } 31 | 32 | //Next command in history 33 | "ArrowDown" => match index.cmp(&1) { 34 | Ordering::Greater => { 35 | inp.set_value(&hist[index - 2]); 36 | set_history_index.update(move |history_index| *history_index -= 1); 37 | } 38 | Ordering::Equal => { 39 | inp.set_value(""); 40 | set_history_index.update(move |history_index| *history_index -= 1); 41 | } 42 | Ordering::Less => (), 43 | }, 44 | 45 | //Autocomplete 46 | "Tab" => { 47 | ev.prevent_default(); 48 | inp.set_value(autocomplete(&inp.value())); 49 | } 50 | _ => {} 51 | } 52 | 53 | //Ctrl 54 | if ev.ctrl_key() || ev.meta_key() { 55 | // Clear 56 | match &ev.key()[..] { 57 | "l" | "L" => { 58 | ev.prevent_default(); 59 | submitter.update(|prompts| { 60 | *prompts = 0; 61 | }); 62 | submitter.update(|prompts| { 63 | *prompts += 1; 64 | }); 65 | } 66 | // Can add Ctrl + P / N for history, 67 | // but will interfere with new window shortcut 68 | _ => {} 69 | } 70 | } 71 | }); 72 | } 73 | -------------------------------------------------------------------------------- /src/commands/texts.rs: -------------------------------------------------------------------------------- 1 | pub const HELP: &str = r#" _____________ __ ___________ __ ________ 2 | /_ __/ __/ _ \/ |/ / __/ __ \/ / / _/ __ \ 3 | / / / _// , _/ /|_/ / _// /_/ / /___/ // /_/ / 4 | /_/ /___/_/|_/_/ /_/_/ \____/____/___/\____/ 5 | 6 | Hello, welcome to Termfolio [WIP]. Type one of these commands - 7 | 8 | about - View about me 9 | neofetch / fastfetch / github - View about Github profile 10 | onefetch / repos - View about my pinned repos/projects 11 | links - View contact info and links 12 | help - View this help section 13 | theme / wal - Cycle through themes 14 | credits - View credits and repo 15 | history - View command history 16 | clear - Clear screen 17 | 18 | You can use arrow keys to scroll through history, 19 | and also use Ctrl+L to clear the screen 20 | If you prefer a static site, visit shettysach.github.io 21 | "#; 22 | 23 | pub const CREDITS: &str = r#" _____________ __ ___________ __ ________ 24 | /_ __/ __/ _ \/ |/ / __/ __ \/ / / _/ __ \ 25 | / / / _// , _/ /|_/ / _// /_/ / /___/ // /_/ / 26 | /_/ /___/_/|_/_/ /_/_/ \____/____/___/\____/ 27 | 28 | Terminal style portfolio website. 29 | 30 | Github: github.com/shettysach 31 | 32 | Repo: github.com/shettysach/termfolio 33 | 34 | APIs used - 35 | 36 | * Github REST API 40 | 41 | * Pinned repos - berrysauce/pinned 45 | 46 | * Total stars and forks - idealclover/GitHub-Star-Counter 50 | 51 | "#; 52 | 53 | pub const READ_JSON_ERROR: &str = r#"Error reading config.json"#; 54 | pub const FETCH_GITHUB_ERROR: &str = 55 | r#"Error fetching data from Github."#; 56 | -------------------------------------------------------------------------------- /src/base/prompt.rs: -------------------------------------------------------------------------------- 1 | mod general; 2 | mod keyboard; 3 | mod themes; 4 | 5 | use crate::commands::get_prompt; 6 | use general::general_commands; 7 | use keyboard::keyboard_commands; 8 | use leptos::{ 9 | component, create_effect, create_node_ref, create_signal, 10 | ev::SubmitEvent, 11 | html::{Form, Input}, 12 | spawn_local, view, IntoView, NodeRef, ReadSignal, WriteSignal, 13 | }; 14 | use std::collections::VecDeque; 15 | use themes::theme_changer; 16 | 17 | #[component] 18 | pub fn Prompt( 19 | submitter: WriteSignal, 20 | updater: WriteSignal>, 21 | history: ReadSignal>, 22 | ) -> impl IntoView { 23 | //Output and history index signals 24 | let (out, set_out) = create_signal(String::new()); 25 | let (history_index, set_history_index): (ReadSignal, WriteSignal) = create_signal(0); 26 | 27 | //Form and input elements 28 | let form_element: NodeRef
= create_node_ref(); 29 | let input_element: NodeRef = create_node_ref(); 30 | 31 | // Focus on the new prompt on mount 32 | create_effect(move |_| { 33 | if let Some(ref_input) = input_element.get() { 34 | let _ = ref_input.on_mount(|input| { 35 | let _ = input.focus(); 36 | }); 37 | } 38 | }); 39 | 40 | //Theme changer 41 | let (state, next) = theme_changer(); 42 | 43 | //On submit 44 | let on_submit = move |ev: SubmitEvent| { 45 | ev.prevent_default(); 46 | let input_value = input_element().unwrap().value(); 47 | let next = next.clone(); 48 | 49 | spawn_local(async move { 50 | general_commands( 51 | input_value, 52 | state, 53 | next, 54 | set_out, 55 | submitter, 56 | updater, 57 | history, 58 | ) 59 | .await 60 | }); 61 | 62 | form_element().unwrap().set_inert(true); 63 | input_element().unwrap().set_inert(true); 64 | }; 65 | 66 | // Event listener for Up and Down arrow keys, Tab and Ctrl/Command + L 67 | keyboard_commands( 68 | input_element, 69 | history, 70 | history_index, 71 | set_history_index, 72 | submitter, 73 | ); 74 | 75 | view! { 76 | 77 |

{get_prompt()}

78 | 88 |
89 |
90 |             
91 |
92 | } 93 | } 94 | -------------------------------------------------------------------------------- /.github/workflows/gh-pages-deploy.yml: -------------------------------------------------------------------------------- 1 | name: Release to GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: [master] 6 | workflow_dispatch: 7 | 8 | permissions: 9 | contents: write 10 | pages: write 11 | id-token: write 12 | 13 | concurrency: 14 | group: "pages" 15 | cancel-in-progress: false 16 | 17 | jobs: 18 | github-pages-release: 19 | timeout-minutes: 10 20 | 21 | environment: 22 | name: github-pages 23 | url: ${{ steps.deployment.outputs.page_url }} 24 | 25 | runs-on: ubuntu-latest 26 | 27 | steps: 28 | - uses: actions/checkout@v4 29 | 30 | - name: Install pinned nightly 31 | uses: dtolnay/rust-toolchain@nightly 32 | with: 33 | toolchain: nightly-2024-08-15 34 | components: clippy, rustfmt 35 | 36 | - name: Add WASM target 37 | run: rustup target add wasm32-unknown-unknown 38 | 39 | - name: Lint (fmt + clippy) 40 | run: | 41 | cargo fmt --all -- --check 42 | cargo clippy --all-targets --all-features -- -D warnings 43 | 44 | # - name: Build Tailwind CSS 45 | # run: | 46 | # npm ci 47 | # npx tailwindcss -i -o --minify 48 | 49 | - name: Install Trunk 50 | run: | 51 | wget -qO- https://github.com/trunk-rs/trunk/releases/download/v0.18.4/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf- 52 | sudo mv trunk /usr/local/bin/trunk 53 | 54 | - name: Build with Trunk 55 | run: trunk build --release --public-url "/${GITHUB_REPOSITORY#*/}" 56 | 57 | # Make a Pages-safe mirror: dereference symlinks/hardlinks and normalize perms 58 | - name: Make Pages-safe copy (no links, normalized perms) 59 | run: | 60 | set -euo pipefail 61 | rm -rf dist_pages 62 | # -L follows symlinks (copies the target content) 63 | # No -H => hard links are not preserved (files are duplicated) 64 | rsync -aL --no-owner --no-group --chmod=D755,F644 dist/ dist_pages/ 65 | # Ensure everything is world-readable and dirs traversable 66 | chmod -R a+rX dist_pages 67 | 68 | # Optional diagnostics 69 | - name: Inspect dist_pages 70 | run: | 71 | echo "Size:" 72 | du -sh dist_pages || true 73 | echo "Symlinks (should be none):" 74 | find dist_pages -type l -printf "symlink: %p -> %l\n" || true 75 | echo "Hardlinks (should be none):" 76 | find dist_pages -type f -links +1 -printf "hardlink: %p (nlink=%n)\n" || true 77 | echo "Files not world-readable (should be none):" 78 | find dist_pages -type f ! -perm -a+r -printf "%m %p\n" || true 79 | 80 | - name: Setup Pages 81 | uses: actions/configure-pages@v4 82 | with: 83 | enablement: true 84 | 85 | # Prefer the Pages uploader; it packages content the way deploy-pages expects 86 | - name: Upload artifact (Pages) 87 | uses: actions/upload-pages-artifact@v3 88 | with: 89 | path: dist_pages 90 | 91 | - name: Deploy to GitHub Pages 🚀 92 | id: deployment 93 | uses: actions/deploy-pages@v4 94 | -------------------------------------------------------------------------------- /src/commands/fetch.rs: -------------------------------------------------------------------------------- 1 | use super::texts::{FETCH_GITHUB_ERROR, READ_JSON_ERROR}; 2 | use formats::*; 3 | use std::sync::OnceLock; 4 | use structs::*; 5 | use tokio::sync::OnceCell; 6 | use tokio::try_join; 7 | 8 | mod formats; 9 | mod structs; 10 | 11 | const JSON: &str = include_str!("../../configs/config.json"); 12 | 13 | // Once statics 14 | 15 | static CONFIG: OnceLock> = OnceLock::new(); 16 | static PROMPT: OnceLock = OnceLock::new(); 17 | static GITHUB: OnceCell = OnceCell::const_new(); 18 | static REPOS: OnceCell = OnceCell::const_new(); 19 | static CONTACTS: OnceLock = OnceLock::new(); 20 | 21 | // Once Functions 22 | 23 | fn read_config() -> Option { 24 | CONFIG 25 | .get_or_init(|| match serde_json::from_str::(JSON) { 26 | Ok(config) => Some(config), 27 | Err(_) => None, 28 | }) 29 | .clone() 30 | } 31 | 32 | pub fn get_prompt() -> String { 33 | PROMPT 34 | .get_or_init(|| match read_config() { 35 | Some(config) => format!("{}@termfolio~$ ", config.github), 36 | _ => String::from("user@termfolio~$ "), 37 | }) 38 | .clone() 39 | } 40 | 41 | pub fn get_about() -> String { 42 | match read_config() { 43 | Some(config) => format_about(config.about), 44 | _ => String::from(READ_JSON_ERROR), 45 | } 46 | } 47 | 48 | pub async fn get_github() -> String { 49 | GITHUB.get_or_init(fetch_github).await; 50 | 51 | match GITHUB.get() { 52 | Some(user) => user.to_string(), 53 | _ => String::from(FETCH_GITHUB_ERROR), 54 | } 55 | } 56 | 57 | pub async fn get_repos() -> String { 58 | REPOS.get_or_init(fetch_repos).await; 59 | 60 | match REPOS.get() { 61 | Some(repos) => repos.to_string(), 62 | _ => String::from(FETCH_GITHUB_ERROR), 63 | } 64 | } 65 | 66 | pub fn get_contacts() -> &'static String { 67 | CONTACTS.get_or_init(|| match read_config() { 68 | Some(config) => format_links(config.links), 69 | _ => String::from(READ_JSON_ERROR), 70 | }) 71 | } 72 | 73 | // Fetch functions 74 | 75 | async fn fetch_github() -> String { 76 | match read_config() { 77 | Some(config) => { 78 | let info_url = format!("https://api.github.com/users/{}", config.github); 79 | let stats_url = format!( 80 | "https://api.github-star-counter.workers.dev/user/{}", 81 | config.github 82 | ); 83 | 84 | match try_join!(async { reqwest::get(&info_url).await }, async { 85 | reqwest::get(&stats_url).await 86 | }) { 87 | Ok((info_response, stats_response)) => { 88 | if info_response.status().is_success() && stats_response.status().is_success() { 89 | let profile = Profile { 90 | username: config.github, 91 | langs: config.about.langs, 92 | info: info_response.json().await.unwrap(), 93 | stats: stats_response.json().await.unwrap(), 94 | }; 95 | 96 | format_profile(profile) 97 | } else { 98 | String::from(FETCH_GITHUB_ERROR) 99 | } 100 | } 101 | Err(_) => String::from(FETCH_GITHUB_ERROR), 102 | } 103 | } 104 | None => String::from(READ_JSON_ERROR), 105 | } 106 | } 107 | 108 | async fn fetch_repos() -> String { 109 | match read_config() { 110 | Some(config) => { 111 | let repos_url = format!("https://pinned.berrysauce.dev/get/{}", config.github); 112 | 113 | match reqwest::get(&repos_url).await { 114 | Ok(response) => { 115 | let repos: Vec = response.json().await.unwrap(); 116 | format_repos(&repos) 117 | } 118 | Err(_) => String::from(FETCH_GITHUB_ERROR), 119 | } 120 | } 121 | None => String::from(READ_JSON_ERROR), 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /src/commands/fetch/formats.rs: -------------------------------------------------------------------------------- 1 | use super::{About, Links, Profile, Repository}; 2 | use std::collections::HashMap; 3 | 4 | // Ascii art used for Github 5 | const NEOFETCH: &str = include_str!("../../../configs/neofetch.txt"); 6 | 7 | // Language icons for repos 8 | const RUST: &str = include_str!("../../../configs/lang_icons/rust.txt"); 9 | const PYTHON: &str = include_str!("../../../configs/lang_icons/python.txt"); 10 | const GITHUB: &str = include_str!("../../../configs/lang_icons/github.txt"); 11 | 12 | pub fn format_about(about: About) -> String { 13 | let exp_string: String = about 14 | .experience 15 | .iter() 16 | .map(|exp| { 17 | format!( 18 | r#"Title: {} 19 | Description: 20 | {}"#, 21 | exp.title, 22 | exp.description 23 | .iter() 24 | .map(|s| format!(r#"* {}"#, s)) 25 | .collect::>() 26 | .join("\n"), 27 | ) 28 | }) 29 | .collect::>() 30 | .join("\n"); 31 | 32 | let edu_string: String = about 33 | .education 34 | .iter() 35 | .map(|edu| { 36 | format!( 37 | r#"Institute: {} 38 | Course: {} 39 | Duration: {} 40 | "#, 41 | edu.institute, edu.course, edu.duration 42 | ) 43 | }) 44 | .collect::>() 45 | .join("\n"); 46 | 47 | let text = format!( 48 | r#"
{}
49 | {} 50 | 51 | Languages 52 | 53 | {} 54 | 55 | Experience 56 | 57 | {} 58 | 59 | Education 60 | 61 | {} 62 | "#, 63 | about.name.to_uppercase(), 64 | about.intro, 65 | format_langs(about.langs), 66 | exp_string, 67 | edu_string 68 | ); 69 | 70 | format!( 71 | r#" 72 | 73 | 74 |
75 |
{}
76 |
77 | "#, 78 | text 79 | ) 80 | } 81 | 82 | pub fn format_profile(profile: Profile) -> String { 83 | let name = profile.info.name.unwrap_or(String::from("-")); 84 | let bio = profile.info.bio.unwrap_or(String::from("-")); 85 | let repos = profile.info.public_repos; 86 | let stars = profile.stats.stars; 87 | let forks = profile.stats.forks; 88 | let company = profile.info.company.unwrap_or(String::from("-")); 89 | let location = profile.info.location.unwrap_or(String::from("-")); 90 | let followers = profile.info.followers; 91 | let following = profile.info.following; 92 | let created_on = &profile.info.created_at[..10]; 93 | 94 | let text = format!( 95 | r#"{username}@termfolio 96 | ---------------------- 97 | Name: {name} 98 | Bio: {bio} 99 | Repos: {repos} 100 | Langs: {langs} 101 | Stars: {stars} 102 | Forks: {forks} 103 | Company: {company} 104 | Location: {location} 105 | Followers: {followers} 106 | Following: {following} 107 | Created on: {created_on} 108 | 109 | {BLOCKS}"#, 110 | username = profile.username, 111 | langs = format_langs(profile.langs), 112 | ); 113 | 114 | format!( 115 | r#"
116 |
{}
117 |
{}
118 |
"#, 119 | NEOFETCH, text 120 | ) 121 | } 122 | 123 | pub fn format_repos(repos: &[Repository]) -> String { 124 | let res: Vec = repos 125 | .iter() 126 | .map(|repo| { 127 | let text = format!( 128 | r#"{} 129 | 130 | Description: {} 131 | Language: {} 132 | Stars: {} 133 | Forks: {} 134 | 135 | "#, 136 | repo.author, 137 | repo.name, 138 | repo.name, 139 | repo.description, 140 | repo.language, 141 | repo.stars, 142 | repo.forks 143 | ); 144 | 145 | format!( 146 | r#"
147 |
{}
148 |
{}
149 |
"#, 150 | lang_icon(&repo.language), 151 | text 152 | ) 153 | }) 154 | .collect(); 155 | 156 | res.join("\n") 157 | } 158 | 159 | pub fn format_links(links: Links) -> String { 160 | let mut result = String::new(); 161 | 162 | result += &format!( 163 | r#" Github: github.com/{} 164 | "#, 165 | links.github, links.github 166 | ); 167 | 168 | if let Some(email) = &links.email { 169 | result += &format!( 170 | r#" 171 | Email: {} 172 | "#, 173 | email, email 174 | ); 175 | } 176 | 177 | if let Some(linkedin) = &links.linkedin { 178 | result += &format!( 179 | r#" 180 | LinkedIn: linkedin.com/{} 181 | "#, 182 | linkedin, linkedin 183 | ); 184 | } 185 | 186 | if let Some(twitter) = &links.twitter { 187 | result += &format!( 188 | r#" 189 | Twitter/X: @{} 190 | "#, 191 | twitter, twitter 192 | ); 193 | } 194 | 195 | result 196 | } 197 | 198 | pub fn format_langs(langs: Vec) -> String { 199 | let color_map: HashMap<&str, &str> = [ 200 | ("Rust", "orange"), 201 | ("Python", "blue"), 202 | ("C", "dblue"), 203 | ("C++", "dblue"), 204 | ("Java", "red"), 205 | ("Haskell", "purple"), 206 | ("Zig", "orange"), 207 | ("Go", "blue"), 208 | ("Dart", "dblue"), 209 | ("JavaScript", "yellow"), 210 | ("TypeScript", "blue"), 211 | ("Bash", "dgreen"), 212 | ] 213 | .into(); 214 | 215 | let formatted_langs: Vec = langs 216 | .into_iter() 217 | .map(|lang| { 218 | color_map.get(lang.as_str()).map_or_else( 219 | || format!(r#"{}"#, lang), 220 | |color| format!(r#"{}"#, color, lang), 221 | ) 222 | }) 223 | .collect(); 224 | 225 | formatted_langs.join(" ") 226 | } 227 | 228 | fn lang_icon(lang: &str) -> &str { 229 | match lang { 230 | "Rust" => RUST, 231 | "Python" | "Jupyter Notebook" => PYTHON, 232 | _ => GITHUB, 233 | } 234 | } 235 | 236 | const BLOCKS: &str = r#""#; 237 | -------------------------------------------------------------------------------- /configs/lang_icons/python.txt: -------------------------------------------------------------------------------- 1 | //////(((((((((((( 2 | // ((((((((((((( 3 | /(((((((((((((((((( 4 | (((((((((# 5 | //////(((((((((((((((((((### ,,,,,,,, 6 | /////(((((((((((((((((((##### ,,,,,,,,, 7 | ///(((((((((((((((((((###### .,,,,,,,,, 8 | //(((((((((((/ ,,,,,,,,,,,, 9 | (((((((((/ ,,,,,,,,,,,,,,,,,,,,,,,,,,,* 10 | ((((((((( ,,,,,,,,,,,,,,,,,,,,,,,,,**** 11 | (((((((( ,,,,,,,,,,,,,,,,,,,,,******* 12 | ,(((( ,,,,,,,,, 13 | ,,,,,,,,,,,,,,***** 14 | ,,,,,,,,,,,** .** 15 | ,,,,,,*********** 16 | -------------------------------------------------------------------------------- /configs/lang_icons/rust.txt: -------------------------------------------------------------------------------- 1 | 2 | , ** **..*/ 3 | **,***************/* 4 | .************************* 5 | /***************************** 6 | *******************************/. 7 | ***********@@ *** @@ .********* 8 | .************ **** ************ 9 | ****,,**,,,*************,,**.,,***. 10 | *** , ********* *******/ , /** 11 | / ***...,./.. ***. * 12 | .,, ,., 13 | -------------------------------------------------------------------------------- /configs/lang_icons/github.txt: -------------------------------------------------------------------------------- 1 | @@@@@@@@@@@@@@@@@@# 2 | @@@@@@@@@@@@@@@@@@@@@@@@@@, 3 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4 | @@@@@@@ @@@@@@@@@@@@/ @@@@@@@ 5 | @@@@@@@, @@@@@@@@ 6 | @@@@@@@@ @@@@@@@@ 7 | @@@@@@@ @@@@@@@ 8 | @@@@@@@@ @@@@@@@ 9 | @@@@@@@@ @@@@@@@ 10 | @@@@@@@@ @@@@@@@@ 11 | @@@@@@@@@@ @@@@@@@@@@ 12 | @@@@% @@@@@@ @@@@@@@@@@@@@ 13 | @@@@ @@@@@@@@@@@ 14 | @@@@@@@@% @@@@@@@@@ 15 | ,@@@@% @@@@@. 16 | -------------------------------------------------------------------------------- /configs/lang_icons/octocat.txt: -------------------------------------------------------------------------------- 1 | @@@@@@@@@@@@@@@@@@# 2 | @@@@@@@@@@@@@@@@@@@@@@@@@@, 3 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4 | @@@@@@@ @@@@@@@@@@@@/ @@@@@@@ 5 | @@@@@@@, @@@@@@@@ 6 | @@@@@@@@ @@@@@@@@ 7 | @@@@@@@ @@@@@@@ 8 | @@@@@@@@ @@@@@@@ 9 | @@@@@@@@ @@@@@@@ 10 | @@@@@@@@ @@@@@@@@ 11 | @@@@@@@@@@ @@@@@@@@@@ 12 | @@@@% @@@@@@ @@@@@@@@@@@@@ 13 | @@@@ @@@@@@@@@@@ 14 | @@@@@@@@% @@@@@@@@@ 15 | ,@@@@% @@@@@. 16 | -------------------------------------------------------------------------------- /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 = "addr2line" 7 | version = "0.24.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler2" 16 | version = "2.0.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 19 | 20 | [[package]] 21 | name = "ahash" 22 | version = "0.7.8" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 25 | dependencies = [ 26 | "getrandom", 27 | "once_cell", 28 | "version_check", 29 | ] 30 | 31 | [[package]] 32 | name = "aho-corasick" 33 | version = "1.1.3" 34 | source = "registry+https://github.com/rust-lang/crates.io-index" 35 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 36 | dependencies = [ 37 | "memchr", 38 | ] 39 | 40 | [[package]] 41 | name = "anyhow" 42 | version = "1.0.93" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" 45 | 46 | [[package]] 47 | name = "async-recursion" 48 | version = "1.1.1" 49 | source = "registry+https://github.com/rust-lang/crates.io-index" 50 | checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" 51 | dependencies = [ 52 | "proc-macro2", 53 | "quote", 54 | "syn 2.0.89", 55 | ] 56 | 57 | [[package]] 58 | name = "async-trait" 59 | version = "0.1.83" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" 62 | dependencies = [ 63 | "proc-macro2", 64 | "quote", 65 | "syn 2.0.89", 66 | ] 67 | 68 | [[package]] 69 | name = "atomic-waker" 70 | version = "1.1.2" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 73 | 74 | [[package]] 75 | name = "attribute-derive" 76 | version = "0.8.1" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "0c94f43ede6f25dab1dea046bff84d85dea61bd49aba7a9011ad66c0d449077b" 79 | dependencies = [ 80 | "attribute-derive-macro", 81 | "proc-macro2", 82 | "quote", 83 | "syn 2.0.89", 84 | ] 85 | 86 | [[package]] 87 | name = "attribute-derive-macro" 88 | version = "0.8.1" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "b409e2b2d2dc206d2c0ad3575a93f001ae21a1593e2d0c69b69c308e63f3b422" 91 | dependencies = [ 92 | "collection_literals", 93 | "interpolator", 94 | "manyhow", 95 | "proc-macro-utils", 96 | "proc-macro2", 97 | "quote", 98 | "quote-use", 99 | "syn 2.0.89", 100 | ] 101 | 102 | [[package]] 103 | name = "autocfg" 104 | version = "1.4.0" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 107 | 108 | [[package]] 109 | name = "backtrace" 110 | version = "0.3.74" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 113 | dependencies = [ 114 | "addr2line", 115 | "cfg-if", 116 | "libc", 117 | "miniz_oxide", 118 | "object", 119 | "rustc-demangle", 120 | "windows-targets 0.52.6", 121 | ] 122 | 123 | [[package]] 124 | name = "base64" 125 | version = "0.21.7" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 128 | 129 | [[package]] 130 | name = "base64" 131 | version = "0.22.1" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 134 | 135 | [[package]] 136 | name = "bitflags" 137 | version = "1.3.2" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 140 | 141 | [[package]] 142 | name = "bitflags" 143 | version = "2.6.0" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 146 | 147 | [[package]] 148 | name = "bitvec" 149 | version = "1.0.1" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 152 | dependencies = [ 153 | "funty", 154 | "radium", 155 | "tap", 156 | "wyz", 157 | ] 158 | 159 | [[package]] 160 | name = "bumpalo" 161 | version = "3.16.0" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 164 | 165 | [[package]] 166 | name = "bytecheck" 167 | version = "0.6.12" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" 170 | dependencies = [ 171 | "bytecheck_derive", 172 | "ptr_meta", 173 | "simdutf8", 174 | "uuid", 175 | ] 176 | 177 | [[package]] 178 | name = "bytecheck_derive" 179 | version = "0.6.12" 180 | source = "registry+https://github.com/rust-lang/crates.io-index" 181 | checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" 182 | dependencies = [ 183 | "proc-macro2", 184 | "quote", 185 | "syn 1.0.109", 186 | ] 187 | 188 | [[package]] 189 | name = "bytes" 190 | version = "1.8.0" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" 193 | 194 | [[package]] 195 | name = "camino" 196 | version = "1.1.7" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" 199 | 200 | [[package]] 201 | name = "cc" 202 | version = "1.1.28" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1" 205 | dependencies = [ 206 | "shlex", 207 | ] 208 | 209 | [[package]] 210 | name = "cfg-if" 211 | version = "1.0.0" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 214 | 215 | [[package]] 216 | name = "ciborium" 217 | version = "0.2.2" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 220 | dependencies = [ 221 | "ciborium-io", 222 | "ciborium-ll", 223 | "serde", 224 | ] 225 | 226 | [[package]] 227 | name = "ciborium-io" 228 | version = "0.2.2" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 231 | 232 | [[package]] 233 | name = "ciborium-ll" 234 | version = "0.2.2" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 237 | dependencies = [ 238 | "ciborium-io", 239 | "half", 240 | ] 241 | 242 | [[package]] 243 | name = "collection_literals" 244 | version = "1.0.1" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "186dce98367766de751c42c4f03970fc60fc012296e706ccbb9d5df9b6c1e271" 247 | 248 | [[package]] 249 | name = "config" 250 | version = "0.13.4" 251 | source = "registry+https://github.com/rust-lang/crates.io-index" 252 | checksum = "23738e11972c7643e4ec947840fc463b6a571afcd3e735bdfce7d03c7a784aca" 253 | dependencies = [ 254 | "async-trait", 255 | "lazy_static", 256 | "nom", 257 | "pathdiff", 258 | "serde", 259 | "toml", 260 | ] 261 | 262 | [[package]] 263 | name = "const_format" 264 | version = "0.2.32" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" 267 | dependencies = [ 268 | "const_format_proc_macros", 269 | ] 270 | 271 | [[package]] 272 | name = "const_format_proc_macros" 273 | version = "0.2.32" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" 276 | dependencies = [ 277 | "proc-macro2", 278 | "quote", 279 | "unicode-xid", 280 | ] 281 | 282 | [[package]] 283 | name = "convert_case" 284 | version = "0.6.0" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" 287 | dependencies = [ 288 | "unicode-segmentation", 289 | ] 290 | 291 | [[package]] 292 | name = "core-foundation" 293 | version = "0.9.4" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 296 | dependencies = [ 297 | "core-foundation-sys", 298 | "libc", 299 | ] 300 | 301 | [[package]] 302 | name = "core-foundation-sys" 303 | version = "0.8.6" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 306 | 307 | [[package]] 308 | name = "crunchy" 309 | version = "0.2.2" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 312 | 313 | [[package]] 314 | name = "darling" 315 | version = "0.20.8" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" 318 | dependencies = [ 319 | "darling_core", 320 | "darling_macro", 321 | ] 322 | 323 | [[package]] 324 | name = "darling_core" 325 | version = "0.20.8" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" 328 | dependencies = [ 329 | "fnv", 330 | "ident_case", 331 | "proc-macro2", 332 | "quote", 333 | "strsim", 334 | "syn 2.0.89", 335 | ] 336 | 337 | [[package]] 338 | name = "darling_macro" 339 | version = "0.20.8" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" 342 | dependencies = [ 343 | "darling_core", 344 | "quote", 345 | "syn 2.0.89", 346 | ] 347 | 348 | [[package]] 349 | name = "default-struct-builder" 350 | version = "0.5.0" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "f8fa90da96b8fd491f5754d1f7a731f73921e3b7aa0ce333c821a0e43666ac14" 353 | dependencies = [ 354 | "darling", 355 | "proc-macro2", 356 | "quote", 357 | "syn 2.0.89", 358 | ] 359 | 360 | [[package]] 361 | name = "derive-where" 362 | version = "1.2.7" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" 365 | dependencies = [ 366 | "proc-macro2", 367 | "quote", 368 | "syn 2.0.89", 369 | ] 370 | 371 | [[package]] 372 | name = "drain_filter_polyfill" 373 | version = "0.1.3" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" 376 | 377 | [[package]] 378 | name = "either" 379 | version = "1.13.0" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 382 | 383 | [[package]] 384 | name = "encoding_rs" 385 | version = "0.8.34" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 388 | dependencies = [ 389 | "cfg-if", 390 | ] 391 | 392 | [[package]] 393 | name = "equivalent" 394 | version = "1.0.1" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 397 | 398 | [[package]] 399 | name = "errno" 400 | version = "0.3.9" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 403 | dependencies = [ 404 | "libc", 405 | "windows-sys 0.52.0", 406 | ] 407 | 408 | [[package]] 409 | name = "fastrand" 410 | version = "2.1.1" 411 | source = "registry+https://github.com/rust-lang/crates.io-index" 412 | checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" 413 | 414 | [[package]] 415 | name = "fnv" 416 | version = "1.0.7" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 419 | 420 | [[package]] 421 | name = "foreign-types" 422 | version = "0.3.2" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 425 | dependencies = [ 426 | "foreign-types-shared", 427 | ] 428 | 429 | [[package]] 430 | name = "foreign-types-shared" 431 | version = "0.1.1" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 434 | 435 | [[package]] 436 | name = "form_urlencoded" 437 | version = "1.2.1" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 440 | dependencies = [ 441 | "percent-encoding", 442 | ] 443 | 444 | [[package]] 445 | name = "funty" 446 | version = "2.0.0" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 449 | 450 | [[package]] 451 | name = "futures" 452 | version = "0.3.30" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 455 | dependencies = [ 456 | "futures-channel", 457 | "futures-core", 458 | "futures-executor", 459 | "futures-io", 460 | "futures-sink", 461 | "futures-task", 462 | "futures-util", 463 | ] 464 | 465 | [[package]] 466 | name = "futures-channel" 467 | version = "0.3.31" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 470 | dependencies = [ 471 | "futures-core", 472 | "futures-sink", 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-executor" 483 | version = "0.3.30" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 486 | dependencies = [ 487 | "futures-core", 488 | "futures-task", 489 | "futures-util", 490 | ] 491 | 492 | [[package]] 493 | name = "futures-io" 494 | version = "0.3.31" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 497 | 498 | [[package]] 499 | name = "futures-macro" 500 | version = "0.3.31" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 503 | dependencies = [ 504 | "proc-macro2", 505 | "quote", 506 | "syn 2.0.89", 507 | ] 508 | 509 | [[package]] 510 | name = "futures-sink" 511 | version = "0.3.31" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 514 | 515 | [[package]] 516 | name = "futures-task" 517 | version = "0.3.31" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 520 | 521 | [[package]] 522 | name = "futures-util" 523 | version = "0.3.31" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 526 | dependencies = [ 527 | "futures-channel", 528 | "futures-core", 529 | "futures-io", 530 | "futures-macro", 531 | "futures-sink", 532 | "futures-task", 533 | "memchr", 534 | "pin-project-lite", 535 | "pin-utils", 536 | "slab", 537 | ] 538 | 539 | [[package]] 540 | name = "getrandom" 541 | version = "0.2.15" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 544 | dependencies = [ 545 | "cfg-if", 546 | "js-sys", 547 | "libc", 548 | "wasi", 549 | "wasm-bindgen", 550 | ] 551 | 552 | [[package]] 553 | name = "gimli" 554 | version = "0.31.1" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 557 | 558 | [[package]] 559 | name = "gloo-net" 560 | version = "0.2.6" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" 563 | dependencies = [ 564 | "futures-channel", 565 | "futures-core", 566 | "futures-sink", 567 | "gloo-utils 0.1.7", 568 | "js-sys", 569 | "pin-project", 570 | "serde", 571 | "serde_json", 572 | "thiserror", 573 | "wasm-bindgen", 574 | "wasm-bindgen-futures", 575 | "web-sys", 576 | ] 577 | 578 | [[package]] 579 | name = "gloo-timers" 580 | version = "0.3.0" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" 583 | dependencies = [ 584 | "futures-channel", 585 | "futures-core", 586 | "js-sys", 587 | "wasm-bindgen", 588 | ] 589 | 590 | [[package]] 591 | name = "gloo-utils" 592 | version = "0.1.7" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" 595 | dependencies = [ 596 | "js-sys", 597 | "serde", 598 | "serde_json", 599 | "wasm-bindgen", 600 | "web-sys", 601 | ] 602 | 603 | [[package]] 604 | name = "gloo-utils" 605 | version = "0.2.0" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 608 | dependencies = [ 609 | "js-sys", 610 | "serde", 611 | "serde_json", 612 | "wasm-bindgen", 613 | "web-sys", 614 | ] 615 | 616 | [[package]] 617 | name = "h2" 618 | version = "0.3.26" 619 | source = "registry+https://github.com/rust-lang/crates.io-index" 620 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 621 | dependencies = [ 622 | "bytes", 623 | "fnv", 624 | "futures-core", 625 | "futures-sink", 626 | "futures-util", 627 | "http 0.2.12", 628 | "indexmap", 629 | "slab", 630 | "tokio", 631 | "tokio-util", 632 | "tracing", 633 | ] 634 | 635 | [[package]] 636 | name = "h2" 637 | version = "0.4.6" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" 640 | dependencies = [ 641 | "atomic-waker", 642 | "bytes", 643 | "fnv", 644 | "futures-core", 645 | "futures-sink", 646 | "http 1.1.0", 647 | "indexmap", 648 | "slab", 649 | "tokio", 650 | "tokio-util", 651 | "tracing", 652 | ] 653 | 654 | [[package]] 655 | name = "half" 656 | version = "2.4.1" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" 659 | dependencies = [ 660 | "cfg-if", 661 | "crunchy", 662 | ] 663 | 664 | [[package]] 665 | name = "hashbrown" 666 | version = "0.12.3" 667 | source = "registry+https://github.com/rust-lang/crates.io-index" 668 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 669 | dependencies = [ 670 | "ahash", 671 | ] 672 | 673 | [[package]] 674 | name = "hashbrown" 675 | version = "0.15.0" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" 678 | 679 | [[package]] 680 | name = "hermit-abi" 681 | version = "0.3.9" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 684 | 685 | [[package]] 686 | name = "html-escape" 687 | version = "0.2.13" 688 | source = "registry+https://github.com/rust-lang/crates.io-index" 689 | checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" 690 | dependencies = [ 691 | "utf8-width", 692 | ] 693 | 694 | [[package]] 695 | name = "http" 696 | version = "0.2.12" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 699 | dependencies = [ 700 | "bytes", 701 | "fnv", 702 | "itoa", 703 | ] 704 | 705 | [[package]] 706 | name = "http" 707 | version = "1.1.0" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 710 | dependencies = [ 711 | "bytes", 712 | "fnv", 713 | "itoa", 714 | ] 715 | 716 | [[package]] 717 | name = "http-body" 718 | version = "0.4.6" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 721 | dependencies = [ 722 | "bytes", 723 | "http 0.2.12", 724 | "pin-project-lite", 725 | ] 726 | 727 | [[package]] 728 | name = "http-body" 729 | version = "1.0.1" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 732 | dependencies = [ 733 | "bytes", 734 | "http 1.1.0", 735 | ] 736 | 737 | [[package]] 738 | name = "http-body-util" 739 | version = "0.1.2" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 742 | dependencies = [ 743 | "bytes", 744 | "futures-util", 745 | "http 1.1.0", 746 | "http-body 1.0.1", 747 | "pin-project-lite", 748 | ] 749 | 750 | [[package]] 751 | name = "httparse" 752 | version = "1.9.5" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" 755 | 756 | [[package]] 757 | name = "httpdate" 758 | version = "1.0.3" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 761 | 762 | [[package]] 763 | name = "hyper" 764 | version = "0.14.29" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" 767 | dependencies = [ 768 | "bytes", 769 | "futures-channel", 770 | "futures-core", 771 | "futures-util", 772 | "h2 0.3.26", 773 | "http 0.2.12", 774 | "http-body 0.4.6", 775 | "httparse", 776 | "httpdate", 777 | "itoa", 778 | "pin-project-lite", 779 | "socket2", 780 | "tokio", 781 | "tower-service", 782 | "tracing", 783 | "want", 784 | ] 785 | 786 | [[package]] 787 | name = "hyper" 788 | version = "1.5.0" 789 | source = "registry+https://github.com/rust-lang/crates.io-index" 790 | checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" 791 | dependencies = [ 792 | "bytes", 793 | "futures-channel", 794 | "futures-util", 795 | "h2 0.4.6", 796 | "http 1.1.0", 797 | "http-body 1.0.1", 798 | "httparse", 799 | "itoa", 800 | "pin-project-lite", 801 | "smallvec", 802 | "tokio", 803 | "want", 804 | ] 805 | 806 | [[package]] 807 | name = "hyper-rustls" 808 | version = "0.27.2" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" 811 | dependencies = [ 812 | "futures-util", 813 | "http 1.1.0", 814 | "hyper 1.5.0", 815 | "hyper-util", 816 | "rustls", 817 | "rustls-pki-types", 818 | "tokio", 819 | "tokio-rustls", 820 | "tower-service", 821 | ] 822 | 823 | [[package]] 824 | name = "hyper-tls" 825 | version = "0.6.0" 826 | source = "registry+https://github.com/rust-lang/crates.io-index" 827 | checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 828 | dependencies = [ 829 | "bytes", 830 | "http-body-util", 831 | "hyper 1.5.0", 832 | "hyper-util", 833 | "native-tls", 834 | "tokio", 835 | "tokio-native-tls", 836 | "tower-service", 837 | ] 838 | 839 | [[package]] 840 | name = "hyper-util" 841 | version = "0.1.10" 842 | source = "registry+https://github.com/rust-lang/crates.io-index" 843 | checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" 844 | dependencies = [ 845 | "bytes", 846 | "futures-channel", 847 | "futures-util", 848 | "http 1.1.0", 849 | "http-body 1.0.1", 850 | "hyper 1.5.0", 851 | "pin-project-lite", 852 | "socket2", 853 | "tokio", 854 | "tower-service", 855 | "tracing", 856 | ] 857 | 858 | [[package]] 859 | name = "ident_case" 860 | version = "1.0.1" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 863 | 864 | [[package]] 865 | name = "idna" 866 | version = "0.5.0" 867 | source = "registry+https://github.com/rust-lang/crates.io-index" 868 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 869 | dependencies = [ 870 | "unicode-bidi", 871 | "unicode-normalization", 872 | ] 873 | 874 | [[package]] 875 | name = "indexmap" 876 | version = "2.6.0" 877 | source = "registry+https://github.com/rust-lang/crates.io-index" 878 | checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 879 | dependencies = [ 880 | "equivalent", 881 | "hashbrown 0.15.0", 882 | ] 883 | 884 | [[package]] 885 | name = "interpolator" 886 | version = "0.5.0" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8" 889 | 890 | [[package]] 891 | name = "inventory" 892 | version = "0.3.15" 893 | source = "registry+https://github.com/rust-lang/crates.io-index" 894 | checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" 895 | 896 | [[package]] 897 | name = "ipnet" 898 | version = "2.10.1" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" 901 | 902 | [[package]] 903 | name = "itertools" 904 | version = "0.12.1" 905 | source = "registry+https://github.com/rust-lang/crates.io-index" 906 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 907 | dependencies = [ 908 | "either", 909 | ] 910 | 911 | [[package]] 912 | name = "itoa" 913 | version = "1.0.11" 914 | source = "registry+https://github.com/rust-lang/crates.io-index" 915 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 916 | 917 | [[package]] 918 | name = "js-sys" 919 | version = "0.3.69" 920 | source = "registry+https://github.com/rust-lang/crates.io-index" 921 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 922 | dependencies = [ 923 | "wasm-bindgen", 924 | ] 925 | 926 | [[package]] 927 | name = "lazy_static" 928 | version = "1.5.0" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 931 | 932 | [[package]] 933 | name = "leptos" 934 | version = "0.5.7" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | checksum = "269ba4ba91ffa73d9559c975e0be17bd4eb34c6b6abd7fdd5704106132d89d2a" 937 | dependencies = [ 938 | "cfg-if", 939 | "leptos_config", 940 | "leptos_dom", 941 | "leptos_macro", 942 | "leptos_reactive", 943 | "leptos_server", 944 | "server_fn", 945 | "tracing", 946 | "typed-builder", 947 | "typed-builder-macro", 948 | "wasm-bindgen", 949 | "web-sys", 950 | ] 951 | 952 | [[package]] 953 | name = "leptos-use" 954 | version = "0.9.0" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "89fc1df43aeda3da8429369c4acbb319adebfee424d181568010cd115b4f647e" 957 | dependencies = [ 958 | "cfg-if", 959 | "default-struct-builder", 960 | "futures-util", 961 | "gloo-timers", 962 | "gloo-utils 0.2.0", 963 | "js-sys", 964 | "lazy_static", 965 | "leptos", 966 | "paste", 967 | "thiserror", 968 | "wasm-bindgen", 969 | "wasm-bindgen-futures", 970 | "web-sys", 971 | ] 972 | 973 | [[package]] 974 | name = "leptos_config" 975 | version = "0.5.7" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "e72d8689d54737991831e9b279bb4fba36d27a93aa975c75cd4241d9a4a425ec" 978 | dependencies = [ 979 | "config", 980 | "regex", 981 | "serde", 982 | "thiserror", 983 | "typed-builder", 984 | ] 985 | 986 | [[package]] 987 | name = "leptos_dom" 988 | version = "0.5.7" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | checksum = "ad314950d41acb1bfdb8b5924811b2983484a8d6f69a20b834a173a682657ed4" 991 | dependencies = [ 992 | "async-recursion", 993 | "cfg-if", 994 | "drain_filter_polyfill", 995 | "futures", 996 | "getrandom", 997 | "html-escape", 998 | "indexmap", 999 | "itertools", 1000 | "js-sys", 1001 | "leptos_reactive", 1002 | "once_cell", 1003 | "pad-adapter", 1004 | "paste", 1005 | "rustc-hash", 1006 | "serde", 1007 | "serde_json", 1008 | "server_fn", 1009 | "smallvec", 1010 | "tracing", 1011 | "wasm-bindgen", 1012 | "wasm-bindgen-futures", 1013 | "web-sys", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "leptos_hot_reload" 1018 | version = "0.5.7" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "3f62dcab17728877f2d2f16d2c8a6701c4c5fbdfb4964792924acb0b50529659" 1021 | dependencies = [ 1022 | "anyhow", 1023 | "camino", 1024 | "indexmap", 1025 | "parking_lot", 1026 | "proc-macro2", 1027 | "quote", 1028 | "rstml", 1029 | "serde", 1030 | "syn 2.0.89", 1031 | "walkdir", 1032 | ] 1033 | 1034 | [[package]] 1035 | name = "leptos_macro" 1036 | version = "0.5.7" 1037 | source = "registry+https://github.com/rust-lang/crates.io-index" 1038 | checksum = "57955d66f624265222444a5c565fea38efa5b0152a1dfc7c060a78e5fb62a852" 1039 | dependencies = [ 1040 | "attribute-derive", 1041 | "cfg-if", 1042 | "convert_case", 1043 | "html-escape", 1044 | "itertools", 1045 | "leptos_hot_reload", 1046 | "prettyplease", 1047 | "proc-macro-error", 1048 | "proc-macro2", 1049 | "quote", 1050 | "rstml", 1051 | "server_fn_macro", 1052 | "syn 2.0.89", 1053 | "tracing", 1054 | "uuid", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "leptos_reactive" 1059 | version = "0.5.7" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "b4f54a525a0edfc8c2bf3ee92aae411800b8b10892c9cd819f8e8a6d4f0d62f3" 1062 | dependencies = [ 1063 | "base64 0.21.7", 1064 | "cfg-if", 1065 | "futures", 1066 | "indexmap", 1067 | "js-sys", 1068 | "paste", 1069 | "pin-project", 1070 | "rkyv", 1071 | "rustc-hash", 1072 | "self_cell", 1073 | "serde", 1074 | "serde-wasm-bindgen", 1075 | "serde_json", 1076 | "slotmap", 1077 | "thiserror", 1078 | "tracing", 1079 | "wasm-bindgen", 1080 | "wasm-bindgen-futures", 1081 | "web-sys", 1082 | ] 1083 | 1084 | [[package]] 1085 | name = "leptos_server" 1086 | version = "0.5.7" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | checksum = "2fd1517c2024bc47d764e96053e55b927f8a2159e735a0cc47232542b493df9d" 1089 | dependencies = [ 1090 | "inventory", 1091 | "lazy_static", 1092 | "leptos_macro", 1093 | "leptos_reactive", 1094 | "serde", 1095 | "server_fn", 1096 | "thiserror", 1097 | "tracing", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "libc" 1102 | version = "0.2.162" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" 1105 | 1106 | [[package]] 1107 | name = "linux-raw-sys" 1108 | version = "0.4.14" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 1111 | 1112 | [[package]] 1113 | name = "lock_api" 1114 | version = "0.4.12" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1117 | dependencies = [ 1118 | "autocfg", 1119 | "scopeguard", 1120 | ] 1121 | 1122 | [[package]] 1123 | name = "log" 1124 | version = "0.4.22" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 1127 | 1128 | [[package]] 1129 | name = "manyhow" 1130 | version = "0.8.1" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "516b76546495d933baa165075b95c0a15e8f7ef75e53f56b19b7144d80fd52bd" 1133 | dependencies = [ 1134 | "manyhow-macros", 1135 | "proc-macro2", 1136 | "quote", 1137 | "syn 2.0.89", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "manyhow-macros" 1142 | version = "0.8.1" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "8ba072c0eadade3160232e70893311f1f8903974488096e2eb8e48caba2f0cf1" 1145 | dependencies = [ 1146 | "proc-macro-utils", 1147 | "proc-macro2", 1148 | "quote", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "memchr" 1153 | version = "2.7.4" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1156 | 1157 | [[package]] 1158 | name = "mime" 1159 | version = "0.3.17" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1162 | 1163 | [[package]] 1164 | name = "minimal-lexical" 1165 | version = "0.2.1" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1168 | 1169 | [[package]] 1170 | name = "miniz_oxide" 1171 | version = "0.8.0" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 1174 | dependencies = [ 1175 | "adler2", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "mio" 1180 | version = "1.0.2" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" 1183 | dependencies = [ 1184 | "hermit-abi", 1185 | "libc", 1186 | "wasi", 1187 | "windows-sys 0.52.0", 1188 | ] 1189 | 1190 | [[package]] 1191 | name = "native-tls" 1192 | version = "0.2.12" 1193 | source = "registry+https://github.com/rust-lang/crates.io-index" 1194 | checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" 1195 | dependencies = [ 1196 | "libc", 1197 | "log", 1198 | "openssl", 1199 | "openssl-probe", 1200 | "openssl-sys", 1201 | "schannel", 1202 | "security-framework", 1203 | "security-framework-sys", 1204 | "tempfile", 1205 | ] 1206 | 1207 | [[package]] 1208 | name = "nom" 1209 | version = "7.1.3" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1212 | dependencies = [ 1213 | "memchr", 1214 | "minimal-lexical", 1215 | ] 1216 | 1217 | [[package]] 1218 | name = "object" 1219 | version = "0.36.5" 1220 | source = "registry+https://github.com/rust-lang/crates.io-index" 1221 | checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" 1222 | dependencies = [ 1223 | "memchr", 1224 | ] 1225 | 1226 | [[package]] 1227 | name = "once_cell" 1228 | version = "1.20.2" 1229 | source = "registry+https://github.com/rust-lang/crates.io-index" 1230 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 1231 | 1232 | [[package]] 1233 | name = "openssl" 1234 | version = "0.10.66" 1235 | source = "registry+https://github.com/rust-lang/crates.io-index" 1236 | checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" 1237 | dependencies = [ 1238 | "bitflags 2.6.0", 1239 | "cfg-if", 1240 | "foreign-types", 1241 | "libc", 1242 | "once_cell", 1243 | "openssl-macros", 1244 | "openssl-sys", 1245 | ] 1246 | 1247 | [[package]] 1248 | name = "openssl-macros" 1249 | version = "0.1.1" 1250 | source = "registry+https://github.com/rust-lang/crates.io-index" 1251 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1252 | dependencies = [ 1253 | "proc-macro2", 1254 | "quote", 1255 | "syn 2.0.89", 1256 | ] 1257 | 1258 | [[package]] 1259 | name = "openssl-probe" 1260 | version = "0.1.5" 1261 | source = "registry+https://github.com/rust-lang/crates.io-index" 1262 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1263 | 1264 | [[package]] 1265 | name = "openssl-sys" 1266 | version = "0.9.103" 1267 | source = "registry+https://github.com/rust-lang/crates.io-index" 1268 | checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" 1269 | dependencies = [ 1270 | "cc", 1271 | "libc", 1272 | "pkg-config", 1273 | "vcpkg", 1274 | ] 1275 | 1276 | [[package]] 1277 | name = "pad-adapter" 1278 | version = "0.1.1" 1279 | source = "registry+https://github.com/rust-lang/crates.io-index" 1280 | checksum = "56d80efc4b6721e8be2a10a5df21a30fa0b470f1539e53d8b4e6e75faf938b63" 1281 | 1282 | [[package]] 1283 | name = "parking_lot" 1284 | version = "0.12.3" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1287 | dependencies = [ 1288 | "lock_api", 1289 | "parking_lot_core", 1290 | ] 1291 | 1292 | [[package]] 1293 | name = "parking_lot_core" 1294 | version = "0.9.10" 1295 | source = "registry+https://github.com/rust-lang/crates.io-index" 1296 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1297 | dependencies = [ 1298 | "cfg-if", 1299 | "libc", 1300 | "redox_syscall", 1301 | "smallvec", 1302 | "windows-targets 0.52.6", 1303 | ] 1304 | 1305 | [[package]] 1306 | name = "paste" 1307 | version = "1.0.15" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1310 | 1311 | [[package]] 1312 | name = "pathdiff" 1313 | version = "0.2.1" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" 1316 | 1317 | [[package]] 1318 | name = "percent-encoding" 1319 | version = "2.3.1" 1320 | source = "registry+https://github.com/rust-lang/crates.io-index" 1321 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1322 | 1323 | [[package]] 1324 | name = "pin-project" 1325 | version = "1.1.5" 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" 1327 | checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" 1328 | dependencies = [ 1329 | "pin-project-internal", 1330 | ] 1331 | 1332 | [[package]] 1333 | name = "pin-project-internal" 1334 | version = "1.1.5" 1335 | source = "registry+https://github.com/rust-lang/crates.io-index" 1336 | checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" 1337 | dependencies = [ 1338 | "proc-macro2", 1339 | "quote", 1340 | "syn 2.0.89", 1341 | ] 1342 | 1343 | [[package]] 1344 | name = "pin-project-lite" 1345 | version = "0.2.15" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" 1348 | 1349 | [[package]] 1350 | name = "pin-utils" 1351 | version = "0.1.0" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1354 | 1355 | [[package]] 1356 | name = "pkg-config" 1357 | version = "0.3.31" 1358 | source = "registry+https://github.com/rust-lang/crates.io-index" 1359 | checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 1360 | 1361 | [[package]] 1362 | name = "prettyplease" 1363 | version = "0.2.20" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" 1366 | dependencies = [ 1367 | "proc-macro2", 1368 | "syn 2.0.89", 1369 | ] 1370 | 1371 | [[package]] 1372 | name = "proc-macro-error" 1373 | version = "1.0.4" 1374 | source = "registry+https://github.com/rust-lang/crates.io-index" 1375 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1376 | dependencies = [ 1377 | "proc-macro-error-attr", 1378 | "proc-macro2", 1379 | "quote", 1380 | "version_check", 1381 | ] 1382 | 1383 | [[package]] 1384 | name = "proc-macro-error-attr" 1385 | version = "1.0.4" 1386 | source = "registry+https://github.com/rust-lang/crates.io-index" 1387 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1388 | dependencies = [ 1389 | "proc-macro2", 1390 | "quote", 1391 | "version_check", 1392 | ] 1393 | 1394 | [[package]] 1395 | name = "proc-macro-utils" 1396 | version = "0.8.0" 1397 | source = "registry+https://github.com/rust-lang/crates.io-index" 1398 | checksum = "3f59e109e2f795a5070e69578c4dc101068139f74616778025ae1011d4cd41a8" 1399 | dependencies = [ 1400 | "proc-macro2", 1401 | "quote", 1402 | "smallvec", 1403 | ] 1404 | 1405 | [[package]] 1406 | name = "proc-macro2" 1407 | version = "1.0.92" 1408 | source = "registry+https://github.com/rust-lang/crates.io-index" 1409 | checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" 1410 | dependencies = [ 1411 | "unicode-ident", 1412 | ] 1413 | 1414 | [[package]] 1415 | name = "proc-macro2-diagnostics" 1416 | version = "0.10.1" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" 1419 | dependencies = [ 1420 | "proc-macro2", 1421 | "quote", 1422 | "syn 2.0.89", 1423 | "version_check", 1424 | "yansi", 1425 | ] 1426 | 1427 | [[package]] 1428 | name = "ptr_meta" 1429 | version = "0.1.4" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" 1432 | dependencies = [ 1433 | "ptr_meta_derive", 1434 | ] 1435 | 1436 | [[package]] 1437 | name = "ptr_meta_derive" 1438 | version = "0.1.4" 1439 | source = "registry+https://github.com/rust-lang/crates.io-index" 1440 | checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" 1441 | dependencies = [ 1442 | "proc-macro2", 1443 | "quote", 1444 | "syn 1.0.109", 1445 | ] 1446 | 1447 | [[package]] 1448 | name = "quote" 1449 | version = "1.0.37" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 1452 | dependencies = [ 1453 | "proc-macro2", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "quote-use" 1458 | version = "0.7.2" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "a7b5abe3fe82fdeeb93f44d66a7b444dedf2e4827defb0a8e69c437b2de2ef94" 1461 | dependencies = [ 1462 | "quote", 1463 | "quote-use-macros", 1464 | "syn 2.0.89", 1465 | ] 1466 | 1467 | [[package]] 1468 | name = "quote-use-macros" 1469 | version = "0.7.2" 1470 | source = "registry+https://github.com/rust-lang/crates.io-index" 1471 | checksum = "97ea44c7e20f16017a76a245bb42188517e13d16dcb1aa18044bc406cdc3f4af" 1472 | dependencies = [ 1473 | "derive-where", 1474 | "proc-macro2", 1475 | "quote", 1476 | "syn 2.0.89", 1477 | ] 1478 | 1479 | [[package]] 1480 | name = "radium" 1481 | version = "0.7.0" 1482 | source = "registry+https://github.com/rust-lang/crates.io-index" 1483 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 1484 | 1485 | [[package]] 1486 | name = "redox_syscall" 1487 | version = "0.5.7" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 1490 | dependencies = [ 1491 | "bitflags 2.6.0", 1492 | ] 1493 | 1494 | [[package]] 1495 | name = "regex" 1496 | version = "1.11.0" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" 1499 | dependencies = [ 1500 | "aho-corasick", 1501 | "memchr", 1502 | "regex-automata", 1503 | "regex-syntax", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "regex-automata" 1508 | version = "0.4.8" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" 1511 | dependencies = [ 1512 | "aho-corasick", 1513 | "memchr", 1514 | "regex-syntax", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "regex-syntax" 1519 | version = "0.8.5" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1522 | 1523 | [[package]] 1524 | name = "rend" 1525 | version = "0.4.2" 1526 | source = "registry+https://github.com/rust-lang/crates.io-index" 1527 | checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" 1528 | dependencies = [ 1529 | "bytecheck", 1530 | ] 1531 | 1532 | [[package]] 1533 | name = "reqwest" 1534 | version = "0.11.27" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" 1537 | dependencies = [ 1538 | "base64 0.21.7", 1539 | "bytes", 1540 | "encoding_rs", 1541 | "futures-core", 1542 | "futures-util", 1543 | "h2 0.3.26", 1544 | "http 0.2.12", 1545 | "http-body 0.4.6", 1546 | "hyper 0.14.29", 1547 | "ipnet", 1548 | "js-sys", 1549 | "log", 1550 | "mime", 1551 | "once_cell", 1552 | "percent-encoding", 1553 | "pin-project-lite", 1554 | "serde", 1555 | "serde_json", 1556 | "serde_urlencoded", 1557 | "sync_wrapper 0.1.2", 1558 | "system-configuration 0.5.1", 1559 | "tokio", 1560 | "tower-service", 1561 | "url", 1562 | "wasm-bindgen", 1563 | "wasm-bindgen-futures", 1564 | "web-sys", 1565 | "winreg", 1566 | ] 1567 | 1568 | [[package]] 1569 | name = "reqwest" 1570 | version = "0.12.9" 1571 | source = "registry+https://github.com/rust-lang/crates.io-index" 1572 | checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" 1573 | dependencies = [ 1574 | "base64 0.22.1", 1575 | "bytes", 1576 | "encoding_rs", 1577 | "futures-core", 1578 | "futures-util", 1579 | "h2 0.4.6", 1580 | "http 1.1.0", 1581 | "http-body 1.0.1", 1582 | "http-body-util", 1583 | "hyper 1.5.0", 1584 | "hyper-rustls", 1585 | "hyper-tls", 1586 | "hyper-util", 1587 | "ipnet", 1588 | "js-sys", 1589 | "log", 1590 | "mime", 1591 | "native-tls", 1592 | "once_cell", 1593 | "percent-encoding", 1594 | "pin-project-lite", 1595 | "rustls-pemfile", 1596 | "serde", 1597 | "serde_json", 1598 | "serde_urlencoded", 1599 | "sync_wrapper 1.0.1", 1600 | "system-configuration 0.6.1", 1601 | "tokio", 1602 | "tokio-native-tls", 1603 | "tower-service", 1604 | "url", 1605 | "wasm-bindgen", 1606 | "wasm-bindgen-futures", 1607 | "web-sys", 1608 | "windows-registry", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "ring" 1613 | version = "0.17.8" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 1616 | dependencies = [ 1617 | "cc", 1618 | "cfg-if", 1619 | "getrandom", 1620 | "libc", 1621 | "spin", 1622 | "untrusted", 1623 | "windows-sys 0.52.0", 1624 | ] 1625 | 1626 | [[package]] 1627 | name = "rkyv" 1628 | version = "0.7.44" 1629 | source = "registry+https://github.com/rust-lang/crates.io-index" 1630 | checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" 1631 | dependencies = [ 1632 | "bitvec", 1633 | "bytecheck", 1634 | "bytes", 1635 | "hashbrown 0.12.3", 1636 | "ptr_meta", 1637 | "rend", 1638 | "rkyv_derive", 1639 | "seahash", 1640 | "tinyvec", 1641 | "uuid", 1642 | ] 1643 | 1644 | [[package]] 1645 | name = "rkyv_derive" 1646 | version = "0.7.44" 1647 | source = "registry+https://github.com/rust-lang/crates.io-index" 1648 | checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" 1649 | dependencies = [ 1650 | "proc-macro2", 1651 | "quote", 1652 | "syn 1.0.109", 1653 | ] 1654 | 1655 | [[package]] 1656 | name = "rstml" 1657 | version = "0.11.2" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "fe542870b8f59dd45ad11d382e5339c9a1047cde059be136a7016095bbdefa77" 1660 | dependencies = [ 1661 | "proc-macro2", 1662 | "proc-macro2-diagnostics", 1663 | "quote", 1664 | "syn 2.0.89", 1665 | "syn_derive", 1666 | "thiserror", 1667 | ] 1668 | 1669 | [[package]] 1670 | name = "rustc-demangle" 1671 | version = "0.1.24" 1672 | source = "registry+https://github.com/rust-lang/crates.io-index" 1673 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1674 | 1675 | [[package]] 1676 | name = "rustc-hash" 1677 | version = "1.1.0" 1678 | source = "registry+https://github.com/rust-lang/crates.io-index" 1679 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1680 | 1681 | [[package]] 1682 | name = "rustix" 1683 | version = "0.38.37" 1684 | source = "registry+https://github.com/rust-lang/crates.io-index" 1685 | checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 1686 | dependencies = [ 1687 | "bitflags 2.6.0", 1688 | "errno", 1689 | "libc", 1690 | "linux-raw-sys", 1691 | "windows-sys 0.52.0", 1692 | ] 1693 | 1694 | [[package]] 1695 | name = "rustls" 1696 | version = "0.23.12" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" 1699 | dependencies = [ 1700 | "once_cell", 1701 | "rustls-pki-types", 1702 | "rustls-webpki", 1703 | "subtle", 1704 | "zeroize", 1705 | ] 1706 | 1707 | [[package]] 1708 | name = "rustls-pemfile" 1709 | version = "2.1.3" 1710 | source = "registry+https://github.com/rust-lang/crates.io-index" 1711 | checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" 1712 | dependencies = [ 1713 | "base64 0.22.1", 1714 | "rustls-pki-types", 1715 | ] 1716 | 1717 | [[package]] 1718 | name = "rustls-pki-types" 1719 | version = "1.8.0" 1720 | source = "registry+https://github.com/rust-lang/crates.io-index" 1721 | checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" 1722 | 1723 | [[package]] 1724 | name = "rustls-webpki" 1725 | version = "0.102.6" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" 1728 | dependencies = [ 1729 | "ring", 1730 | "rustls-pki-types", 1731 | "untrusted", 1732 | ] 1733 | 1734 | [[package]] 1735 | name = "ryu" 1736 | version = "1.0.18" 1737 | source = "registry+https://github.com/rust-lang/crates.io-index" 1738 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1739 | 1740 | [[package]] 1741 | name = "same-file" 1742 | version = "1.0.6" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1745 | dependencies = [ 1746 | "winapi-util", 1747 | ] 1748 | 1749 | [[package]] 1750 | name = "schannel" 1751 | version = "0.1.23" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 1754 | dependencies = [ 1755 | "windows-sys 0.52.0", 1756 | ] 1757 | 1758 | [[package]] 1759 | name = "scopeguard" 1760 | version = "1.2.0" 1761 | source = "registry+https://github.com/rust-lang/crates.io-index" 1762 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1763 | 1764 | [[package]] 1765 | name = "seahash" 1766 | version = "4.1.0" 1767 | source = "registry+https://github.com/rust-lang/crates.io-index" 1768 | checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" 1769 | 1770 | [[package]] 1771 | name = "security-framework" 1772 | version = "2.9.2" 1773 | source = "registry+https://github.com/rust-lang/crates.io-index" 1774 | checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 1775 | dependencies = [ 1776 | "bitflags 1.3.2", 1777 | "core-foundation", 1778 | "core-foundation-sys", 1779 | "libc", 1780 | "security-framework-sys", 1781 | ] 1782 | 1783 | [[package]] 1784 | name = "security-framework-sys" 1785 | version = "2.9.1" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 1788 | dependencies = [ 1789 | "core-foundation-sys", 1790 | "libc", 1791 | ] 1792 | 1793 | [[package]] 1794 | name = "self_cell" 1795 | version = "1.0.4" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" 1798 | 1799 | [[package]] 1800 | name = "serde" 1801 | version = "1.0.215" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" 1804 | dependencies = [ 1805 | "serde_derive", 1806 | ] 1807 | 1808 | [[package]] 1809 | name = "serde-wasm-bindgen" 1810 | version = "0.5.0" 1811 | source = "registry+https://github.com/rust-lang/crates.io-index" 1812 | checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" 1813 | dependencies = [ 1814 | "js-sys", 1815 | "serde", 1816 | "wasm-bindgen", 1817 | ] 1818 | 1819 | [[package]] 1820 | name = "serde_derive" 1821 | version = "1.0.215" 1822 | source = "registry+https://github.com/rust-lang/crates.io-index" 1823 | checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" 1824 | dependencies = [ 1825 | "proc-macro2", 1826 | "quote", 1827 | "syn 2.0.89", 1828 | ] 1829 | 1830 | [[package]] 1831 | name = "serde_json" 1832 | version = "1.0.133" 1833 | source = "registry+https://github.com/rust-lang/crates.io-index" 1834 | checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" 1835 | dependencies = [ 1836 | "itoa", 1837 | "memchr", 1838 | "ryu", 1839 | "serde", 1840 | ] 1841 | 1842 | [[package]] 1843 | name = "serde_qs" 1844 | version = "0.12.0" 1845 | source = "registry+https://github.com/rust-lang/crates.io-index" 1846 | checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" 1847 | dependencies = [ 1848 | "percent-encoding", 1849 | "serde", 1850 | "thiserror", 1851 | ] 1852 | 1853 | [[package]] 1854 | name = "serde_urlencoded" 1855 | version = "0.7.1" 1856 | source = "registry+https://github.com/rust-lang/crates.io-index" 1857 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1858 | dependencies = [ 1859 | "form_urlencoded", 1860 | "itoa", 1861 | "ryu", 1862 | "serde", 1863 | ] 1864 | 1865 | [[package]] 1866 | name = "server_fn" 1867 | version = "0.5.7" 1868 | source = "registry+https://github.com/rust-lang/crates.io-index" 1869 | checksum = "6c265de965fe48e09ad8899d0ab1ffebdfa1a9914e4de5ff107b07bd94cf7541" 1870 | dependencies = [ 1871 | "ciborium", 1872 | "const_format", 1873 | "gloo-net", 1874 | "js-sys", 1875 | "lazy_static", 1876 | "once_cell", 1877 | "proc-macro2", 1878 | "quote", 1879 | "reqwest 0.11.27", 1880 | "serde", 1881 | "serde_json", 1882 | "serde_qs", 1883 | "server_fn_macro_default", 1884 | "syn 2.0.89", 1885 | "thiserror", 1886 | "xxhash-rust", 1887 | ] 1888 | 1889 | [[package]] 1890 | name = "server_fn_macro" 1891 | version = "0.5.7" 1892 | source = "registry+https://github.com/rust-lang/crates.io-index" 1893 | checksum = "f77000541a62ceeec01eef3ee0f86c155c33dac5fae750ad04a40852c6d5469a" 1894 | dependencies = [ 1895 | "const_format", 1896 | "proc-macro-error", 1897 | "proc-macro2", 1898 | "quote", 1899 | "serde", 1900 | "syn 2.0.89", 1901 | "xxhash-rust", 1902 | ] 1903 | 1904 | [[package]] 1905 | name = "server_fn_macro_default" 1906 | version = "0.5.7" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "8a3353f22e2bcc451074d4feaa37317d9d17dff11d4311928384734ea17ab9ca" 1909 | dependencies = [ 1910 | "server_fn_macro", 1911 | "syn 2.0.89", 1912 | ] 1913 | 1914 | [[package]] 1915 | name = "shlex" 1916 | version = "1.3.0" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1919 | 1920 | [[package]] 1921 | name = "simdutf8" 1922 | version = "0.1.4" 1923 | source = "registry+https://github.com/rust-lang/crates.io-index" 1924 | checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" 1925 | 1926 | [[package]] 1927 | name = "slab" 1928 | version = "0.4.9" 1929 | source = "registry+https://github.com/rust-lang/crates.io-index" 1930 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1931 | dependencies = [ 1932 | "autocfg", 1933 | ] 1934 | 1935 | [[package]] 1936 | name = "slotmap" 1937 | version = "1.0.7" 1938 | source = "registry+https://github.com/rust-lang/crates.io-index" 1939 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 1940 | dependencies = [ 1941 | "serde", 1942 | "version_check", 1943 | ] 1944 | 1945 | [[package]] 1946 | name = "smallvec" 1947 | version = "1.13.2" 1948 | source = "registry+https://github.com/rust-lang/crates.io-index" 1949 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1950 | 1951 | [[package]] 1952 | name = "socket2" 1953 | version = "0.5.7" 1954 | source = "registry+https://github.com/rust-lang/crates.io-index" 1955 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 1956 | dependencies = [ 1957 | "libc", 1958 | "windows-sys 0.52.0", 1959 | ] 1960 | 1961 | [[package]] 1962 | name = "spin" 1963 | version = "0.9.8" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1966 | 1967 | [[package]] 1968 | name = "strsim" 1969 | version = "0.10.0" 1970 | source = "registry+https://github.com/rust-lang/crates.io-index" 1971 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1972 | 1973 | [[package]] 1974 | name = "subtle" 1975 | version = "2.6.1" 1976 | source = "registry+https://github.com/rust-lang/crates.io-index" 1977 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1978 | 1979 | [[package]] 1980 | name = "syn" 1981 | version = "1.0.109" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1984 | dependencies = [ 1985 | "proc-macro2", 1986 | "quote", 1987 | "unicode-ident", 1988 | ] 1989 | 1990 | [[package]] 1991 | name = "syn" 1992 | version = "2.0.89" 1993 | source = "registry+https://github.com/rust-lang/crates.io-index" 1994 | checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" 1995 | dependencies = [ 1996 | "proc-macro2", 1997 | "quote", 1998 | "unicode-ident", 1999 | ] 2000 | 2001 | [[package]] 2002 | name = "syn_derive" 2003 | version = "0.1.8" 2004 | source = "registry+https://github.com/rust-lang/crates.io-index" 2005 | checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" 2006 | dependencies = [ 2007 | "proc-macro-error", 2008 | "proc-macro2", 2009 | "quote", 2010 | "syn 2.0.89", 2011 | ] 2012 | 2013 | [[package]] 2014 | name = "sync_wrapper" 2015 | version = "0.1.2" 2016 | source = "registry+https://github.com/rust-lang/crates.io-index" 2017 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 2018 | 2019 | [[package]] 2020 | name = "sync_wrapper" 2021 | version = "1.0.1" 2022 | source = "registry+https://github.com/rust-lang/crates.io-index" 2023 | checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" 2024 | dependencies = [ 2025 | "futures-core", 2026 | ] 2027 | 2028 | [[package]] 2029 | name = "system-configuration" 2030 | version = "0.5.1" 2031 | source = "registry+https://github.com/rust-lang/crates.io-index" 2032 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 2033 | dependencies = [ 2034 | "bitflags 1.3.2", 2035 | "core-foundation", 2036 | "system-configuration-sys 0.5.0", 2037 | ] 2038 | 2039 | [[package]] 2040 | name = "system-configuration" 2041 | version = "0.6.1" 2042 | source = "registry+https://github.com/rust-lang/crates.io-index" 2043 | checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 2044 | dependencies = [ 2045 | "bitflags 2.6.0", 2046 | "core-foundation", 2047 | "system-configuration-sys 0.6.0", 2048 | ] 2049 | 2050 | [[package]] 2051 | name = "system-configuration-sys" 2052 | version = "0.5.0" 2053 | source = "registry+https://github.com/rust-lang/crates.io-index" 2054 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 2055 | dependencies = [ 2056 | "core-foundation-sys", 2057 | "libc", 2058 | ] 2059 | 2060 | [[package]] 2061 | name = "system-configuration-sys" 2062 | version = "0.6.0" 2063 | source = "registry+https://github.com/rust-lang/crates.io-index" 2064 | checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 2065 | dependencies = [ 2066 | "core-foundation-sys", 2067 | "libc", 2068 | ] 2069 | 2070 | [[package]] 2071 | name = "tap" 2072 | version = "1.0.1" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 2075 | 2076 | [[package]] 2077 | name = "tempfile" 2078 | version = "3.13.0" 2079 | source = "registry+https://github.com/rust-lang/crates.io-index" 2080 | checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" 2081 | dependencies = [ 2082 | "cfg-if", 2083 | "fastrand", 2084 | "once_cell", 2085 | "rustix", 2086 | "windows-sys 0.59.0", 2087 | ] 2088 | 2089 | [[package]] 2090 | name = "termfolio" 2091 | version = "0.1.0" 2092 | dependencies = [ 2093 | "leptos", 2094 | "leptos-use", 2095 | "reqwest 0.12.9", 2096 | "serde", 2097 | "serde_json", 2098 | "tokio", 2099 | ] 2100 | 2101 | [[package]] 2102 | name = "thiserror" 2103 | version = "1.0.64" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" 2106 | dependencies = [ 2107 | "thiserror-impl", 2108 | ] 2109 | 2110 | [[package]] 2111 | name = "thiserror-impl" 2112 | version = "1.0.64" 2113 | source = "registry+https://github.com/rust-lang/crates.io-index" 2114 | checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" 2115 | dependencies = [ 2116 | "proc-macro2", 2117 | "quote", 2118 | "syn 2.0.89", 2119 | ] 2120 | 2121 | [[package]] 2122 | name = "tinyvec" 2123 | version = "1.8.0" 2124 | source = "registry+https://github.com/rust-lang/crates.io-index" 2125 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 2126 | dependencies = [ 2127 | "tinyvec_macros", 2128 | ] 2129 | 2130 | [[package]] 2131 | name = "tinyvec_macros" 2132 | version = "0.1.1" 2133 | source = "registry+https://github.com/rust-lang/crates.io-index" 2134 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2135 | 2136 | [[package]] 2137 | name = "tokio" 2138 | version = "1.41.1" 2139 | source = "registry+https://github.com/rust-lang/crates.io-index" 2140 | checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" 2141 | dependencies = [ 2142 | "backtrace", 2143 | "bytes", 2144 | "libc", 2145 | "mio", 2146 | "pin-project-lite", 2147 | "socket2", 2148 | "tokio-macros", 2149 | "windows-sys 0.52.0", 2150 | ] 2151 | 2152 | [[package]] 2153 | name = "tokio-macros" 2154 | version = "2.4.0" 2155 | source = "registry+https://github.com/rust-lang/crates.io-index" 2156 | checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 2157 | dependencies = [ 2158 | "proc-macro2", 2159 | "quote", 2160 | "syn 2.0.89", 2161 | ] 2162 | 2163 | [[package]] 2164 | name = "tokio-native-tls" 2165 | version = "0.3.1" 2166 | source = "registry+https://github.com/rust-lang/crates.io-index" 2167 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 2168 | dependencies = [ 2169 | "native-tls", 2170 | "tokio", 2171 | ] 2172 | 2173 | [[package]] 2174 | name = "tokio-rustls" 2175 | version = "0.26.0" 2176 | source = "registry+https://github.com/rust-lang/crates.io-index" 2177 | checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" 2178 | dependencies = [ 2179 | "rustls", 2180 | "rustls-pki-types", 2181 | "tokio", 2182 | ] 2183 | 2184 | [[package]] 2185 | name = "tokio-util" 2186 | version = "0.7.12" 2187 | source = "registry+https://github.com/rust-lang/crates.io-index" 2188 | checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" 2189 | dependencies = [ 2190 | "bytes", 2191 | "futures-core", 2192 | "futures-sink", 2193 | "pin-project-lite", 2194 | "tokio", 2195 | ] 2196 | 2197 | [[package]] 2198 | name = "toml" 2199 | version = "0.5.11" 2200 | source = "registry+https://github.com/rust-lang/crates.io-index" 2201 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 2202 | dependencies = [ 2203 | "serde", 2204 | ] 2205 | 2206 | [[package]] 2207 | name = "tower-service" 2208 | version = "0.3.3" 2209 | source = "registry+https://github.com/rust-lang/crates.io-index" 2210 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 2211 | 2212 | [[package]] 2213 | name = "tracing" 2214 | version = "0.1.40" 2215 | source = "registry+https://github.com/rust-lang/crates.io-index" 2216 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 2217 | dependencies = [ 2218 | "pin-project-lite", 2219 | "tracing-attributes", 2220 | "tracing-core", 2221 | ] 2222 | 2223 | [[package]] 2224 | name = "tracing-attributes" 2225 | version = "0.1.27" 2226 | source = "registry+https://github.com/rust-lang/crates.io-index" 2227 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 2228 | dependencies = [ 2229 | "proc-macro2", 2230 | "quote", 2231 | "syn 2.0.89", 2232 | ] 2233 | 2234 | [[package]] 2235 | name = "tracing-core" 2236 | version = "0.1.32" 2237 | source = "registry+https://github.com/rust-lang/crates.io-index" 2238 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 2239 | dependencies = [ 2240 | "once_cell", 2241 | ] 2242 | 2243 | [[package]] 2244 | name = "try-lock" 2245 | version = "0.2.5" 2246 | source = "registry+https://github.com/rust-lang/crates.io-index" 2247 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2248 | 2249 | [[package]] 2250 | name = "typed-builder" 2251 | version = "0.18.2" 2252 | source = "registry+https://github.com/rust-lang/crates.io-index" 2253 | checksum = "77739c880e00693faef3d65ea3aad725f196da38b22fdc7ea6ded6e1ce4d3add" 2254 | dependencies = [ 2255 | "typed-builder-macro", 2256 | ] 2257 | 2258 | [[package]] 2259 | name = "typed-builder-macro" 2260 | version = "0.18.2" 2261 | source = "registry+https://github.com/rust-lang/crates.io-index" 2262 | checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" 2263 | dependencies = [ 2264 | "proc-macro2", 2265 | "quote", 2266 | "syn 2.0.89", 2267 | ] 2268 | 2269 | [[package]] 2270 | name = "unicode-bidi" 2271 | version = "0.3.17" 2272 | source = "registry+https://github.com/rust-lang/crates.io-index" 2273 | checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" 2274 | 2275 | [[package]] 2276 | name = "unicode-ident" 2277 | version = "1.0.13" 2278 | source = "registry+https://github.com/rust-lang/crates.io-index" 2279 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 2280 | 2281 | [[package]] 2282 | name = "unicode-normalization" 2283 | version = "0.1.24" 2284 | source = "registry+https://github.com/rust-lang/crates.io-index" 2285 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 2286 | dependencies = [ 2287 | "tinyvec", 2288 | ] 2289 | 2290 | [[package]] 2291 | name = "unicode-segmentation" 2292 | version = "1.11.0" 2293 | source = "registry+https://github.com/rust-lang/crates.io-index" 2294 | checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 2295 | 2296 | [[package]] 2297 | name = "unicode-xid" 2298 | version = "0.2.4" 2299 | source = "registry+https://github.com/rust-lang/crates.io-index" 2300 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 2301 | 2302 | [[package]] 2303 | name = "untrusted" 2304 | version = "0.9.0" 2305 | source = "registry+https://github.com/rust-lang/crates.io-index" 2306 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 2307 | 2308 | [[package]] 2309 | name = "url" 2310 | version = "2.5.2" 2311 | source = "registry+https://github.com/rust-lang/crates.io-index" 2312 | checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 2313 | dependencies = [ 2314 | "form_urlencoded", 2315 | "idna", 2316 | "percent-encoding", 2317 | ] 2318 | 2319 | [[package]] 2320 | name = "utf8-width" 2321 | version = "0.1.7" 2322 | source = "registry+https://github.com/rust-lang/crates.io-index" 2323 | checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" 2324 | 2325 | [[package]] 2326 | name = "uuid" 2327 | version = "1.8.0" 2328 | source = "registry+https://github.com/rust-lang/crates.io-index" 2329 | checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" 2330 | dependencies = [ 2331 | "getrandom", 2332 | ] 2333 | 2334 | [[package]] 2335 | name = "vcpkg" 2336 | version = "0.2.15" 2337 | source = "registry+https://github.com/rust-lang/crates.io-index" 2338 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2339 | 2340 | [[package]] 2341 | name = "version_check" 2342 | version = "0.9.5" 2343 | source = "registry+https://github.com/rust-lang/crates.io-index" 2344 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2345 | 2346 | [[package]] 2347 | name = "walkdir" 2348 | version = "2.5.0" 2349 | source = "registry+https://github.com/rust-lang/crates.io-index" 2350 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 2351 | dependencies = [ 2352 | "same-file", 2353 | "winapi-util", 2354 | ] 2355 | 2356 | [[package]] 2357 | name = "want" 2358 | version = "0.3.1" 2359 | source = "registry+https://github.com/rust-lang/crates.io-index" 2360 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 2361 | dependencies = [ 2362 | "try-lock", 2363 | ] 2364 | 2365 | [[package]] 2366 | name = "wasi" 2367 | version = "0.11.0+wasi-snapshot-preview1" 2368 | source = "registry+https://github.com/rust-lang/crates.io-index" 2369 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2370 | 2371 | [[package]] 2372 | name = "wasm-bindgen" 2373 | version = "0.2.92" 2374 | source = "registry+https://github.com/rust-lang/crates.io-index" 2375 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 2376 | dependencies = [ 2377 | "cfg-if", 2378 | "wasm-bindgen-macro", 2379 | ] 2380 | 2381 | [[package]] 2382 | name = "wasm-bindgen-backend" 2383 | version = "0.2.92" 2384 | source = "registry+https://github.com/rust-lang/crates.io-index" 2385 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 2386 | dependencies = [ 2387 | "bumpalo", 2388 | "log", 2389 | "once_cell", 2390 | "proc-macro2", 2391 | "quote", 2392 | "syn 2.0.89", 2393 | "wasm-bindgen-shared", 2394 | ] 2395 | 2396 | [[package]] 2397 | name = "wasm-bindgen-futures" 2398 | version = "0.4.42" 2399 | source = "registry+https://github.com/rust-lang/crates.io-index" 2400 | checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" 2401 | dependencies = [ 2402 | "cfg-if", 2403 | "js-sys", 2404 | "wasm-bindgen", 2405 | "web-sys", 2406 | ] 2407 | 2408 | [[package]] 2409 | name = "wasm-bindgen-macro" 2410 | version = "0.2.92" 2411 | source = "registry+https://github.com/rust-lang/crates.io-index" 2412 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 2413 | dependencies = [ 2414 | "quote", 2415 | "wasm-bindgen-macro-support", 2416 | ] 2417 | 2418 | [[package]] 2419 | name = "wasm-bindgen-macro-support" 2420 | version = "0.2.92" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 2423 | dependencies = [ 2424 | "proc-macro2", 2425 | "quote", 2426 | "syn 2.0.89", 2427 | "wasm-bindgen-backend", 2428 | "wasm-bindgen-shared", 2429 | ] 2430 | 2431 | [[package]] 2432 | name = "wasm-bindgen-shared" 2433 | version = "0.2.92" 2434 | source = "registry+https://github.com/rust-lang/crates.io-index" 2435 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 2436 | 2437 | [[package]] 2438 | name = "web-sys" 2439 | version = "0.3.69" 2440 | source = "registry+https://github.com/rust-lang/crates.io-index" 2441 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 2442 | dependencies = [ 2443 | "js-sys", 2444 | "wasm-bindgen", 2445 | ] 2446 | 2447 | [[package]] 2448 | name = "winapi" 2449 | version = "0.3.9" 2450 | source = "registry+https://github.com/rust-lang/crates.io-index" 2451 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2452 | dependencies = [ 2453 | "winapi-i686-pc-windows-gnu", 2454 | "winapi-x86_64-pc-windows-gnu", 2455 | ] 2456 | 2457 | [[package]] 2458 | name = "winapi-i686-pc-windows-gnu" 2459 | version = "0.4.0" 2460 | source = "registry+https://github.com/rust-lang/crates.io-index" 2461 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2462 | 2463 | [[package]] 2464 | name = "winapi-util" 2465 | version = "0.1.6" 2466 | source = "registry+https://github.com/rust-lang/crates.io-index" 2467 | checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 2468 | dependencies = [ 2469 | "winapi", 2470 | ] 2471 | 2472 | [[package]] 2473 | name = "winapi-x86_64-pc-windows-gnu" 2474 | version = "0.4.0" 2475 | source = "registry+https://github.com/rust-lang/crates.io-index" 2476 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2477 | 2478 | [[package]] 2479 | name = "windows-registry" 2480 | version = "0.2.0" 2481 | source = "registry+https://github.com/rust-lang/crates.io-index" 2482 | checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" 2483 | dependencies = [ 2484 | "windows-result", 2485 | "windows-strings", 2486 | "windows-targets 0.52.6", 2487 | ] 2488 | 2489 | [[package]] 2490 | name = "windows-result" 2491 | version = "0.2.0" 2492 | source = "registry+https://github.com/rust-lang/crates.io-index" 2493 | checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 2494 | dependencies = [ 2495 | "windows-targets 0.52.6", 2496 | ] 2497 | 2498 | [[package]] 2499 | name = "windows-strings" 2500 | version = "0.1.0" 2501 | source = "registry+https://github.com/rust-lang/crates.io-index" 2502 | checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 2503 | dependencies = [ 2504 | "windows-result", 2505 | "windows-targets 0.52.6", 2506 | ] 2507 | 2508 | [[package]] 2509 | name = "windows-sys" 2510 | version = "0.48.0" 2511 | source = "registry+https://github.com/rust-lang/crates.io-index" 2512 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 2513 | dependencies = [ 2514 | "windows-targets 0.48.5", 2515 | ] 2516 | 2517 | [[package]] 2518 | name = "windows-sys" 2519 | version = "0.52.0" 2520 | source = "registry+https://github.com/rust-lang/crates.io-index" 2521 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2522 | dependencies = [ 2523 | "windows-targets 0.52.6", 2524 | ] 2525 | 2526 | [[package]] 2527 | name = "windows-sys" 2528 | version = "0.59.0" 2529 | source = "registry+https://github.com/rust-lang/crates.io-index" 2530 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2531 | dependencies = [ 2532 | "windows-targets 0.52.6", 2533 | ] 2534 | 2535 | [[package]] 2536 | name = "windows-targets" 2537 | version = "0.48.5" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 2540 | dependencies = [ 2541 | "windows_aarch64_gnullvm 0.48.5", 2542 | "windows_aarch64_msvc 0.48.5", 2543 | "windows_i686_gnu 0.48.5", 2544 | "windows_i686_msvc 0.48.5", 2545 | "windows_x86_64_gnu 0.48.5", 2546 | "windows_x86_64_gnullvm 0.48.5", 2547 | "windows_x86_64_msvc 0.48.5", 2548 | ] 2549 | 2550 | [[package]] 2551 | name = "windows-targets" 2552 | version = "0.52.6" 2553 | source = "registry+https://github.com/rust-lang/crates.io-index" 2554 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2555 | dependencies = [ 2556 | "windows_aarch64_gnullvm 0.52.6", 2557 | "windows_aarch64_msvc 0.52.6", 2558 | "windows_i686_gnu 0.52.6", 2559 | "windows_i686_gnullvm", 2560 | "windows_i686_msvc 0.52.6", 2561 | "windows_x86_64_gnu 0.52.6", 2562 | "windows_x86_64_gnullvm 0.52.6", 2563 | "windows_x86_64_msvc 0.52.6", 2564 | ] 2565 | 2566 | [[package]] 2567 | name = "windows_aarch64_gnullvm" 2568 | version = "0.48.5" 2569 | source = "registry+https://github.com/rust-lang/crates.io-index" 2570 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 2571 | 2572 | [[package]] 2573 | name = "windows_aarch64_gnullvm" 2574 | version = "0.52.6" 2575 | source = "registry+https://github.com/rust-lang/crates.io-index" 2576 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2577 | 2578 | [[package]] 2579 | name = "windows_aarch64_msvc" 2580 | version = "0.48.5" 2581 | source = "registry+https://github.com/rust-lang/crates.io-index" 2582 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 2583 | 2584 | [[package]] 2585 | name = "windows_aarch64_msvc" 2586 | version = "0.52.6" 2587 | source = "registry+https://github.com/rust-lang/crates.io-index" 2588 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2589 | 2590 | [[package]] 2591 | name = "windows_i686_gnu" 2592 | version = "0.48.5" 2593 | source = "registry+https://github.com/rust-lang/crates.io-index" 2594 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2595 | 2596 | [[package]] 2597 | name = "windows_i686_gnu" 2598 | version = "0.52.6" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2601 | 2602 | [[package]] 2603 | name = "windows_i686_gnullvm" 2604 | version = "0.52.6" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2607 | 2608 | [[package]] 2609 | name = "windows_i686_msvc" 2610 | version = "0.48.5" 2611 | source = "registry+https://github.com/rust-lang/crates.io-index" 2612 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2613 | 2614 | [[package]] 2615 | name = "windows_i686_msvc" 2616 | version = "0.52.6" 2617 | source = "registry+https://github.com/rust-lang/crates.io-index" 2618 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2619 | 2620 | [[package]] 2621 | name = "windows_x86_64_gnu" 2622 | version = "0.48.5" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2625 | 2626 | [[package]] 2627 | name = "windows_x86_64_gnu" 2628 | version = "0.52.6" 2629 | source = "registry+https://github.com/rust-lang/crates.io-index" 2630 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2631 | 2632 | [[package]] 2633 | name = "windows_x86_64_gnullvm" 2634 | version = "0.48.5" 2635 | source = "registry+https://github.com/rust-lang/crates.io-index" 2636 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2637 | 2638 | [[package]] 2639 | name = "windows_x86_64_gnullvm" 2640 | version = "0.52.6" 2641 | source = "registry+https://github.com/rust-lang/crates.io-index" 2642 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2643 | 2644 | [[package]] 2645 | name = "windows_x86_64_msvc" 2646 | version = "0.48.5" 2647 | source = "registry+https://github.com/rust-lang/crates.io-index" 2648 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2649 | 2650 | [[package]] 2651 | name = "windows_x86_64_msvc" 2652 | version = "0.52.6" 2653 | source = "registry+https://github.com/rust-lang/crates.io-index" 2654 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2655 | 2656 | [[package]] 2657 | name = "winreg" 2658 | version = "0.50.0" 2659 | source = "registry+https://github.com/rust-lang/crates.io-index" 2660 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 2661 | dependencies = [ 2662 | "cfg-if", 2663 | "windows-sys 0.48.0", 2664 | ] 2665 | 2666 | [[package]] 2667 | name = "wyz" 2668 | version = "0.5.1" 2669 | source = "registry+https://github.com/rust-lang/crates.io-index" 2670 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 2671 | dependencies = [ 2672 | "tap", 2673 | ] 2674 | 2675 | [[package]] 2676 | name = "xxhash-rust" 2677 | version = "0.8.10" 2678 | source = "registry+https://github.com/rust-lang/crates.io-index" 2679 | checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03" 2680 | 2681 | [[package]] 2682 | name = "yansi" 2683 | version = "1.0.1" 2684 | source = "registry+https://github.com/rust-lang/crates.io-index" 2685 | checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 2686 | 2687 | [[package]] 2688 | name = "zeroize" 2689 | version = "1.8.1" 2690 | source = "registry+https://github.com/rust-lang/crates.io-index" 2691 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 2692 | --------------------------------------------------------------------------------