├── .gitignore ├── docs ├── sys_view.png └── ip_settings.png ├── example ├── .gitignore ├── .cargo │ └── config.toml ├── src │ └── main.rs ├── Cargo.toml └── Cargo.lock ├── server ├── Cargo.toml ├── src │ ├── main.rs │ ├── lib.rs │ └── packet.rs └── Cargo.lock ├── README.md └── esp-xray ├── Cargo.toml ├── src └── lib.rs └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | **/target 2 | -------------------------------------------------------------------------------- /docs/sys_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bjoernQ/esp-xray/main/docs/sys_view.png -------------------------------------------------------------------------------- /docs/ip_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bjoernQ/esp-xray/main/docs/ip_settings.png -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | debug/ 4 | target/ 5 | 6 | # These are backup files generated by rustfmt 7 | **/*.rs.bk 8 | 9 | # MSVC Windows builds of rustc generate these, which store debugging information 10 | *.pdb 11 | -------------------------------------------------------------------------------- /server/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "esp-xray-server" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | log = { version = "0.4.22", default-features = false } 8 | probe-rs = { git = "https://github.com/probe-rs/probe-rs", rev = "9b97265f61f07b6dc8765b9f2daf0ac64b86b0c9", package = "probe-rs" } 9 | pretty_env_logger = "0.5.0" 10 | clap = { version = "4.5.18", features = ["derive"] } 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Experiment 2 | 3 | Visualize embassy task scheduling in System View. 4 | 5 | ![example](./docs/sys_view.png) 6 | 7 | ## How 8 | 9 | - Run the example via `cargo esp32c6` 10 | - Run the server via `cargo run --release -- --chip=esp32c6` - it will connect via probe-rs 11 | - Run SystemView 12 | - Target / Recorder Configuration / IP 13 | - IP 127.0.0.1 / PORT 7878 14 | 15 | ![config](./docs/ip_settings.png) 16 | -------------------------------------------------------------------------------- /esp-xray/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "esp-xray" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | rtos-trace = "0.1.3" 8 | rtt-target = "0.5.0" 9 | critical-section = "1.1.3" 10 | esp-hal = { version = "0.20.1" } 11 | 12 | [features] 13 | esp32c2 = [ "esp-hal/esp32c2" ] 14 | esp32c3 = [ "esp-hal/esp32c3" ] 15 | esp32c6 = [ "esp-hal/esp32c6" ] 16 | esp32h2 = [ "esp-hal/esp32h2" ] 17 | esp32s2 = [ "esp-hal/esp32s2" ] 18 | esp32s3 = [ "esp-hal/esp32s3" ] 19 | -------------------------------------------------------------------------------- /example/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [alias] 2 | esp32c2 = "run --release --features=esp32c2 --target=riscv32imc-unknown-none-elf" 3 | esp32c3 = "run --release --features=esp32c3 --target=riscv32imc-unknown-none-elf" 4 | esp32c6 = "run --release --features=esp32c6 --target=riscv32imac-unknown-none-elf" 5 | esp32h2 = "run --release --features=esp32h2 --target=riscv32imac-unknown-none-elf" 6 | esp32p4 = "run --release --features=esp32p4 --target=riscv32imafc-unknown-none-elf" 7 | esp32s2 = "run --release --features=esp32s2 --target=xtensa-esp32s2-none-elf" 8 | esp32s3 = "run --release --features=esp32s3 --target=xtensa-esp32s3-none-elf" 9 | 10 | [target.'cfg(target_arch = "riscv32")'] 11 | runner = "espflash flash --monitor" 12 | rustflags = [ 13 | "-C", "link-arg=-Tlinkall.x", 14 | "-C", "force-frame-pointers", 15 | ] 16 | 17 | [target.'cfg(target_arch = "xtensa")'] 18 | runner = "espflash flash --monitor" 19 | rustflags = [ 20 | # GNU LD 21 | "-C", "link-arg=-Wl,-Tlinkall.x", 22 | "-C", "link-arg=-nostartfiles", 23 | 24 | # LLD 25 | # "-C", "link-arg=-Tlinkall.x", 26 | # "-C", "linker=rust-lld", 27 | ] 28 | 29 | [unstable] 30 | build-std = ["core"] 31 | -------------------------------------------------------------------------------- /example/src/main.rs: -------------------------------------------------------------------------------- 1 | #![no_std] 2 | #![no_main] 3 | #![feature(type_alias_impl_trait)] 4 | #![feature(impl_trait_in_assoc_type)] 5 | 6 | use embassy_executor::Spawner; 7 | use embassy_time::{Duration, Timer}; 8 | use esp_backtrace as _; 9 | use esp_hal::{ 10 | clock::ClockControl, peripherals::Peripherals, prelude::*, system::SystemControl, 11 | timer::timg::TimerGroup, 12 | }; 13 | use esp_xray as _; 14 | 15 | #[embassy_executor::task] 16 | async fn run() { 17 | loop { 18 | esp_println::println!("Hello world"); 19 | for _ in 0..10000 {} 20 | Timer::after(Duration::from_millis(10)).await; 21 | } 22 | } 23 | 24 | #[main] 25 | async fn main(spawner: Spawner) { 26 | esp_println::logger::init_logger_from_env(); 27 | 28 | let peripherals = Peripherals::take(); 29 | let system = SystemControl::new(peripherals.SYSTEM); 30 | let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); 31 | 32 | let mut rng = esp_hal::rng::Rng::new(peripherals.RNG); 33 | 34 | let timg0 = TimerGroup::new(peripherals.TIMG0, &clocks); 35 | esp_hal_embassy::init(&clocks, timg0.timer0); 36 | 37 | spawner.spawn(run()).ok(); 38 | 39 | loop { 40 | esp_println::println!("Bing!"); 41 | for _ in 0..22000 {} 42 | Timer::after(Duration::from_millis( 43 | rng.random() as u64 % 10, 44 | )) 45 | .await; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /example/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "esp-xray-example" 3 | version = "0.1.0" 4 | authors = ["bjoernQ "] 5 | edition = "2021" 6 | license = "MIT OR Apache-2.0" 7 | 8 | [dependencies] 9 | esp-hal = { version = "0.20.1", features = ["async"] } 10 | esp-hal-embassy = { version = "0.3.0" } 11 | esp-backtrace = { version = "0.14.1", features = [ 12 | "panic-handler", 13 | "exception-handler", 14 | "println", 15 | ] } 16 | esp-println = { version = "0.11.0", features = ["log"] } 17 | 18 | embassy-executor = { version = "0.6.0", features = ["nightly", "rtos-trace", "integrated-timers"] } 19 | 20 | embassy-time = { version = "0.3.2" } 21 | 22 | esp-xray = { path = "../esp-xray" } 23 | 24 | [features] 25 | esp32s2 = [ 26 | "esp-hal/esp32s2", 27 | "esp-hal-embassy/esp32s2", 28 | "esp-backtrace/esp32s2", 29 | "esp-println/esp32s2", 30 | "esp-xray/esp32s2", 31 | ] 32 | esp32s3 = [ 33 | "esp-hal/esp32s3", 34 | "esp-hal-embassy/esp32s3", 35 | "esp-backtrace/esp32s3", 36 | "esp-println/esp32s3", 37 | "esp-xray/esp32s3", 38 | ] 39 | esp32c2 = [ 40 | "esp-hal/esp32c2", 41 | "esp-hal-embassy/esp32c2", 42 | "esp-backtrace/esp32c2", 43 | "esp-println/esp32c2", 44 | "esp-xray/esp32c2", 45 | ] 46 | esp32c3 = [ 47 | "esp-hal/esp32c3", 48 | "esp-hal-embassy/esp32c3", 49 | "esp-backtrace/esp32c3", 50 | "esp-println/esp32c3", 51 | "esp-xray/esp32c3", 52 | ] 53 | esp32c6 = [ 54 | "esp-hal/esp32c6", 55 | "esp-hal-embassy/esp32c6", 56 | "esp-backtrace/esp32c6", 57 | "esp-println/esp32c6", 58 | "esp-xray/esp32c6", 59 | ] 60 | esp32h2 = [ 61 | "esp-hal/esp32h2", 62 | "esp-hal-embassy/esp32h2", 63 | "esp-backtrace/esp32h2", 64 | "esp-println/esp32h2", 65 | "esp-xray/esp32h2", 66 | ] 67 | -------------------------------------------------------------------------------- /esp-xray/src/lib.rs: -------------------------------------------------------------------------------- 1 | #![no_std] 2 | 3 | use core::cell::RefCell; 4 | 5 | use critical_section::Mutex; 6 | use rtos_trace::RtosTrace; 7 | use rtt_target::ChannelMode::NoBlockSkip; 8 | use rtt_target::{rtt_init, UpChannel}; 9 | 10 | struct RtosTraceImpl; 11 | 12 | enum Event { 13 | TaskNew = 1, 14 | TaskExecBegin, 15 | TaskExecEnd, 16 | TaskReadyBegin, 17 | TaskReadyEnd, 18 | SystemIdle, 19 | } 20 | 21 | impl RtosTrace for RtosTraceImpl { 22 | fn task_new(id: u32) { 23 | let mut buffer = [0u8; 16]; 24 | buffer[0] = Event::TaskNew as u8; 25 | let pos = encode_u32(id, &mut buffer, 1); 26 | let pos = encode_u32(get_ts_delta(), &mut buffer, pos); 27 | post(&buffer[..pos]); 28 | } 29 | 30 | fn task_exec_begin(id: u32) { 31 | let mut buffer = [0u8; 16]; 32 | buffer[0] = Event::TaskExecBegin as u8; 33 | let pos = encode_u32(id, &mut buffer, 1); 34 | let pos = encode_u32(get_ts_delta(), &mut buffer, pos); 35 | post(&buffer[..pos]); 36 | } 37 | 38 | fn task_exec_end() { 39 | let mut buffer = [0u8; 16]; 40 | buffer[0] = Event::TaskExecEnd as u8; 41 | let pos = encode_u32(get_ts_delta(), &mut buffer, 1); 42 | post(&buffer[..pos]); 43 | } 44 | 45 | fn task_ready_begin(id: u32) { 46 | let mut buffer = [0u8; 16]; 47 | buffer[0] = Event::TaskReadyBegin as u8; 48 | let pos = encode_u32(id, &mut buffer, 1); 49 | let pos = encode_u32(get_ts_delta(), &mut buffer, pos); 50 | post(&buffer[..pos]); 51 | } 52 | 53 | fn task_ready_end(id: u32) { 54 | let mut buffer = [0u8; 16]; 55 | buffer[0] = Event::TaskReadyEnd as u8; 56 | let pos = encode_u32(id, &mut buffer, 1); 57 | let pos = encode_u32(get_ts_delta(), &mut buffer, pos); 58 | post(&buffer[..pos]); 59 | } 60 | 61 | fn system_idle() { 62 | let mut buffer = [0u8; 16]; 63 | buffer[0] = Event::SystemIdle as u8; 64 | let pos = encode_u32(get_ts_delta(), &mut buffer, 1); 65 | post(&buffer[..pos]); 66 | } 67 | 68 | fn task_send_info(_id: u32, _info: rtos_trace::TaskInfo) {} 69 | 70 | fn task_terminate(_id: u32) {} 71 | 72 | fn isr_enter() {} 73 | 74 | fn isr_exit() {} 75 | 76 | fn isr_exit_to_scheduler() {} 77 | 78 | fn marker(_id: u32) {} 79 | 80 | fn marker_begin(_id: u32) {} 81 | 82 | fn marker_end(_id: u32) {} 83 | } 84 | 85 | rtos_trace::global_trace! {RtosTraceImpl} 86 | 87 | static CHANNEL: Mutex>> = Mutex::new(RefCell::new(None)); 88 | static LAST_TS: Mutex> = Mutex::new(RefCell::new(0)); 89 | 90 | fn get_ts_delta() -> u32 { 91 | critical_section::with(|cs| { 92 | let last = LAST_TS.take(cs); 93 | let now = esp_hal::time::current_time().ticks(); 94 | LAST_TS.replace(cs, now); 95 | 96 | if last == 0 { 97 | 0 98 | } else { 99 | (now - last) as u32 100 | } 101 | }) 102 | } 103 | 104 | fn encode_u32(mut value: u32, buffer: &mut [u8], mut count: usize) -> usize { 105 | while value > 0x7F { 106 | buffer[count] = (value | 0x80) as u8; 107 | count += 1; 108 | value >>= 7; 109 | } 110 | buffer[count] = value as u8; 111 | count += 1; 112 | 113 | count 114 | } 115 | 116 | fn post(data: &[u8]) { 117 | critical_section::with(|cs| { 118 | if CHANNEL.borrow_ref_mut(cs).is_none() { 119 | let channels = rtt_init! { 120 | up: { 121 | 0: { 122 | size: 1024, 123 | mode: NoBlockSkip, 124 | name: "Xray" 125 | } 126 | } 127 | }; 128 | CHANNEL.borrow_ref_mut(cs).replace(channels.up.0); 129 | } 130 | let mut channel = CHANNEL.borrow_ref_mut(cs); 131 | let channel = channel.as_mut().unwrap(); 132 | channel.write(data); 133 | }); 134 | } 135 | -------------------------------------------------------------------------------- /server/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::net::TcpListener; 2 | 3 | use esp_xray_server::Message; 4 | use probe_rs::config::{MemoryRegion, TargetSelector}; 5 | use probe_rs::rtt::{Rtt, ScanRegion}; 6 | use probe_rs::{probe::list::Lister, Permissions}; 7 | 8 | use clap::Parser; 9 | 10 | enum TargetEvent { 11 | TaskNew = 1, 12 | TaskExecBegin, 13 | TaskExecEnd, 14 | TaskReadyBegin, 15 | TaskReadyEnd, 16 | SystemIdle, 17 | } 18 | 19 | impl TargetEvent { 20 | pub fn from(value: u8) -> Self { 21 | match value { 22 | 1 => Self::TaskNew, 23 | 2 => Self::TaskExecBegin, 24 | 3 => Self::TaskExecEnd, 25 | 4 => Self::TaskReadyBegin, 26 | 5 => Self::TaskReadyEnd, 27 | 6 => Self::SystemIdle, 28 | _ => { 29 | panic!("Unknown Event {value}"); 30 | } 31 | } 32 | } 33 | } 34 | 35 | #[derive(Parser, Debug)] 36 | #[command(author, version, about, long_about = None)] 37 | struct Args { 38 | #[arg(short, long)] 39 | chip: String, 40 | } 41 | 42 | fn normalize(chip_name: &str) -> String { 43 | chip_name.replace('-', "").to_ascii_lowercase() 44 | } 45 | 46 | fn main() { 47 | let args = Args::parse(); 48 | let chip = normalize(&args.chip); 49 | 50 | let lister = Lister::new(); 51 | 52 | let probes = lister.list_all(); 53 | 54 | if probes.is_empty() { 55 | panic!("No debug probes available. Make sure your probe is plugged in, supported and up-to-date."); 56 | } 57 | 58 | let probe = probes[0].open().unwrap(); 59 | 60 | let target_selector = TargetSelector::from(chip); 61 | 62 | let mut session = match probe.attach(target_selector, Permissions::default()) { 63 | Ok(session) => session, 64 | Err(err) => { 65 | panic!("attach failed {:?}", err); 66 | } 67 | }; 68 | 69 | let memory_map: Vec = vec![session 70 | .target() 71 | .memory_map 72 | .clone() 73 | .iter() 74 | .filter(|m| matches!(m, probe_rs::config::MemoryRegion::Ram(_))) 75 | .next() 76 | .unwrap() 77 | .clone()]; 78 | 79 | let mut core = match session.core(0) { 80 | Ok(core) => core, 81 | Err(err) => { 82 | panic!("Error attaching to core # 0 {err}"); 83 | } 84 | }; 85 | 86 | eprintln!("Attaching to RTT... {:x?}", &memory_map); 87 | 88 | let mut rtt = match Rtt::attach_region(&mut core, &ScanRegion::Ram) { 89 | Ok(rtt) => rtt, 90 | Err(err) => { 91 | panic!("Error attaching to RTT: {err}"); 92 | } 93 | }; 94 | 95 | let up_channel = &mut rtt.up_channels()[0]; 96 | 97 | let listener = TcpListener::bind("127.0.0.1:7878").unwrap(); 98 | 99 | println!("Attached ... listening on :7878"); 100 | 101 | if core.core_halted().unwrap() { 102 | core.run().unwrap(); 103 | } 104 | 105 | for stream in listener.incoming() { 106 | let stream = stream.unwrap(); 107 | 108 | println!("Connection established!"); 109 | stream 110 | .set_nonblocking(true) 111 | .expect("Nonblocking support is required"); 112 | 113 | let mut xray = esp_xray_server::SystemViewTarget::new( 114 | esp_xray_server::TcpTransport::default(), 115 | stream, 116 | ); 117 | 118 | let mut buf = [0u8; 1024]; 119 | loop { 120 | if xray.process_incoming() { 121 | println!("Disconnect requested"); 122 | break; 123 | } 124 | 125 | let len = up_channel.read(&mut core, &mut buf).unwrap(); 126 | 127 | if len != 0 { 128 | let mut pos = 0; 129 | while pos < len { 130 | let target_event = TargetEvent::from(buf[pos]); 131 | match target_event { 132 | TargetEvent::TaskNew => { 133 | pos += 1; 134 | let (index, task) = esp_xray_server::packet::decode_u32(&buf, pos); 135 | pos = index; 136 | let (index, ts_delta) = esp_xray_server::packet::decode_u32(&buf, pos); 137 | pos = index; 138 | xray.send(Message::TaskNew(task, ts_delta)); 139 | } 140 | TargetEvent::TaskExecBegin => { 141 | pos += 1; 142 | let (index, task) = esp_xray_server::packet::decode_u32(&buf, pos); 143 | pos = index; 144 | let (index, ts_delta) = esp_xray_server::packet::decode_u32(&buf, pos); 145 | pos = index; 146 | xray.send(Message::TaskExecBegin(task, ts_delta)); 147 | } 148 | TargetEvent::TaskExecEnd => { 149 | pos += 1; 150 | let (index, ts_delta) = esp_xray_server::packet::decode_u32(&buf, pos); 151 | pos = index; 152 | xray.send(Message::TaskExecEnd(ts_delta)); 153 | } 154 | TargetEvent::TaskReadyBegin => { 155 | pos += 1; 156 | let (index, task) = esp_xray_server::packet::decode_u32(&buf, pos); 157 | pos = index; 158 | let (index, ts_delta) = esp_xray_server::packet::decode_u32(&buf, pos); 159 | pos = index; 160 | xray.send(Message::TaskReadyBegin(task, ts_delta)); 161 | } 162 | TargetEvent::TaskReadyEnd => { 163 | pos += 1; 164 | let (index, task) = esp_xray_server::packet::decode_u32(&buf, pos); 165 | pos = index; 166 | let (index, ts_delta) = esp_xray_server::packet::decode_u32(&buf, pos); 167 | pos += index; 168 | xray.send(Message::TaskReadyEnd(task, ts_delta)); 169 | } 170 | TargetEvent::SystemIdle => { 171 | pos += 1; 172 | let (index, ts_delta) = esp_xray_server::packet::decode_u32(&buf, pos); 173 | pos = index; 174 | xray.send(Message::SystemIdle(ts_delta)); 175 | } 176 | } 177 | } 178 | } 179 | } 180 | } 181 | } 182 | -------------------------------------------------------------------------------- /server/src/lib.rs: -------------------------------------------------------------------------------- 1 | use std::io::{Read, Write}; 2 | 3 | use crate::packet::{Cause, Event}; 4 | 5 | pub mod packet; 6 | 7 | #[macro_export] 8 | macro_rules! block { 9 | ($e:expr) => { 10 | loop { 11 | #[allow(unreachable_patterns)] 12 | match $e { 13 | Err(ref e) if e.kind() == std::io::ErrorKind::WouldBlock => {} 14 | Err(e) => 15 | { 16 | #[allow(unreachable_code)] 17 | break Err(e) 18 | } 19 | Ok(x) => break Ok(x), 20 | } 21 | } 22 | }; 23 | } 24 | 25 | #[derive(Debug, Clone, Copy)] 26 | pub enum Error { 27 | UnknownCommand, 28 | } 29 | 30 | #[derive(Debug, Clone, Copy)] 31 | pub enum Message { 32 | Disconnect(u32), 33 | IsrEnter(u8, u32), 34 | IsrExit(u32), 35 | TaskNew(u32, u32), 36 | TaskExecBegin(u32, u32), 37 | TaskExecEnd(u32), 38 | TaskReadyBegin(u32, u32), 39 | TaskReadyEnd(u32, u32), 40 | SystemIdle(u32), 41 | } 42 | 43 | pub trait Transport 44 | where 45 | IO: Read + Write, 46 | { 47 | fn hello(&self, io: &mut IO); 48 | 49 | fn skip_command_len(&self, io: &mut IO) -> bool; 50 | } 51 | 52 | #[derive(Default)] 53 | pub struct TcpTransport {} 54 | 55 | impl Transport for TcpTransport 56 | where 57 | IO: Read + Write, 58 | { 59 | fn hello(&self, io: &mut IO) { 60 | let mut buf = [0u8; 48]; 61 | let _count = block!(io.read(&mut buf)).unwrap(); 62 | 63 | // TODO we should check the host's HELLO 64 | 65 | io.write_all(&[ 66 | b'S', 67 | b'E', 68 | b'G', 69 | b'G', 70 | b'E', 71 | b'R', 72 | b' ', 73 | b'S', 74 | b'y', 75 | b's', 76 | b't', 77 | b'e', 78 | b'm', 79 | b'V', 80 | b'i', 81 | b'e', 82 | b'w', 83 | b' ', 84 | b'V', 85 | b'0' + 3, 86 | b'.', 87 | b'0' + (0 / 10), 88 | b'0' + (0 % 10), 89 | b'.', 90 | b'0' + (0 / 10), 91 | b'0' + (0 % 10), 92 | b'\0', 93 | 0, 94 | 0, 95 | 0, 96 | 0, 97 | 0, 98 | ]) 99 | .unwrap(); 100 | 101 | // AB sync 102 | io.write_all(&[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) 103 | .unwrap(); 104 | } 105 | 106 | fn skip_command_len(&self, io: &mut IO) -> bool { 107 | let mut buf = [0u8]; 108 | match io.read_exact(&mut buf) { 109 | Ok(_) => true, 110 | Err(_) => false, 111 | } 112 | } 113 | } 114 | 115 | // TODO UART 116 | 117 | pub struct SystemViewTarget 118 | where 119 | T: Transport, 120 | IO: Read + Write, 121 | { 122 | transport: T, 123 | io: IO, 124 | } 125 | 126 | impl SystemViewTarget 127 | where 128 | T: Transport, 129 | IO: Read + Write, 130 | { 131 | pub fn new(transport: T, mut io: IO) -> Self { 132 | transport.hello(&mut io); 133 | 134 | let mut cmd = [0u8; 5]; 135 | let mut out = [0u8; 32]; 136 | 137 | // read start command 138 | while !transport.skip_command_len(&mut io) {} 139 | let _count = block!(io.read(&mut cmd)).unwrap(); 140 | 141 | // should be answer to Command::Start 142 | let l = Event::TraceStart { ts_delta: 0 }.encode(&mut out).unwrap(); 143 | io.write(&out[..l]).unwrap(); 144 | 145 | // TODO get it from the target 146 | let l = Event::Init { 147 | sys_freq: 16000000, 148 | cpu_freq: 160000000, 149 | ram_base: 0x40000000, 150 | id_shift: 2, 151 | ts_delta: 1, 152 | } 153 | .encode(&mut out) 154 | .unwrap(); 155 | io.write(&out[..l]).unwrap(); 156 | 157 | let l = Event::SystimeCycles { 158 | time: 1000, 159 | ts_delta: 3, 160 | } 161 | .encode(&mut out) 162 | .unwrap(); 163 | io.write_all(&out[..l]).unwrap(); 164 | 165 | let l = Event::NumModules { 166 | modules: 0, 167 | ts_delta: 4, 168 | } 169 | .encode(&mut out) 170 | .unwrap(); 171 | io.write_all(&out[..l]).unwrap(); 172 | 173 | Self { transport, io } 174 | } 175 | 176 | pub fn process_incoming(&mut self) -> bool { 177 | let mut cmd = [0u8; 5]; 178 | let transport = &mut self.transport; 179 | let io = &mut self.io; 180 | 181 | if transport.skip_command_len(io) { 182 | let _count = block!(io.read(&mut cmd)).unwrap(); 183 | // for now assume anything from the host will be a Disconnect command 184 | // TODO send Event::TraceStop 185 | let mut out = [0u8; 32]; 186 | let l = Event::TraceStop { ts_delta: 0 }.encode(&mut out).unwrap(); 187 | io.write_all(&out[..l]).unwrap(); 188 | 189 | return _count > 0; 190 | } 191 | 192 | false 193 | } 194 | 195 | pub fn send(&mut self, msg: Message) { 196 | log::info!("Run..."); 197 | 198 | let mut out = [0u8; 32]; 199 | match msg { 200 | Message::IsrEnter(isr, ts_delta) => { 201 | let l = Event::IsrEnter { isr, ts_delta }.encode(&mut out).unwrap(); 202 | self.io.write_all(&out[..l]).unwrap(); 203 | } 204 | Message::IsrExit(ts_delta) => { 205 | let l = Event::IsrExit { ts_delta }.encode(&mut out).unwrap(); 206 | self.io.write_all(&out[..l]).unwrap(); 207 | } 208 | Message::Disconnect(ts_delta) => { 209 | // HOST disconnect 210 | let l = Event::TraceStop { ts_delta }.encode(&mut out).unwrap(); 211 | self.io.write_all(&out[..l]).unwrap(); 212 | } 213 | Message::TaskNew(task, ts_delta) => { 214 | let l = Event::TaskCreate { task, ts_delta } 215 | .encode(&mut out) 216 | .unwrap(); 217 | self.io.write_all(&out[..l]).unwrap(); 218 | } 219 | Message::TaskExecBegin(task, ts_delta) => { 220 | let l = Event::TaskStartExec { task, ts_delta } 221 | .encode(&mut out) 222 | .unwrap(); 223 | self.io.write_all(&out[..l]).unwrap(); 224 | } 225 | Message::TaskExecEnd(ts_delta) => { 226 | let l = Event::TaskStopExec { ts_delta }.encode(&mut out).unwrap(); 227 | self.io.write_all(&out[..l]).unwrap(); 228 | } 229 | Message::TaskReadyBegin(task, ts_delta) => { 230 | let l = Event::TaskStartReady { task, ts_delta } 231 | .encode(&mut out) 232 | .unwrap(); 233 | self.io.write_all(&out[..l]).unwrap(); 234 | } 235 | Message::TaskReadyEnd(task, ts_delta) => { 236 | let l = Event::TaskStopReady { 237 | task, 238 | cause: Cause::Idle, 239 | ts_delta, 240 | } 241 | .encode(&mut out) 242 | .unwrap(); 243 | self.io.write_all(&out[..l]).unwrap(); 244 | } 245 | Message::SystemIdle(ts_delta) => { 246 | let l = Event::Idle { ts_delta }.encode(&mut out).unwrap(); 247 | self.io.write_all(&out[..l]).unwrap(); 248 | } 249 | } 250 | 251 | log::info!("Done."); 252 | } 253 | } 254 | -------------------------------------------------------------------------------- /server/src/packet.rs: -------------------------------------------------------------------------------- 1 | use super::*; 2 | 3 | #[derive(Debug, Clone, Copy)] 4 | #[repr(u8)] 5 | pub enum Cause { 6 | Idle, 7 | Sleep, 8 | } 9 | 10 | /// Events from the target 11 | #[derive(Debug, Clone, Copy)] 12 | #[repr(u8)] 13 | pub enum Event<'a> { 14 | Overflow { 15 | dropped_packets: u32, 16 | ts_delta: u32, 17 | } = 1, 18 | IsrEnter { 19 | isr: u8, 20 | ts_delta: u32, 21 | }, 22 | IsrExit { 23 | ts_delta: u32, 24 | }, 25 | TaskStartExec { 26 | task: u32, 27 | ts_delta: u32, 28 | }, 29 | TaskStopExec { 30 | ts_delta: u32, 31 | }, 32 | TaskStartReady { 33 | task: u32, 34 | ts_delta: u32, 35 | }, 36 | TaskStopReady { 37 | task: u32, 38 | cause: Cause, 39 | ts_delta: u32, 40 | }, 41 | TaskCreate { 42 | task: u32, 43 | ts_delta: u32, 44 | }, 45 | TaskInfo { 46 | task: u32, 47 | prio: u32, 48 | name: &'a str, 49 | ts_delta: u32, 50 | }, 51 | TraceStart { 52 | ts_delta: u32, 53 | }, 54 | TraceStop { 55 | ts_delta: u32, 56 | }, 57 | SystimeCycles { 58 | time: u32, 59 | ts_delta: u32, 60 | }, 61 | SystimeUs { 62 | time: u64, 63 | ts_delta: u32, 64 | }, 65 | UserStart { 66 | user_id: u32, 67 | ts_delta: u32, 68 | } = 15, 69 | UserStop { 70 | user_id: u32, 71 | ts_delta: u32, 72 | }, 73 | Idle { 74 | ts_delta: u32, 75 | }, 76 | IsrToScheduler { 77 | ts_delta: u32, 78 | }, 79 | TimerEnter { 80 | timer_id: u32, 81 | ts_delta: u32, 82 | }, 83 | TimerExit { 84 | ts_delta: u32, 85 | }, 86 | StackInfo { 87 | task_id: u32, 88 | stack_base: u32, 89 | stack_size: u32, 90 | ts_delta: u32, 91 | }, 92 | Init { 93 | sys_freq: u32, 94 | cpu_freq: u32, 95 | ram_base: u32, 96 | id_shift: u32, 97 | ts_delta: u32, 98 | } = 24, 99 | NameResource { 100 | resource_id: u32, 101 | name: &'a str, 102 | ts_delta: u32, 103 | }, 104 | PrintFormatted { 105 | s: &'a str, 106 | ts_delta: u32, 107 | }, 108 | NumModules { 109 | modules: u32, 110 | ts_delta: u32, 111 | }, 112 | EndCall { 113 | event_id: u32, 114 | ts_delta: u32, 115 | }, 116 | TaskTerminate { 117 | task_id: u32, 118 | ts_delta: u32, 119 | }, 120 | } 121 | 122 | impl<'a> Event<'a> { 123 | fn discriminant(&self) -> u8 { 124 | unsafe { *(self as *const Self as *const u8) } 125 | } 126 | 127 | pub fn encode(&self, buffer: &mut [u8]) -> Result { 128 | buffer[0] = self.discriminant(); 129 | let mut count = 1; 130 | 131 | // ids > 24 have a length - use a placeholder of one byte which means max 0x7f (excluding event_id, length and timestamp) 132 | if self.discriminant() >= 24 { 133 | buffer[1] = 0; 134 | count += 1; 135 | } 136 | 137 | let ts_delta = match self { 138 | Event::Overflow { 139 | dropped_packets, 140 | ts_delta, 141 | } => { 142 | count = encode_u32(*dropped_packets, buffer, count); 143 | ts_delta 144 | } 145 | Event::IsrEnter { isr, ts_delta } => { 146 | count = encode_u32(*isr as u32, buffer, count); 147 | ts_delta 148 | } 149 | Event::IsrExit { ts_delta } => ts_delta, 150 | Event::TaskStartExec { task, ts_delta } => { 151 | count = encode_u32(*task as u32, buffer, count); 152 | ts_delta 153 | } 154 | Event::TaskStopExec { ts_delta } => ts_delta, 155 | Event::TaskStartReady { task, ts_delta } => { 156 | count = encode_u32(*task as u32, buffer, count); 157 | ts_delta 158 | } 159 | Event::TaskStopReady { 160 | task, 161 | cause, 162 | ts_delta, 163 | } => { 164 | count = encode_u32(*task as u32, buffer, count); 165 | count = encode_u32(*cause as u32, buffer, count); 166 | ts_delta 167 | } 168 | Event::TaskCreate { task, ts_delta } => { 169 | count = encode_u32(*task as u32, buffer, count); 170 | ts_delta 171 | } 172 | Event::TaskInfo { 173 | task, 174 | prio, 175 | name, 176 | ts_delta, 177 | } => { 178 | count = encode_u32(*task as u32, buffer, count); 179 | count = encode_u32(*prio as u32, buffer, count); 180 | count = encode_str(*name, buffer, count); 181 | ts_delta 182 | } 183 | Event::TraceStart { ts_delta } => ts_delta, 184 | Event::TraceStop { ts_delta } => ts_delta, 185 | Event::SystimeCycles { time, ts_delta } => { 186 | count = encode_u32(*time as u32, buffer, count); 187 | ts_delta 188 | } 189 | Event::SystimeUs { time, ts_delta } => { 190 | count = encode_u32(*time as u32, buffer, count); 191 | count = encode_u32((*time >> 32) as u32, buffer, count); 192 | ts_delta 193 | } 194 | Event::UserStart { user_id, ts_delta } => { 195 | count = encode_u32(*user_id as u32, buffer, count); 196 | ts_delta 197 | } 198 | Event::UserStop { user_id, ts_delta } => { 199 | count = encode_u32(*user_id as u32, buffer, count); 200 | ts_delta 201 | } 202 | Event::Idle { ts_delta } => ts_delta, 203 | Event::IsrToScheduler { ts_delta } => ts_delta, 204 | Event::TimerEnter { timer_id, ts_delta } => { 205 | count = encode_u32(*timer_id as u32, buffer, count); 206 | ts_delta 207 | } 208 | Event::TimerExit { ts_delta } => ts_delta, 209 | Event::StackInfo { 210 | task_id, 211 | stack_base, 212 | stack_size, 213 | ts_delta, 214 | } => { 215 | count = encode_u32(*task_id as u32, buffer, count); 216 | count = encode_u32(*stack_base as u32, buffer, count); 217 | count = encode_u32(*stack_size as u32, buffer, count); 218 | ts_delta 219 | } 220 | Event::Init { 221 | sys_freq, 222 | cpu_freq, 223 | ram_base, 224 | id_shift, 225 | ts_delta, 226 | } => { 227 | count = encode_u32(*sys_freq as u32, buffer, count); 228 | count = encode_u32(*cpu_freq as u32, buffer, count); 229 | count = encode_u32(*ram_base as u32, buffer, count); 230 | count = encode_u32(*id_shift as u32, buffer, count); 231 | ts_delta 232 | } 233 | Event::NameResource { 234 | resource_id, 235 | name, 236 | ts_delta, 237 | } => { 238 | count = encode_u32(*resource_id as u32, buffer, count); 239 | count = encode_str(*name, buffer, count); 240 | ts_delta 241 | } 242 | Event::PrintFormatted { s, ts_delta } => { 243 | count = encode_str(*s, buffer, count); 244 | ts_delta 245 | } 246 | Event::NumModules { modules, ts_delta } => { 247 | count = encode_u32(*modules as u32, buffer, count); 248 | ts_delta 249 | } 250 | Event::EndCall { event_id, ts_delta } => { 251 | count = encode_u32(*event_id as u32, buffer, count); 252 | ts_delta 253 | } 254 | Event::TaskTerminate { task_id, ts_delta } => { 255 | count = encode_u32(*task_id as u32, buffer, count); 256 | ts_delta 257 | } 258 | }; 259 | 260 | if self.discriminant() >= 24 { 261 | buffer[1] = (count - 2) as u8; 262 | } 263 | 264 | count = encode_u32(*ts_delta, buffer, count); 265 | Ok(count) 266 | } 267 | } 268 | 269 | fn encode_u32(mut value: u32, buffer: &mut [u8], mut count: usize) -> usize { 270 | while value > 0x7F { 271 | buffer[count] = (value | 0x80) as u8; 272 | count += 1; 273 | value >>= 7; 274 | } 275 | buffer[count] = value as u8; 276 | count += 1; 277 | 278 | count 279 | } 280 | 281 | fn encode_str(s: &str, buffer: &mut [u8], mut count: usize) -> usize { 282 | count = encode_u32(s.len() as u32, buffer, count); 283 | for c in s.chars().into_iter() { 284 | buffer[count] = c as u8; 285 | count += 1; 286 | } 287 | 288 | count 289 | } 290 | 291 | pub fn decode_u32(buffer: &[u8], index: usize) -> (usize, u32) { 292 | let mut index = index; 293 | let mut value = 0u32; 294 | let mut shift = 0u32; 295 | 296 | while buffer[index] & 0x80 != 0 { 297 | value |= ((buffer[index] & 0x7f) as u32) << shift; 298 | shift += 7; 299 | index += 1; 300 | } 301 | value |= ((buffer[index] & 0x7f) as u32) << shift; 302 | index += 1; 303 | 304 | (index, value) 305 | } 306 | 307 | /// Commands sent by host 308 | #[derive(Debug, Clone, Copy)] 309 | #[repr(u8)] 310 | pub enum Command { 311 | Start = 1, 312 | Stop, 313 | GetSysTime, 314 | } 315 | 316 | impl TryFrom for Command { 317 | type Error = Error; 318 | 319 | fn try_from(value: u8) -> Result { 320 | match value { 321 | 1 => Ok(Command::Start), 322 | 2 => Ok(Command::Stop), 323 | 3 => Ok(Command::GetSysTime), 324 | _ => Err(Error::UnknownCommand), 325 | } 326 | } 327 | } 328 | 329 | mod test { 330 | #[allow(unused)] 331 | use super::*; 332 | 333 | #[test] 334 | fn test_encode_500() { 335 | let mut buffer = [0u8; 10]; 336 | let count = encode_u32(500, &mut buffer, 0); 337 | assert_eq!(&[0xf4, 0x03], &buffer[..count]); 338 | } 339 | 340 | #[test] 341 | fn test_encode_0x7000() { 342 | let mut buffer = [0u8; 10]; 343 | let count = encode_u32(0x7000, &mut buffer, 0); 344 | assert_eq!(&[0x80, 0xE0, 0x01], &buffer[..count]); 345 | } 346 | 347 | #[test] 348 | fn test_decode0x50() { 349 | assert_eq!((1, 0x50), decode_u32(&[0x50], 0)); 350 | } 351 | 352 | #[test] 353 | fn test_decode0x7000() { 354 | assert_eq!((3, 0x7000), decode_u32(&[0x80, 0xE0, 0x01], 0)); 355 | } 356 | 357 | #[test] 358 | fn test_encode_overflow() { 359 | let mut buffer = [0u8; 10]; 360 | let count = Event::Overflow { 361 | dropped_packets: 0x10, 362 | ts_delta: 0x50, 363 | } 364 | .encode(&mut buffer) 365 | .unwrap(); 366 | assert_eq!(&[0x01, 0x10, 0x50], &buffer[..count]); 367 | } 368 | 369 | #[test] 370 | fn test_encode_isr_enter() { 371 | let mut buffer = [0u8; 10]; 372 | let count = Event::IsrEnter { 373 | isr: 15, 374 | ts_delta: 80, 375 | } 376 | .encode(&mut buffer) 377 | .unwrap(); 378 | assert_eq!(&[0x02, 0x0f, 0x50], &buffer[..count]); 379 | } 380 | 381 | #[test] 382 | fn test_encode_init() { 383 | let mut buffer = [0u8; 10]; 384 | let count = Event::Init { 385 | sys_freq: 1, 386 | cpu_freq: 2, 387 | ram_base: 3, 388 | id_shift: 4, 389 | ts_delta: 80, 390 | } 391 | .encode(&mut buffer) 392 | .unwrap(); 393 | assert_eq!( 394 | &[0x18, 0x04, 0x01, 0x02, 0x03, 0x04, 0x50], 395 | &buffer[..count] 396 | ); 397 | } 398 | } 399 | -------------------------------------------------------------------------------- /esp-xray/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 = "adler2" 7 | version = "2.0.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 10 | 11 | [[package]] 12 | name = "anstream" 13 | version = "0.6.15" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" 16 | dependencies = [ 17 | "anstyle", 18 | "anstyle-parse", 19 | "anstyle-query", 20 | "anstyle-wincon", 21 | "colorchoice", 22 | "is_terminal_polyfill", 23 | "utf8parse", 24 | ] 25 | 26 | [[package]] 27 | name = "anstyle" 28 | version = "1.0.8" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" 31 | 32 | [[package]] 33 | name = "anstyle-parse" 34 | version = "0.2.5" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" 37 | dependencies = [ 38 | "utf8parse", 39 | ] 40 | 41 | [[package]] 42 | name = "anstyle-query" 43 | version = "1.1.1" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" 46 | dependencies = [ 47 | "windows-sys 0.52.0", 48 | ] 49 | 50 | [[package]] 51 | name = "anstyle-wincon" 52 | version = "3.0.4" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" 55 | dependencies = [ 56 | "anstyle", 57 | "windows-sys 0.52.0", 58 | ] 59 | 60 | [[package]] 61 | name = "anyhow" 62 | version = "1.0.89" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 65 | 66 | [[package]] 67 | name = "autocfg" 68 | version = "1.3.0" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 71 | 72 | [[package]] 73 | name = "bare-metal" 74 | version = "1.0.0" 75 | source = "registry+https://github.com/rust-lang/crates.io-index" 76 | checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" 77 | 78 | [[package]] 79 | name = "basic-toml" 80 | version = "0.1.9" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" 83 | dependencies = [ 84 | "serde", 85 | ] 86 | 87 | [[package]] 88 | name = "bitfield" 89 | version = "0.16.1" 90 | source = "registry+https://github.com/rust-lang/crates.io-index" 91 | checksum = "d5acf59e2452f0c4b968b15ce4b9468f57b45f7733b919d68b19fcc39264bfb8" 92 | 93 | [[package]] 94 | name = "bitflags" 95 | version = "2.6.0" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 98 | 99 | [[package]] 100 | name = "bytemuck" 101 | version = "1.18.0" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" 104 | 105 | [[package]] 106 | name = "byteorder" 107 | version = "1.5.0" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 110 | 111 | [[package]] 112 | name = "cfg-if" 113 | version = "1.0.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 116 | 117 | [[package]] 118 | name = "clap" 119 | version = "4.5.18" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" 122 | dependencies = [ 123 | "clap_builder", 124 | "clap_derive", 125 | ] 126 | 127 | [[package]] 128 | name = "clap_builder" 129 | version = "4.5.18" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" 132 | dependencies = [ 133 | "anstream", 134 | "anstyle", 135 | "clap_lex", 136 | "strsim", 137 | ] 138 | 139 | [[package]] 140 | name = "clap_derive" 141 | version = "4.5.18" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" 144 | dependencies = [ 145 | "heck", 146 | "proc-macro2", 147 | "quote", 148 | "syn 2.0.77", 149 | ] 150 | 151 | [[package]] 152 | name = "clap_lex" 153 | version = "0.7.2" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" 156 | 157 | [[package]] 158 | name = "colorchoice" 159 | version = "1.0.2" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" 162 | 163 | [[package]] 164 | name = "crc32fast" 165 | version = "1.4.2" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 168 | dependencies = [ 169 | "cfg-if", 170 | ] 171 | 172 | [[package]] 173 | name = "critical-section" 174 | version = "1.1.3" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" 177 | 178 | [[package]] 179 | name = "darling" 180 | version = "0.20.10" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 183 | dependencies = [ 184 | "darling_core", 185 | "darling_macro", 186 | ] 187 | 188 | [[package]] 189 | name = "darling_core" 190 | version = "0.20.10" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 193 | dependencies = [ 194 | "fnv", 195 | "ident_case", 196 | "proc-macro2", 197 | "quote", 198 | "strsim", 199 | "syn 2.0.77", 200 | ] 201 | 202 | [[package]] 203 | name = "darling_macro" 204 | version = "0.20.10" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 207 | dependencies = [ 208 | "darling_core", 209 | "quote", 210 | "syn 2.0.77", 211 | ] 212 | 213 | [[package]] 214 | name = "delegate" 215 | version = "0.12.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "4e018fccbeeb50ff26562ece792ed06659b9c2dae79ece77c4456bb10d9bf79b" 218 | dependencies = [ 219 | "proc-macro2", 220 | "quote", 221 | "syn 2.0.77", 222 | ] 223 | 224 | [[package]] 225 | name = "document-features" 226 | version = "0.2.10" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" 229 | dependencies = [ 230 | "litrs", 231 | ] 232 | 233 | [[package]] 234 | name = "embedded-can" 235 | version = "0.4.1" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | checksum = "e9d2e857f87ac832df68fa498d18ddc679175cf3d2e4aa893988e5601baf9438" 238 | dependencies = [ 239 | "nb 1.1.0", 240 | ] 241 | 242 | [[package]] 243 | name = "embedded-hal" 244 | version = "0.2.7" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff" 247 | dependencies = [ 248 | "nb 0.1.3", 249 | "void", 250 | ] 251 | 252 | [[package]] 253 | name = "embedded-hal" 254 | version = "1.0.0" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" 257 | 258 | [[package]] 259 | name = "embedded-hal-nb" 260 | version = "1.0.0" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" 263 | dependencies = [ 264 | "embedded-hal 1.0.0", 265 | "nb 1.1.0", 266 | ] 267 | 268 | [[package]] 269 | name = "enum-as-inner" 270 | version = "0.6.1" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 273 | dependencies = [ 274 | "heck", 275 | "proc-macro2", 276 | "quote", 277 | "syn 2.0.77", 278 | ] 279 | 280 | [[package]] 281 | name = "enumset" 282 | version = "1.1.5" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" 285 | dependencies = [ 286 | "enumset_derive", 287 | ] 288 | 289 | [[package]] 290 | name = "enumset_derive" 291 | version = "0.10.0" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" 294 | dependencies = [ 295 | "darling", 296 | "proc-macro2", 297 | "quote", 298 | "syn 2.0.77", 299 | ] 300 | 301 | [[package]] 302 | name = "equivalent" 303 | version = "1.0.1" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 306 | 307 | [[package]] 308 | name = "esp-build" 309 | version = "0.1.0" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "b94a4b8d74e7cc7baabcca5b2277b41877e039ad9cd49959d48ef94dac7eab4b" 312 | dependencies = [ 313 | "quote", 314 | "syn 2.0.77", 315 | "termcolor", 316 | ] 317 | 318 | [[package]] 319 | name = "esp-hal" 320 | version = "0.20.1" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "64f5393b8f7e7f055455d9f86706ddb675f943c12f12a7b80b8a79c3a94233ff" 323 | dependencies = [ 324 | "basic-toml", 325 | "bitfield", 326 | "bitflags", 327 | "bytemuck", 328 | "cfg-if", 329 | "critical-section", 330 | "delegate", 331 | "document-features", 332 | "embedded-can", 333 | "embedded-hal 1.0.0", 334 | "embedded-hal-nb", 335 | "enumset", 336 | "esp-build", 337 | "esp-hal-procmacros", 338 | "esp-metadata", 339 | "esp-riscv-rt", 340 | "esp-synopsys-usb-otg", 341 | "esp32c2", 342 | "esp32c3", 343 | "esp32c6", 344 | "esp32h2", 345 | "esp32s2", 346 | "esp32s3", 347 | "fugit", 348 | "nb 1.1.0", 349 | "paste", 350 | "portable-atomic", 351 | "rand_core", 352 | "riscv", 353 | "serde", 354 | "strum", 355 | "usb-device", 356 | "void", 357 | "xtensa-lx", 358 | "xtensa-lx-rt", 359 | ] 360 | 361 | [[package]] 362 | name = "esp-hal-procmacros" 363 | version = "0.13.0" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "6eac531546027909a355fc9c2449f22c839955fa4b7f1976b64ddd04b2f22f83" 366 | dependencies = [ 367 | "darling", 368 | "document-features", 369 | "litrs", 370 | "object", 371 | "proc-macro-crate", 372 | "proc-macro-error", 373 | "proc-macro2", 374 | "quote", 375 | "syn 2.0.77", 376 | ] 377 | 378 | [[package]] 379 | name = "esp-metadata" 380 | version = "0.3.0" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "b471bc61fa817ca4ae41a31d5d453258328b31e5ad82db72b473621d36cc4cb6" 383 | dependencies = [ 384 | "anyhow", 385 | "basic-toml", 386 | "clap", 387 | "lazy_static", 388 | "serde", 389 | "strum", 390 | ] 391 | 392 | [[package]] 393 | name = "esp-riscv-rt" 394 | version = "0.9.0" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "bfc32298ed7c263b06c8b031704d8517cc62c819f2a9d5c261d0cb119634d6e9" 397 | dependencies = [ 398 | "document-features", 399 | "riscv", 400 | "riscv-rt-macros", 401 | ] 402 | 403 | [[package]] 404 | name = "esp-synopsys-usb-otg" 405 | version = "0.4.2" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "8938451cb19032f13365328ea66ab38c8d16deecdf322067442297110eb74468" 408 | dependencies = [ 409 | "critical-section", 410 | "embedded-hal 0.2.7", 411 | "ral-registers", 412 | "usb-device", 413 | "vcell", 414 | ] 415 | 416 | [[package]] 417 | name = "esp-xray" 418 | version = "0.1.0" 419 | dependencies = [ 420 | "critical-section", 421 | "esp-hal", 422 | "rtos-trace", 423 | "rtt-target", 424 | ] 425 | 426 | [[package]] 427 | name = "esp32c2" 428 | version = "0.22.0" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "8f9216c7ca4aefe4723d38a765e27801c4e92dec792870403466fc9adb438056" 431 | dependencies = [ 432 | "critical-section", 433 | "vcell", 434 | ] 435 | 436 | [[package]] 437 | name = "esp32c3" 438 | version = "0.25.0" 439 | source = "registry+https://github.com/rust-lang/crates.io-index" 440 | checksum = "3922cd13da83d070892c47e66f005856c62510952198c3008bc4f3b79f3e9623" 441 | dependencies = [ 442 | "critical-section", 443 | "vcell", 444 | ] 445 | 446 | [[package]] 447 | name = "esp32c6" 448 | version = "0.16.0" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | checksum = "f0c05e230022cf5a8d10e9bcdc4878c0886a3a5701a96d6763cb42562e42ecd7" 451 | dependencies = [ 452 | "critical-section", 453 | "vcell", 454 | ] 455 | 456 | [[package]] 457 | name = "esp32h2" 458 | version = "0.12.0" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "1b05edd3bb766f66180b49c53b3503cf41b72936912a9552462a6a233ccdcac4" 461 | dependencies = [ 462 | "critical-section", 463 | "vcell", 464 | ] 465 | 466 | [[package]] 467 | name = "esp32s2" 468 | version = "0.24.0" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "9cc0ce1947afdcc4cb74dc8955e1575fcfa38931e0282ed171811dde0afc0fc6" 471 | dependencies = [ 472 | "critical-section", 473 | "vcell", 474 | "xtensa-lx", 475 | ] 476 | 477 | [[package]] 478 | name = "esp32s3" 479 | version = "0.28.0" 480 | source = "registry+https://github.com/rust-lang/crates.io-index" 481 | checksum = "eae51703c44196b924910bd8ea7285e5a234d1a5aebcd0b60a997cd5081eb002" 482 | dependencies = [ 483 | "critical-section", 484 | "vcell", 485 | "xtensa-lx", 486 | ] 487 | 488 | [[package]] 489 | name = "flate2" 490 | version = "1.0.33" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" 493 | dependencies = [ 494 | "crc32fast", 495 | "miniz_oxide", 496 | ] 497 | 498 | [[package]] 499 | name = "fnv" 500 | version = "1.0.7" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 503 | 504 | [[package]] 505 | name = "fugit" 506 | version = "0.3.7" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "17186ad64927d5ac8f02c1e77ccefa08ccd9eaa314d5a4772278aa204a22f7e7" 509 | dependencies = [ 510 | "gcd", 511 | ] 512 | 513 | [[package]] 514 | name = "gcd" 515 | version = "2.3.0" 516 | source = "registry+https://github.com/rust-lang/crates.io-index" 517 | checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" 518 | 519 | [[package]] 520 | name = "hash32" 521 | version = "0.3.1" 522 | source = "registry+https://github.com/rust-lang/crates.io-index" 523 | checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 524 | dependencies = [ 525 | "byteorder", 526 | ] 527 | 528 | [[package]] 529 | name = "hashbrown" 530 | version = "0.14.5" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 533 | 534 | [[package]] 535 | name = "heapless" 536 | version = "0.8.0" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 539 | dependencies = [ 540 | "hash32", 541 | "stable_deref_trait", 542 | ] 543 | 544 | [[package]] 545 | name = "heck" 546 | version = "0.5.0" 547 | source = "registry+https://github.com/rust-lang/crates.io-index" 548 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 549 | 550 | [[package]] 551 | name = "ident_case" 552 | version = "1.0.1" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 555 | 556 | [[package]] 557 | name = "indexmap" 558 | version = "2.5.0" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" 561 | dependencies = [ 562 | "equivalent", 563 | "hashbrown", 564 | ] 565 | 566 | [[package]] 567 | name = "is_terminal_polyfill" 568 | version = "1.70.1" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 571 | 572 | [[package]] 573 | name = "lazy_static" 574 | version = "1.5.0" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 577 | 578 | [[package]] 579 | name = "litrs" 580 | version = "0.4.1" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 583 | dependencies = [ 584 | "proc-macro2", 585 | ] 586 | 587 | [[package]] 588 | name = "lock_api" 589 | version = "0.4.12" 590 | source = "registry+https://github.com/rust-lang/crates.io-index" 591 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 592 | dependencies = [ 593 | "autocfg", 594 | "scopeguard", 595 | ] 596 | 597 | [[package]] 598 | name = "memchr" 599 | version = "2.7.4" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 602 | 603 | [[package]] 604 | name = "minijinja" 605 | version = "2.3.1" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "1028b628753a7e1a88fc59c9ba4b02ecc3bc0bd3c7af23df667bc28df9b3310e" 608 | dependencies = [ 609 | "serde", 610 | ] 611 | 612 | [[package]] 613 | name = "miniz_oxide" 614 | version = "0.8.0" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 617 | dependencies = [ 618 | "adler2", 619 | ] 620 | 621 | [[package]] 622 | name = "mutex-trait" 623 | version = "0.2.0" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "b4bb1638d419e12f8b1c43d9e639abd0d1424285bdea2f76aa231e233c63cd3a" 626 | 627 | [[package]] 628 | name = "nb" 629 | version = "0.1.3" 630 | source = "registry+https://github.com/rust-lang/crates.io-index" 631 | checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" 632 | dependencies = [ 633 | "nb 1.1.0", 634 | ] 635 | 636 | [[package]] 637 | name = "nb" 638 | version = "1.1.0" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" 641 | 642 | [[package]] 643 | name = "object" 644 | version = "0.36.4" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" 647 | dependencies = [ 648 | "flate2", 649 | "memchr", 650 | "ruzstd", 651 | ] 652 | 653 | [[package]] 654 | name = "paste" 655 | version = "1.0.15" 656 | source = "registry+https://github.com/rust-lang/crates.io-index" 657 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 658 | 659 | [[package]] 660 | name = "portable-atomic" 661 | version = "1.8.0" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" 664 | dependencies = [ 665 | "critical-section", 666 | ] 667 | 668 | [[package]] 669 | name = "proc-macro-crate" 670 | version = "3.2.0" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" 673 | dependencies = [ 674 | "toml_edit", 675 | ] 676 | 677 | [[package]] 678 | name = "proc-macro-error" 679 | version = "1.0.4" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 682 | dependencies = [ 683 | "proc-macro-error-attr", 684 | "proc-macro2", 685 | "quote", 686 | "syn 1.0.109", 687 | "version_check", 688 | ] 689 | 690 | [[package]] 691 | name = "proc-macro-error-attr" 692 | version = "1.0.4" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 695 | dependencies = [ 696 | "proc-macro2", 697 | "quote", 698 | "version_check", 699 | ] 700 | 701 | [[package]] 702 | name = "proc-macro2" 703 | version = "1.0.86" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 706 | dependencies = [ 707 | "unicode-ident", 708 | ] 709 | 710 | [[package]] 711 | name = "quote" 712 | version = "1.0.37" 713 | source = "registry+https://github.com/rust-lang/crates.io-index" 714 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 715 | dependencies = [ 716 | "proc-macro2", 717 | ] 718 | 719 | [[package]] 720 | name = "r0" 721 | version = "1.0.0" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" 724 | 725 | [[package]] 726 | name = "ral-registers" 727 | version = "0.1.3" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "46b71a9d9206e8b46714c74255adcaea8b11e0350c1d8456165073c3f75fc81a" 730 | 731 | [[package]] 732 | name = "rand_core" 733 | version = "0.6.4" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 736 | 737 | [[package]] 738 | name = "riscv" 739 | version = "0.11.1" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9" 742 | dependencies = [ 743 | "critical-section", 744 | "embedded-hal 1.0.0", 745 | ] 746 | 747 | [[package]] 748 | name = "riscv-rt-macros" 749 | version = "0.2.1" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | checksum = "a8d100d466dbb76681ef6a9386f3da9abc570d57394e86da0ba5af8c4408486d" 752 | dependencies = [ 753 | "proc-macro2", 754 | "quote", 755 | "syn 1.0.109", 756 | ] 757 | 758 | [[package]] 759 | name = "rtos-trace" 760 | version = "0.1.3" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "cdb6bcec3374f2049b3979112fa2e6c49b2a37f08de9b9759c6aa76531fb8097" 763 | 764 | [[package]] 765 | name = "rtt-target" 766 | version = "0.5.0" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "10b34c9e6832388e45f3c01f1bb60a016384a0a4ad80cdd7d34913bed25037f0" 769 | dependencies = [ 770 | "critical-section", 771 | "ufmt-write", 772 | ] 773 | 774 | [[package]] 775 | name = "rustversion" 776 | version = "1.0.17" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 779 | 780 | [[package]] 781 | name = "ruzstd" 782 | version = "0.7.2" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "99c3938e133aac070997ddc684d4b393777d293ba170f2988c8fd5ea2ad4ce21" 785 | dependencies = [ 786 | "twox-hash", 787 | ] 788 | 789 | [[package]] 790 | name = "scopeguard" 791 | version = "1.2.0" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 794 | 795 | [[package]] 796 | name = "serde" 797 | version = "1.0.210" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 800 | dependencies = [ 801 | "serde_derive", 802 | ] 803 | 804 | [[package]] 805 | name = "serde_derive" 806 | version = "1.0.210" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 809 | dependencies = [ 810 | "proc-macro2", 811 | "quote", 812 | "syn 2.0.77", 813 | ] 814 | 815 | [[package]] 816 | name = "serde_spanned" 817 | version = "0.6.8" 818 | source = "registry+https://github.com/rust-lang/crates.io-index" 819 | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 820 | dependencies = [ 821 | "serde", 822 | ] 823 | 824 | [[package]] 825 | name = "spin" 826 | version = "0.9.8" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 829 | dependencies = [ 830 | "lock_api", 831 | ] 832 | 833 | [[package]] 834 | name = "stable_deref_trait" 835 | version = "1.2.0" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 838 | 839 | [[package]] 840 | name = "static_assertions" 841 | version = "1.1.0" 842 | source = "registry+https://github.com/rust-lang/crates.io-index" 843 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 844 | 845 | [[package]] 846 | name = "strsim" 847 | version = "0.11.1" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 850 | 851 | [[package]] 852 | name = "strum" 853 | version = "0.26.3" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 856 | dependencies = [ 857 | "strum_macros", 858 | ] 859 | 860 | [[package]] 861 | name = "strum_macros" 862 | version = "0.26.4" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 865 | dependencies = [ 866 | "heck", 867 | "proc-macro2", 868 | "quote", 869 | "rustversion", 870 | "syn 2.0.77", 871 | ] 872 | 873 | [[package]] 874 | name = "syn" 875 | version = "1.0.109" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 878 | dependencies = [ 879 | "proc-macro2", 880 | "quote", 881 | "unicode-ident", 882 | ] 883 | 884 | [[package]] 885 | name = "syn" 886 | version = "2.0.77" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" 889 | dependencies = [ 890 | "proc-macro2", 891 | "quote", 892 | "unicode-ident", 893 | ] 894 | 895 | [[package]] 896 | name = "termcolor" 897 | version = "1.4.1" 898 | source = "registry+https://github.com/rust-lang/crates.io-index" 899 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 900 | dependencies = [ 901 | "winapi-util", 902 | ] 903 | 904 | [[package]] 905 | name = "toml" 906 | version = "0.8.19" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" 909 | dependencies = [ 910 | "serde", 911 | "serde_spanned", 912 | "toml_datetime", 913 | "toml_edit", 914 | ] 915 | 916 | [[package]] 917 | name = "toml_datetime" 918 | version = "0.6.8" 919 | source = "registry+https://github.com/rust-lang/crates.io-index" 920 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 921 | dependencies = [ 922 | "serde", 923 | ] 924 | 925 | [[package]] 926 | name = "toml_edit" 927 | version = "0.22.22" 928 | source = "registry+https://github.com/rust-lang/crates.io-index" 929 | checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 930 | dependencies = [ 931 | "indexmap", 932 | "serde", 933 | "serde_spanned", 934 | "toml_datetime", 935 | "winnow", 936 | ] 937 | 938 | [[package]] 939 | name = "twox-hash" 940 | version = "1.6.3" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 943 | dependencies = [ 944 | "cfg-if", 945 | "static_assertions", 946 | ] 947 | 948 | [[package]] 949 | name = "ufmt-write" 950 | version = "0.1.0" 951 | source = "registry+https://github.com/rust-lang/crates.io-index" 952 | checksum = "e87a2ed6b42ec5e28cc3b94c09982969e9227600b2e3dcbc1db927a84c06bd69" 953 | 954 | [[package]] 955 | name = "unicode-ident" 956 | version = "1.0.13" 957 | source = "registry+https://github.com/rust-lang/crates.io-index" 958 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 959 | 960 | [[package]] 961 | name = "usb-device" 962 | version = "0.3.2" 963 | source = "registry+https://github.com/rust-lang/crates.io-index" 964 | checksum = "98816b1accafbb09085168b90f27e93d790b4bfa19d883466b5e53315b5f06a6" 965 | dependencies = [ 966 | "heapless", 967 | "portable-atomic", 968 | ] 969 | 970 | [[package]] 971 | name = "utf8parse" 972 | version = "0.2.2" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 975 | 976 | [[package]] 977 | name = "vcell" 978 | version = "0.1.3" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" 981 | 982 | [[package]] 983 | name = "version_check" 984 | version = "0.9.5" 985 | source = "registry+https://github.com/rust-lang/crates.io-index" 986 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 987 | 988 | [[package]] 989 | name = "void" 990 | version = "1.0.2" 991 | source = "registry+https://github.com/rust-lang/crates.io-index" 992 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 993 | 994 | [[package]] 995 | name = "winapi-util" 996 | version = "0.1.9" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 999 | dependencies = [ 1000 | "windows-sys 0.59.0", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "windows-sys" 1005 | version = "0.52.0" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1008 | dependencies = [ 1009 | "windows-targets", 1010 | ] 1011 | 1012 | [[package]] 1013 | name = "windows-sys" 1014 | version = "0.59.0" 1015 | source = "registry+https://github.com/rust-lang/crates.io-index" 1016 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1017 | dependencies = [ 1018 | "windows-targets", 1019 | ] 1020 | 1021 | [[package]] 1022 | name = "windows-targets" 1023 | version = "0.52.6" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1026 | dependencies = [ 1027 | "windows_aarch64_gnullvm", 1028 | "windows_aarch64_msvc", 1029 | "windows_i686_gnu", 1030 | "windows_i686_gnullvm", 1031 | "windows_i686_msvc", 1032 | "windows_x86_64_gnu", 1033 | "windows_x86_64_gnullvm", 1034 | "windows_x86_64_msvc", 1035 | ] 1036 | 1037 | [[package]] 1038 | name = "windows_aarch64_gnullvm" 1039 | version = "0.52.6" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1042 | 1043 | [[package]] 1044 | name = "windows_aarch64_msvc" 1045 | version = "0.52.6" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1048 | 1049 | [[package]] 1050 | name = "windows_i686_gnu" 1051 | version = "0.52.6" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1054 | 1055 | [[package]] 1056 | name = "windows_i686_gnullvm" 1057 | version = "0.52.6" 1058 | source = "registry+https://github.com/rust-lang/crates.io-index" 1059 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1060 | 1061 | [[package]] 1062 | name = "windows_i686_msvc" 1063 | version = "0.52.6" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1066 | 1067 | [[package]] 1068 | name = "windows_x86_64_gnu" 1069 | version = "0.52.6" 1070 | source = "registry+https://github.com/rust-lang/crates.io-index" 1071 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1072 | 1073 | [[package]] 1074 | name = "windows_x86_64_gnullvm" 1075 | version = "0.52.6" 1076 | source = "registry+https://github.com/rust-lang/crates.io-index" 1077 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1078 | 1079 | [[package]] 1080 | name = "windows_x86_64_msvc" 1081 | version = "0.52.6" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1084 | 1085 | [[package]] 1086 | name = "winnow" 1087 | version = "0.6.20" 1088 | source = "registry+https://github.com/rust-lang/crates.io-index" 1089 | checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 1090 | dependencies = [ 1091 | "memchr", 1092 | ] 1093 | 1094 | [[package]] 1095 | name = "xtensa-lx" 1096 | version = "0.9.0" 1097 | source = "registry+https://github.com/rust-lang/crates.io-index" 1098 | checksum = "e758f94e1a1f71758f94052a2766dcb12604998eb372b8b2e30576e3ab1ba1e6" 1099 | dependencies = [ 1100 | "bare-metal", 1101 | "mutex-trait", 1102 | "spin", 1103 | ] 1104 | 1105 | [[package]] 1106 | name = "xtensa-lx-rt" 1107 | version = "0.17.1" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "2ceb69c1487b78d83531c5d94fb81d0dceef1ccb0affba29f29420b1f72d3ddb" 1110 | dependencies = [ 1111 | "anyhow", 1112 | "bare-metal", 1113 | "document-features", 1114 | "enum-as-inner", 1115 | "minijinja", 1116 | "r0", 1117 | "serde", 1118 | "strum", 1119 | "toml", 1120 | "xtensa-lx", 1121 | "xtensa-lx-rt-proc-macros", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "xtensa-lx-rt-proc-macros" 1126 | version = "0.2.2" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "11277b1e4cbb7ffe44678c668518b249c843c81df249b8f096701757bc50d7ee" 1129 | dependencies = [ 1130 | "darling", 1131 | "proc-macro2", 1132 | "quote", 1133 | "syn 2.0.77", 1134 | ] 1135 | -------------------------------------------------------------------------------- /example/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 = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "anstream" 13 | version = "0.6.15" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" 16 | dependencies = [ 17 | "anstyle", 18 | "anstyle-parse", 19 | "anstyle-query", 20 | "anstyle-wincon", 21 | "colorchoice", 22 | "is_terminal_polyfill", 23 | "utf8parse", 24 | ] 25 | 26 | [[package]] 27 | name = "anstyle" 28 | version = "1.0.8" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" 31 | 32 | [[package]] 33 | name = "anstyle-parse" 34 | version = "0.2.5" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" 37 | dependencies = [ 38 | "utf8parse", 39 | ] 40 | 41 | [[package]] 42 | name = "anstyle-query" 43 | version = "1.1.1" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" 46 | dependencies = [ 47 | "windows-sys 0.52.0", 48 | ] 49 | 50 | [[package]] 51 | name = "anstyle-wincon" 52 | version = "3.0.4" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" 55 | dependencies = [ 56 | "anstyle", 57 | "windows-sys 0.52.0", 58 | ] 59 | 60 | [[package]] 61 | name = "anyhow" 62 | version = "1.0.89" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 65 | 66 | [[package]] 67 | name = "autocfg" 68 | version = "1.2.0" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" 71 | 72 | [[package]] 73 | name = "bare-metal" 74 | version = "1.0.0" 75 | source = "registry+https://github.com/rust-lang/crates.io-index" 76 | checksum = "f8fe8f5a8a398345e52358e18ff07cc17a568fbca5c6f73873d3a62056309603" 77 | 78 | [[package]] 79 | name = "basic-toml" 80 | version = "0.1.9" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" 83 | dependencies = [ 84 | "serde", 85 | ] 86 | 87 | [[package]] 88 | name = "bitfield" 89 | version = "0.16.1" 90 | source = "registry+https://github.com/rust-lang/crates.io-index" 91 | checksum = "d5acf59e2452f0c4b968b15ce4b9468f57b45f7733b919d68b19fcc39264bfb8" 92 | 93 | [[package]] 94 | name = "bitflags" 95 | version = "2.6.0" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 98 | 99 | [[package]] 100 | name = "bytemuck" 101 | version = "1.18.0" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" 104 | 105 | [[package]] 106 | name = "byteorder" 107 | version = "1.5.0" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 110 | 111 | [[package]] 112 | name = "cfg-if" 113 | version = "1.0.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 116 | 117 | [[package]] 118 | name = "clap" 119 | version = "4.5.18" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" 122 | dependencies = [ 123 | "clap_builder", 124 | "clap_derive", 125 | ] 126 | 127 | [[package]] 128 | name = "clap_builder" 129 | version = "4.5.18" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" 132 | dependencies = [ 133 | "anstream", 134 | "anstyle", 135 | "clap_lex", 136 | "strsim", 137 | ] 138 | 139 | [[package]] 140 | name = "clap_derive" 141 | version = "4.5.18" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" 144 | dependencies = [ 145 | "heck", 146 | "proc-macro2", 147 | "quote", 148 | "syn 2.0.77", 149 | ] 150 | 151 | [[package]] 152 | name = "clap_lex" 153 | version = "0.7.2" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" 156 | 157 | [[package]] 158 | name = "colorchoice" 159 | version = "1.0.2" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" 162 | 163 | [[package]] 164 | name = "crc32fast" 165 | version = "1.4.0" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" 168 | dependencies = [ 169 | "cfg-if", 170 | ] 171 | 172 | [[package]] 173 | name = "critical-section" 174 | version = "1.1.3" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" 177 | 178 | [[package]] 179 | name = "darling" 180 | version = "0.20.10" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 183 | dependencies = [ 184 | "darling_core", 185 | "darling_macro", 186 | ] 187 | 188 | [[package]] 189 | name = "darling_core" 190 | version = "0.20.10" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 193 | dependencies = [ 194 | "fnv", 195 | "ident_case", 196 | "proc-macro2", 197 | "quote", 198 | "strsim", 199 | "syn 2.0.77", 200 | ] 201 | 202 | [[package]] 203 | name = "darling_macro" 204 | version = "0.20.10" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 207 | dependencies = [ 208 | "darling_core", 209 | "quote", 210 | "syn 2.0.77", 211 | ] 212 | 213 | [[package]] 214 | name = "delegate" 215 | version = "0.12.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "4e018fccbeeb50ff26562ece792ed06659b9c2dae79ece77c4456bb10d9bf79b" 218 | dependencies = [ 219 | "proc-macro2", 220 | "quote", 221 | "syn 2.0.77", 222 | ] 223 | 224 | [[package]] 225 | name = "document-features" 226 | version = "0.2.10" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" 229 | dependencies = [ 230 | "litrs", 231 | ] 232 | 233 | [[package]] 234 | name = "embassy-executor" 235 | version = "0.6.0" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | checksum = "09ed0e24bdd4a5f4ff1b72ee4f264b1d23e179ea71a77d984b5fd24877a2bbe1" 238 | dependencies = [ 239 | "critical-section", 240 | "document-features", 241 | "embassy-executor-macros", 242 | "embassy-time-driver", 243 | "embassy-time-queue-driver", 244 | "rtos-trace", 245 | ] 246 | 247 | [[package]] 248 | name = "embassy-executor-macros" 249 | version = "0.5.0" 250 | source = "registry+https://github.com/rust-lang/crates.io-index" 251 | checksum = "d4d4c0c34b32c2c653c9eecce1cefaf8539dd9a54e61deb5499254f01e2fcac2" 252 | dependencies = [ 253 | "darling", 254 | "proc-macro2", 255 | "quote", 256 | "syn 2.0.77", 257 | ] 258 | 259 | [[package]] 260 | name = "embassy-futures" 261 | version = "0.1.1" 262 | source = "registry+https://github.com/rust-lang/crates.io-index" 263 | checksum = "1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067" 264 | 265 | [[package]] 266 | name = "embassy-sync" 267 | version = "0.5.0" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "dd938f25c0798db4280fcd8026bf4c2f48789aebf8f77b6e5cf8a7693ba114ec" 270 | dependencies = [ 271 | "cfg-if", 272 | "critical-section", 273 | "embedded-io-async", 274 | "futures-util", 275 | "heapless", 276 | ] 277 | 278 | [[package]] 279 | name = "embassy-sync" 280 | version = "0.6.0" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "b3e0c49ff02ebe324faf3a8653ba91582e2d0a7fdef5bc88f449d5aa1bfcc05c" 283 | dependencies = [ 284 | "cfg-if", 285 | "critical-section", 286 | "embedded-io-async", 287 | "futures-util", 288 | "heapless", 289 | ] 290 | 291 | [[package]] 292 | name = "embassy-time" 293 | version = "0.3.2" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "158080d48f824fad101d7b2fae2d83ac39e3f7a6fa01811034f7ab8ffc6e7309" 296 | dependencies = [ 297 | "cfg-if", 298 | "critical-section", 299 | "document-features", 300 | "embassy-time-driver", 301 | "embassy-time-queue-driver", 302 | "embedded-hal 0.2.7", 303 | "embedded-hal 1.0.0", 304 | "embedded-hal-async", 305 | "futures-util", 306 | "heapless", 307 | ] 308 | 309 | [[package]] 310 | name = "embassy-time-driver" 311 | version = "0.1.0" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "6e0c214077aaa9206958b16411c157961fb7990d4ea628120a78d1a5a28aed24" 314 | dependencies = [ 315 | "document-features", 316 | ] 317 | 318 | [[package]] 319 | name = "embassy-time-queue-driver" 320 | version = "0.1.0" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "f1177859559ebf42cd24ae7ba8fe6ee707489b01d0bf471f8827b7b12dcb0bc0" 323 | 324 | [[package]] 325 | name = "embassy-usb-driver" 326 | version = "0.1.0" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | checksum = "4fc247028eae04174b6635104a35b1ed336aabef4654f5e87a8f32327d231970" 329 | 330 | [[package]] 331 | name = "embassy-usb-synopsys-otg" 332 | version = "0.1.0" 333 | source = "registry+https://github.com/rust-lang/crates.io-index" 334 | checksum = "d46be92e72bcf39e623ff74d739a8ab29b02f4909a9b05986ca81c2157ac254a" 335 | dependencies = [ 336 | "critical-section", 337 | "embassy-sync 0.5.0", 338 | "embassy-usb-driver", 339 | ] 340 | 341 | [[package]] 342 | name = "embedded-can" 343 | version = "0.4.1" 344 | source = "registry+https://github.com/rust-lang/crates.io-index" 345 | checksum = "e9d2e857f87ac832df68fa498d18ddc679175cf3d2e4aa893988e5601baf9438" 346 | dependencies = [ 347 | "nb 1.1.0", 348 | ] 349 | 350 | [[package]] 351 | name = "embedded-hal" 352 | version = "0.2.7" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff" 355 | dependencies = [ 356 | "nb 0.1.3", 357 | "void", 358 | ] 359 | 360 | [[package]] 361 | name = "embedded-hal" 362 | version = "1.0.0" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" 365 | 366 | [[package]] 367 | name = "embedded-hal-async" 368 | version = "1.0.0" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "0c4c685bbef7fe13c3c6dd4da26841ed3980ef33e841cddfa15ce8a8fb3f1884" 371 | dependencies = [ 372 | "embedded-hal 1.0.0", 373 | ] 374 | 375 | [[package]] 376 | name = "embedded-hal-nb" 377 | version = "1.0.0" 378 | source = "registry+https://github.com/rust-lang/crates.io-index" 379 | checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" 380 | dependencies = [ 381 | "embedded-hal 1.0.0", 382 | "nb 1.1.0", 383 | ] 384 | 385 | [[package]] 386 | name = "embedded-io" 387 | version = "0.6.1" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 390 | 391 | [[package]] 392 | name = "embedded-io-async" 393 | version = "0.6.1" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" 396 | dependencies = [ 397 | "embedded-io", 398 | ] 399 | 400 | [[package]] 401 | name = "enum-as-inner" 402 | version = "0.6.1" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 405 | dependencies = [ 406 | "heck", 407 | "proc-macro2", 408 | "quote", 409 | "syn 2.0.77", 410 | ] 411 | 412 | [[package]] 413 | name = "enumset" 414 | version = "1.1.5" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" 417 | dependencies = [ 418 | "enumset_derive", 419 | ] 420 | 421 | [[package]] 422 | name = "enumset_derive" 423 | version = "0.10.0" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" 426 | dependencies = [ 427 | "darling", 428 | "proc-macro2", 429 | "quote", 430 | "syn 2.0.77", 431 | ] 432 | 433 | [[package]] 434 | name = "equivalent" 435 | version = "1.0.1" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 438 | 439 | [[package]] 440 | name = "esp-backtrace" 441 | version = "0.14.1" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "9c2ff4bce686f28fe48a5d16aaa48c30b627a423bb689be57949bb210b8551d0" 444 | dependencies = [ 445 | "esp-build", 446 | "esp-println", 447 | "semihosting", 448 | ] 449 | 450 | [[package]] 451 | name = "esp-build" 452 | version = "0.1.0" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "b94a4b8d74e7cc7baabcca5b2277b41877e039ad9cd49959d48ef94dac7eab4b" 455 | dependencies = [ 456 | "quote", 457 | "syn 2.0.77", 458 | "termcolor", 459 | ] 460 | 461 | [[package]] 462 | name = "esp-hal" 463 | version = "0.20.1" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | checksum = "64f5393b8f7e7f055455d9f86706ddb675f943c12f12a7b80b8a79c3a94233ff" 466 | dependencies = [ 467 | "basic-toml", 468 | "bitfield", 469 | "bitflags", 470 | "bytemuck", 471 | "cfg-if", 472 | "critical-section", 473 | "delegate", 474 | "document-features", 475 | "embassy-futures", 476 | "embassy-sync 0.6.0", 477 | "embassy-usb-driver", 478 | "embassy-usb-synopsys-otg", 479 | "embedded-can", 480 | "embedded-hal 1.0.0", 481 | "embedded-hal-async", 482 | "embedded-hal-nb", 483 | "embedded-io", 484 | "embedded-io-async", 485 | "enumset", 486 | "esp-build", 487 | "esp-hal-procmacros", 488 | "esp-metadata", 489 | "esp-riscv-rt", 490 | "esp-synopsys-usb-otg", 491 | "esp32c2", 492 | "esp32c3", 493 | "esp32c6", 494 | "esp32h2", 495 | "esp32s2", 496 | "esp32s3", 497 | "fugit", 498 | "nb 1.1.0", 499 | "paste", 500 | "portable-atomic", 501 | "rand_core", 502 | "riscv", 503 | "serde", 504 | "strum", 505 | "usb-device", 506 | "void", 507 | "xtensa-lx", 508 | "xtensa-lx-rt", 509 | ] 510 | 511 | [[package]] 512 | name = "esp-hal-embassy" 513 | version = "0.3.0" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "46e47f06e0d7ddf411c3a582ec8fdc4fbc91713aa14bad736618677df0ffb606" 516 | dependencies = [ 517 | "cfg-if", 518 | "critical-section", 519 | "document-features", 520 | "embassy-executor", 521 | "embassy-time-driver", 522 | "esp-build", 523 | "esp-hal", 524 | "esp-hal-procmacros", 525 | "esp-metadata", 526 | "portable-atomic", 527 | "static_cell", 528 | ] 529 | 530 | [[package]] 531 | name = "esp-hal-procmacros" 532 | version = "0.13.0" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "6eac531546027909a355fc9c2449f22c839955fa4b7f1976b64ddd04b2f22f83" 535 | dependencies = [ 536 | "darling", 537 | "document-features", 538 | "litrs", 539 | "object", 540 | "proc-macro-crate", 541 | "proc-macro-error", 542 | "proc-macro2", 543 | "quote", 544 | "syn 2.0.77", 545 | ] 546 | 547 | [[package]] 548 | name = "esp-metadata" 549 | version = "0.3.0" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | checksum = "b471bc61fa817ca4ae41a31d5d453258328b31e5ad82db72b473621d36cc4cb6" 552 | dependencies = [ 553 | "anyhow", 554 | "basic-toml", 555 | "clap", 556 | "lazy_static", 557 | "serde", 558 | "strum", 559 | ] 560 | 561 | [[package]] 562 | name = "esp-println" 563 | version = "0.11.0" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "0d9dd4fc40306450e432cdf104ab00c8f6bd5c4f6c77b76c5fc3024c0e2a535d" 566 | dependencies = [ 567 | "critical-section", 568 | "esp-build", 569 | "log", 570 | "portable-atomic", 571 | ] 572 | 573 | [[package]] 574 | name = "esp-riscv-rt" 575 | version = "0.9.0" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "bfc32298ed7c263b06c8b031704d8517cc62c819f2a9d5c261d0cb119634d6e9" 578 | dependencies = [ 579 | "document-features", 580 | "riscv", 581 | "riscv-rt-macros", 582 | ] 583 | 584 | [[package]] 585 | name = "esp-synopsys-usb-otg" 586 | version = "0.4.2" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "8938451cb19032f13365328ea66ab38c8d16deecdf322067442297110eb74468" 589 | dependencies = [ 590 | "critical-section", 591 | "embedded-hal 0.2.7", 592 | "ral-registers", 593 | "usb-device", 594 | "vcell", 595 | ] 596 | 597 | [[package]] 598 | name = "esp-xray" 599 | version = "0.1.0" 600 | dependencies = [ 601 | "critical-section", 602 | "esp-hal", 603 | "rtos-trace", 604 | "rtt-target", 605 | ] 606 | 607 | [[package]] 608 | name = "esp-xray-example" 609 | version = "0.1.0" 610 | dependencies = [ 611 | "embassy-executor", 612 | "embassy-time", 613 | "esp-backtrace", 614 | "esp-hal", 615 | "esp-hal-embassy", 616 | "esp-println", 617 | "esp-xray", 618 | ] 619 | 620 | [[package]] 621 | name = "esp32c2" 622 | version = "0.22.0" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "8f9216c7ca4aefe4723d38a765e27801c4e92dec792870403466fc9adb438056" 625 | dependencies = [ 626 | "critical-section", 627 | "vcell", 628 | ] 629 | 630 | [[package]] 631 | name = "esp32c3" 632 | version = "0.25.0" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "3922cd13da83d070892c47e66f005856c62510952198c3008bc4f3b79f3e9623" 635 | dependencies = [ 636 | "critical-section", 637 | "vcell", 638 | ] 639 | 640 | [[package]] 641 | name = "esp32c6" 642 | version = "0.16.0" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "f0c05e230022cf5a8d10e9bcdc4878c0886a3a5701a96d6763cb42562e42ecd7" 645 | dependencies = [ 646 | "critical-section", 647 | "vcell", 648 | ] 649 | 650 | [[package]] 651 | name = "esp32h2" 652 | version = "0.12.0" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "1b05edd3bb766f66180b49c53b3503cf41b72936912a9552462a6a233ccdcac4" 655 | dependencies = [ 656 | "critical-section", 657 | "vcell", 658 | ] 659 | 660 | [[package]] 661 | name = "esp32s2" 662 | version = "0.24.0" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "9cc0ce1947afdcc4cb74dc8955e1575fcfa38931e0282ed171811dde0afc0fc6" 665 | dependencies = [ 666 | "critical-section", 667 | "vcell", 668 | "xtensa-lx", 669 | ] 670 | 671 | [[package]] 672 | name = "esp32s3" 673 | version = "0.28.0" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "eae51703c44196b924910bd8ea7285e5a234d1a5aebcd0b60a997cd5081eb002" 676 | dependencies = [ 677 | "critical-section", 678 | "vcell", 679 | "xtensa-lx", 680 | ] 681 | 682 | [[package]] 683 | name = "flate2" 684 | version = "1.0.28" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" 687 | dependencies = [ 688 | "crc32fast", 689 | "miniz_oxide", 690 | ] 691 | 692 | [[package]] 693 | name = "fnv" 694 | version = "1.0.7" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 697 | 698 | [[package]] 699 | name = "fugit" 700 | version = "0.3.7" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "17186ad64927d5ac8f02c1e77ccefa08ccd9eaa314d5a4772278aa204a22f7e7" 703 | dependencies = [ 704 | "gcd", 705 | ] 706 | 707 | [[package]] 708 | name = "futures-core" 709 | version = "0.3.30" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 712 | 713 | [[package]] 714 | name = "futures-task" 715 | version = "0.3.30" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 718 | 719 | [[package]] 720 | name = "futures-util" 721 | version = "0.3.30" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 724 | dependencies = [ 725 | "futures-core", 726 | "futures-task", 727 | "pin-project-lite", 728 | "pin-utils", 729 | ] 730 | 731 | [[package]] 732 | name = "gcd" 733 | version = "2.3.0" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" 736 | 737 | [[package]] 738 | name = "hash32" 739 | version = "0.3.1" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 742 | dependencies = [ 743 | "byteorder", 744 | ] 745 | 746 | [[package]] 747 | name = "hashbrown" 748 | version = "0.14.3" 749 | source = "registry+https://github.com/rust-lang/crates.io-index" 750 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 751 | 752 | [[package]] 753 | name = "heapless" 754 | version = "0.8.0" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 757 | dependencies = [ 758 | "hash32", 759 | "stable_deref_trait", 760 | ] 761 | 762 | [[package]] 763 | name = "heck" 764 | version = "0.5.0" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 767 | 768 | [[package]] 769 | name = "ident_case" 770 | version = "1.0.1" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 773 | 774 | [[package]] 775 | name = "indexmap" 776 | version = "2.5.0" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" 779 | dependencies = [ 780 | "equivalent", 781 | "hashbrown", 782 | ] 783 | 784 | [[package]] 785 | name = "is_terminal_polyfill" 786 | version = "1.70.1" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 789 | 790 | [[package]] 791 | name = "lazy_static" 792 | version = "1.5.0" 793 | source = "registry+https://github.com/rust-lang/crates.io-index" 794 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 795 | 796 | [[package]] 797 | name = "litrs" 798 | version = "0.4.1" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 801 | dependencies = [ 802 | "proc-macro2", 803 | ] 804 | 805 | [[package]] 806 | name = "lock_api" 807 | version = "0.4.11" 808 | source = "registry+https://github.com/rust-lang/crates.io-index" 809 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 810 | dependencies = [ 811 | "autocfg", 812 | "scopeguard", 813 | ] 814 | 815 | [[package]] 816 | name = "log" 817 | version = "0.4.22" 818 | source = "registry+https://github.com/rust-lang/crates.io-index" 819 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 820 | 821 | [[package]] 822 | name = "memchr" 823 | version = "2.7.2" 824 | source = "registry+https://github.com/rust-lang/crates.io-index" 825 | checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" 826 | 827 | [[package]] 828 | name = "minijinja" 829 | version = "2.3.1" 830 | source = "registry+https://github.com/rust-lang/crates.io-index" 831 | checksum = "1028b628753a7e1a88fc59c9ba4b02ecc3bc0bd3c7af23df667bc28df9b3310e" 832 | dependencies = [ 833 | "serde", 834 | ] 835 | 836 | [[package]] 837 | name = "miniz_oxide" 838 | version = "0.7.2" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 841 | dependencies = [ 842 | "adler", 843 | ] 844 | 845 | [[package]] 846 | name = "mutex-trait" 847 | version = "0.2.0" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "b4bb1638d419e12f8b1c43d9e639abd0d1424285bdea2f76aa231e233c63cd3a" 850 | 851 | [[package]] 852 | name = "nb" 853 | version = "0.1.3" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" 856 | dependencies = [ 857 | "nb 1.1.0", 858 | ] 859 | 860 | [[package]] 861 | name = "nb" 862 | version = "1.1.0" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" 865 | 866 | [[package]] 867 | name = "object" 868 | version = "0.36.4" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" 871 | dependencies = [ 872 | "flate2", 873 | "memchr", 874 | "ruzstd", 875 | ] 876 | 877 | [[package]] 878 | name = "paste" 879 | version = "1.0.15" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 882 | 883 | [[package]] 884 | name = "pin-project-lite" 885 | version = "0.2.13" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 888 | 889 | [[package]] 890 | name = "pin-utils" 891 | version = "0.1.0" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 894 | 895 | [[package]] 896 | name = "portable-atomic" 897 | version = "1.8.0" 898 | source = "registry+https://github.com/rust-lang/crates.io-index" 899 | checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" 900 | dependencies = [ 901 | "critical-section", 902 | ] 903 | 904 | [[package]] 905 | name = "proc-macro-crate" 906 | version = "3.2.0" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" 909 | dependencies = [ 910 | "toml_edit", 911 | ] 912 | 913 | [[package]] 914 | name = "proc-macro-error" 915 | version = "1.0.4" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 918 | dependencies = [ 919 | "proc-macro-error-attr", 920 | "proc-macro2", 921 | "quote", 922 | "syn 1.0.109", 923 | "version_check", 924 | ] 925 | 926 | [[package]] 927 | name = "proc-macro-error-attr" 928 | version = "1.0.4" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 931 | dependencies = [ 932 | "proc-macro2", 933 | "quote", 934 | "version_check", 935 | ] 936 | 937 | [[package]] 938 | name = "proc-macro2" 939 | version = "1.0.86" 940 | source = "registry+https://github.com/rust-lang/crates.io-index" 941 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 942 | dependencies = [ 943 | "unicode-ident", 944 | ] 945 | 946 | [[package]] 947 | name = "quote" 948 | version = "1.0.37" 949 | source = "registry+https://github.com/rust-lang/crates.io-index" 950 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 951 | dependencies = [ 952 | "proc-macro2", 953 | ] 954 | 955 | [[package]] 956 | name = "r0" 957 | version = "1.0.0" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" 960 | 961 | [[package]] 962 | name = "ral-registers" 963 | version = "0.1.3" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "46b71a9d9206e8b46714c74255adcaea8b11e0350c1d8456165073c3f75fc81a" 966 | 967 | [[package]] 968 | name = "rand_core" 969 | version = "0.6.4" 970 | source = "registry+https://github.com/rust-lang/crates.io-index" 971 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 972 | 973 | [[package]] 974 | name = "riscv" 975 | version = "0.11.1" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "2f5c1b8bf41ea746266cdee443d1d1e9125c86ce1447e1a2615abd34330d33a9" 978 | dependencies = [ 979 | "critical-section", 980 | "embedded-hal 1.0.0", 981 | ] 982 | 983 | [[package]] 984 | name = "riscv-rt-macros" 985 | version = "0.2.1" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "a8d100d466dbb76681ef6a9386f3da9abc570d57394e86da0ba5af8c4408486d" 988 | dependencies = [ 989 | "proc-macro2", 990 | "quote", 991 | "syn 1.0.109", 992 | ] 993 | 994 | [[package]] 995 | name = "rtos-trace" 996 | version = "0.1.3" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "cdb6bcec3374f2049b3979112fa2e6c49b2a37f08de9b9759c6aa76531fb8097" 999 | 1000 | [[package]] 1001 | name = "rtt-target" 1002 | version = "0.5.0" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | checksum = "10b34c9e6832388e45f3c01f1bb60a016384a0a4ad80cdd7d34913bed25037f0" 1005 | dependencies = [ 1006 | "critical-section", 1007 | "ufmt-write", 1008 | ] 1009 | 1010 | [[package]] 1011 | name = "rustversion" 1012 | version = "1.0.14" 1013 | source = "registry+https://github.com/rust-lang/crates.io-index" 1014 | checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 1015 | 1016 | [[package]] 1017 | name = "ruzstd" 1018 | version = "0.7.2" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "99c3938e133aac070997ddc684d4b393777d293ba170f2988c8fd5ea2ad4ce21" 1021 | dependencies = [ 1022 | "twox-hash", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "scopeguard" 1027 | version = "1.2.0" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1030 | 1031 | [[package]] 1032 | name = "semihosting" 1033 | version = "0.1.15" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "3f69d4d7b8d5f6595ac8901b8c4ede3339b1b4c8565f9d3180d20fc046cca177" 1036 | 1037 | [[package]] 1038 | name = "serde" 1039 | version = "1.0.210" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 1042 | dependencies = [ 1043 | "serde_derive", 1044 | ] 1045 | 1046 | [[package]] 1047 | name = "serde_derive" 1048 | version = "1.0.210" 1049 | source = "registry+https://github.com/rust-lang/crates.io-index" 1050 | checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 1051 | dependencies = [ 1052 | "proc-macro2", 1053 | "quote", 1054 | "syn 2.0.77", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "serde_spanned" 1059 | version = "0.6.8" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 1062 | dependencies = [ 1063 | "serde", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "spin" 1068 | version = "0.9.8" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1071 | dependencies = [ 1072 | "lock_api", 1073 | ] 1074 | 1075 | [[package]] 1076 | name = "stable_deref_trait" 1077 | version = "1.2.0" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1080 | 1081 | [[package]] 1082 | name = "static_assertions" 1083 | version = "1.1.0" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1086 | 1087 | [[package]] 1088 | name = "static_cell" 1089 | version = "2.1.0" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "d89b0684884a883431282db1e4343f34afc2ff6996fe1f4a1664519b66e14c1e" 1092 | dependencies = [ 1093 | "portable-atomic", 1094 | ] 1095 | 1096 | [[package]] 1097 | name = "strsim" 1098 | version = "0.11.1" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1101 | 1102 | [[package]] 1103 | name = "strum" 1104 | version = "0.26.3" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1107 | dependencies = [ 1108 | "strum_macros", 1109 | ] 1110 | 1111 | [[package]] 1112 | name = "strum_macros" 1113 | version = "0.26.4" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 1116 | dependencies = [ 1117 | "heck", 1118 | "proc-macro2", 1119 | "quote", 1120 | "rustversion", 1121 | "syn 2.0.77", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "syn" 1126 | version = "1.0.109" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1129 | dependencies = [ 1130 | "proc-macro2", 1131 | "quote", 1132 | "unicode-ident", 1133 | ] 1134 | 1135 | [[package]] 1136 | name = "syn" 1137 | version = "2.0.77" 1138 | source = "registry+https://github.com/rust-lang/crates.io-index" 1139 | checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" 1140 | dependencies = [ 1141 | "proc-macro2", 1142 | "quote", 1143 | "unicode-ident", 1144 | ] 1145 | 1146 | [[package]] 1147 | name = "termcolor" 1148 | version = "1.4.1" 1149 | source = "registry+https://github.com/rust-lang/crates.io-index" 1150 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 1151 | dependencies = [ 1152 | "winapi-util", 1153 | ] 1154 | 1155 | [[package]] 1156 | name = "toml" 1157 | version = "0.8.19" 1158 | source = "registry+https://github.com/rust-lang/crates.io-index" 1159 | checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" 1160 | dependencies = [ 1161 | "serde", 1162 | "serde_spanned", 1163 | "toml_datetime", 1164 | "toml_edit", 1165 | ] 1166 | 1167 | [[package]] 1168 | name = "toml_datetime" 1169 | version = "0.6.8" 1170 | source = "registry+https://github.com/rust-lang/crates.io-index" 1171 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 1172 | dependencies = [ 1173 | "serde", 1174 | ] 1175 | 1176 | [[package]] 1177 | name = "toml_edit" 1178 | version = "0.22.22" 1179 | source = "registry+https://github.com/rust-lang/crates.io-index" 1180 | checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 1181 | dependencies = [ 1182 | "indexmap", 1183 | "serde", 1184 | "serde_spanned", 1185 | "toml_datetime", 1186 | "winnow", 1187 | ] 1188 | 1189 | [[package]] 1190 | name = "twox-hash" 1191 | version = "1.6.3" 1192 | source = "registry+https://github.com/rust-lang/crates.io-index" 1193 | checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 1194 | dependencies = [ 1195 | "cfg-if", 1196 | "static_assertions", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "ufmt-write" 1201 | version = "0.1.0" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "e87a2ed6b42ec5e28cc3b94c09982969e9227600b2e3dcbc1db927a84c06bd69" 1204 | 1205 | [[package]] 1206 | name = "unicode-ident" 1207 | version = "1.0.12" 1208 | source = "registry+https://github.com/rust-lang/crates.io-index" 1209 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1210 | 1211 | [[package]] 1212 | name = "usb-device" 1213 | version = "0.3.2" 1214 | source = "registry+https://github.com/rust-lang/crates.io-index" 1215 | checksum = "98816b1accafbb09085168b90f27e93d790b4bfa19d883466b5e53315b5f06a6" 1216 | dependencies = [ 1217 | "heapless", 1218 | "portable-atomic", 1219 | ] 1220 | 1221 | [[package]] 1222 | name = "utf8parse" 1223 | version = "0.2.2" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 1226 | 1227 | [[package]] 1228 | name = "vcell" 1229 | version = "0.1.3" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" 1232 | 1233 | [[package]] 1234 | name = "version_check" 1235 | version = "0.9.4" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1238 | 1239 | [[package]] 1240 | name = "void" 1241 | version = "1.0.2" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 1244 | 1245 | [[package]] 1246 | name = "winapi-util" 1247 | version = "0.1.9" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 1250 | dependencies = [ 1251 | "windows-sys 0.59.0", 1252 | ] 1253 | 1254 | [[package]] 1255 | name = "windows-sys" 1256 | version = "0.52.0" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1259 | dependencies = [ 1260 | "windows-targets", 1261 | ] 1262 | 1263 | [[package]] 1264 | name = "windows-sys" 1265 | version = "0.59.0" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1268 | dependencies = [ 1269 | "windows-targets", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "windows-targets" 1274 | version = "0.52.6" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1277 | dependencies = [ 1278 | "windows_aarch64_gnullvm", 1279 | "windows_aarch64_msvc", 1280 | "windows_i686_gnu", 1281 | "windows_i686_gnullvm", 1282 | "windows_i686_msvc", 1283 | "windows_x86_64_gnu", 1284 | "windows_x86_64_gnullvm", 1285 | "windows_x86_64_msvc", 1286 | ] 1287 | 1288 | [[package]] 1289 | name = "windows_aarch64_gnullvm" 1290 | version = "0.52.6" 1291 | source = "registry+https://github.com/rust-lang/crates.io-index" 1292 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1293 | 1294 | [[package]] 1295 | name = "windows_aarch64_msvc" 1296 | version = "0.52.6" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1299 | 1300 | [[package]] 1301 | name = "windows_i686_gnu" 1302 | version = "0.52.6" 1303 | source = "registry+https://github.com/rust-lang/crates.io-index" 1304 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1305 | 1306 | [[package]] 1307 | name = "windows_i686_gnullvm" 1308 | version = "0.52.6" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1311 | 1312 | [[package]] 1313 | name = "windows_i686_msvc" 1314 | version = "0.52.6" 1315 | source = "registry+https://github.com/rust-lang/crates.io-index" 1316 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1317 | 1318 | [[package]] 1319 | name = "windows_x86_64_gnu" 1320 | version = "0.52.6" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1323 | 1324 | [[package]] 1325 | name = "windows_x86_64_gnullvm" 1326 | version = "0.52.6" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1329 | 1330 | [[package]] 1331 | name = "windows_x86_64_msvc" 1332 | version = "0.52.6" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1335 | 1336 | [[package]] 1337 | name = "winnow" 1338 | version = "0.6.20" 1339 | source = "registry+https://github.com/rust-lang/crates.io-index" 1340 | checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 1341 | dependencies = [ 1342 | "memchr", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "xtensa-lx" 1347 | version = "0.9.0" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "e758f94e1a1f71758f94052a2766dcb12604998eb372b8b2e30576e3ab1ba1e6" 1350 | dependencies = [ 1351 | "bare-metal", 1352 | "mutex-trait", 1353 | "spin", 1354 | ] 1355 | 1356 | [[package]] 1357 | name = "xtensa-lx-rt" 1358 | version = "0.17.1" 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" 1360 | checksum = "2ceb69c1487b78d83531c5d94fb81d0dceef1ccb0affba29f29420b1f72d3ddb" 1361 | dependencies = [ 1362 | "anyhow", 1363 | "bare-metal", 1364 | "document-features", 1365 | "enum-as-inner", 1366 | "minijinja", 1367 | "r0", 1368 | "serde", 1369 | "strum", 1370 | "toml", 1371 | "xtensa-lx", 1372 | "xtensa-lx-rt-proc-macros", 1373 | ] 1374 | 1375 | [[package]] 1376 | name = "xtensa-lx-rt-proc-macros" 1377 | version = "0.2.2" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "11277b1e4cbb7ffe44678c668518b249c843c81df249b8f096701757bc50d7ee" 1380 | dependencies = [ 1381 | "darling", 1382 | "proc-macro2", 1383 | "quote", 1384 | "syn 2.0.77", 1385 | ] 1386 | -------------------------------------------------------------------------------- /server/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 = "adler2" 7 | version = "2.0.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 10 | 11 | [[package]] 12 | name = "aho-corasick" 13 | version = "1.1.3" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 16 | dependencies = [ 17 | "memchr", 18 | ] 19 | 20 | [[package]] 21 | name = "anstream" 22 | version = "0.6.15" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" 25 | dependencies = [ 26 | "anstyle", 27 | "anstyle-parse", 28 | "anstyle-query", 29 | "anstyle-wincon", 30 | "colorchoice", 31 | "is_terminal_polyfill", 32 | "utf8parse", 33 | ] 34 | 35 | [[package]] 36 | name = "anstyle" 37 | version = "1.0.8" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" 40 | 41 | [[package]] 42 | name = "anstyle-parse" 43 | version = "0.2.5" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" 46 | dependencies = [ 47 | "utf8parse", 48 | ] 49 | 50 | [[package]] 51 | name = "anstyle-query" 52 | version = "1.1.1" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" 55 | dependencies = [ 56 | "windows-sys 0.52.0", 57 | ] 58 | 59 | [[package]] 60 | name = "anstyle-wincon" 61 | version = "3.0.4" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" 64 | dependencies = [ 65 | "anstyle", 66 | "windows-sys 0.52.0", 67 | ] 68 | 69 | [[package]] 70 | name = "anyhow" 71 | version = "1.0.89" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" 74 | 75 | [[package]] 76 | name = "async-io" 77 | version = "2.3.4" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" 80 | dependencies = [ 81 | "async-lock", 82 | "cfg-if", 83 | "concurrent-queue", 84 | "futures-io", 85 | "futures-lite", 86 | "parking", 87 | "polling", 88 | "rustix", 89 | "slab", 90 | "tracing", 91 | "windows-sys 0.59.0", 92 | ] 93 | 94 | [[package]] 95 | name = "async-lock" 96 | version = "3.4.0" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 99 | dependencies = [ 100 | "event-listener", 101 | "event-listener-strategy", 102 | "pin-project-lite", 103 | ] 104 | 105 | [[package]] 106 | name = "atomic-waker" 107 | version = "1.1.2" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 110 | 111 | [[package]] 112 | name = "autocfg" 113 | version = "1.3.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 116 | 117 | [[package]] 118 | name = "base64" 119 | version = "0.22.1" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 122 | 123 | [[package]] 124 | name = "bincode" 125 | version = "1.3.3" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 128 | dependencies = [ 129 | "serde", 130 | ] 131 | 132 | [[package]] 133 | name = "bitfield" 134 | version = "0.17.0" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "f798d2d157e547aa99aab0967df39edd0b70307312b6f8bd2848e6abe40896e0" 137 | 138 | [[package]] 139 | name = "bitflags" 140 | version = "2.6.0" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 143 | 144 | [[package]] 145 | name = "bitvec" 146 | version = "1.0.1" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 149 | dependencies = [ 150 | "funty", 151 | "radium", 152 | "tap", 153 | "wyz", 154 | ] 155 | 156 | [[package]] 157 | name = "block-buffer" 158 | version = "0.10.4" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 161 | dependencies = [ 162 | "generic-array", 163 | ] 164 | 165 | [[package]] 166 | name = "bytemuck" 167 | version = "1.18.0" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" 170 | dependencies = [ 171 | "bytemuck_derive", 172 | ] 173 | 174 | [[package]] 175 | name = "bytemuck_derive" 176 | version = "1.7.1" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" 179 | dependencies = [ 180 | "proc-macro2", 181 | "quote", 182 | "syn 2.0.77", 183 | ] 184 | 185 | [[package]] 186 | name = "byteorder" 187 | version = "1.5.0" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 190 | 191 | [[package]] 192 | name = "cc" 193 | version = "1.1.21" 194 | source = "registry+https://github.com/rust-lang/crates.io-index" 195 | checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" 196 | dependencies = [ 197 | "shlex", 198 | ] 199 | 200 | [[package]] 201 | name = "cfg-if" 202 | version = "1.0.0" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 205 | 206 | [[package]] 207 | name = "chrono" 208 | version = "0.4.38" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 211 | dependencies = [ 212 | "num-traits", 213 | "serde", 214 | ] 215 | 216 | [[package]] 217 | name = "clap" 218 | version = "4.5.18" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" 221 | dependencies = [ 222 | "clap_builder", 223 | "clap_derive", 224 | ] 225 | 226 | [[package]] 227 | name = "clap_builder" 228 | version = "4.5.18" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" 231 | dependencies = [ 232 | "anstream", 233 | "anstyle", 234 | "clap_lex", 235 | "strsim 0.11.1", 236 | ] 237 | 238 | [[package]] 239 | name = "clap_derive" 240 | version = "4.5.18" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" 243 | dependencies = [ 244 | "heck", 245 | "proc-macro2", 246 | "quote", 247 | "syn 2.0.77", 248 | ] 249 | 250 | [[package]] 251 | name = "clap_lex" 252 | version = "0.7.2" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" 255 | 256 | [[package]] 257 | name = "colorchoice" 258 | version = "1.0.2" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" 261 | 262 | [[package]] 263 | name = "concurrent-queue" 264 | version = "2.5.0" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 267 | dependencies = [ 268 | "crossbeam-utils", 269 | ] 270 | 271 | [[package]] 272 | name = "core-foundation" 273 | version = "0.9.4" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 276 | dependencies = [ 277 | "core-foundation-sys", 278 | "libc", 279 | ] 280 | 281 | [[package]] 282 | name = "core-foundation-sys" 283 | version = "0.8.7" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 286 | 287 | [[package]] 288 | name = "cpufeatures" 289 | version = "0.2.14" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" 292 | dependencies = [ 293 | "libc", 294 | ] 295 | 296 | [[package]] 297 | name = "crc32fast" 298 | version = "1.4.2" 299 | source = "registry+https://github.com/rust-lang/crates.io-index" 300 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 301 | dependencies = [ 302 | "cfg-if", 303 | ] 304 | 305 | [[package]] 306 | name = "crossbeam-utils" 307 | version = "0.8.20" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 310 | 311 | [[package]] 312 | name = "crypto-common" 313 | version = "0.1.6" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 316 | dependencies = [ 317 | "generic-array", 318 | "typenum", 319 | ] 320 | 321 | [[package]] 322 | name = "csv" 323 | version = "1.3.0" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" 326 | dependencies = [ 327 | "csv-core", 328 | "itoa", 329 | "ryu", 330 | "serde", 331 | ] 332 | 333 | [[package]] 334 | name = "csv-core" 335 | version = "0.1.11" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" 338 | dependencies = [ 339 | "memchr", 340 | ] 341 | 342 | [[package]] 343 | name = "darling" 344 | version = "0.14.4" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 347 | dependencies = [ 348 | "darling_core", 349 | "darling_macro", 350 | ] 351 | 352 | [[package]] 353 | name = "darling_core" 354 | version = "0.14.4" 355 | source = "registry+https://github.com/rust-lang/crates.io-index" 356 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 357 | dependencies = [ 358 | "fnv", 359 | "ident_case", 360 | "proc-macro2", 361 | "quote", 362 | "strsim 0.10.0", 363 | "syn 1.0.109", 364 | ] 365 | 366 | [[package]] 367 | name = "darling_macro" 368 | version = "0.14.4" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 371 | dependencies = [ 372 | "darling_core", 373 | "quote", 374 | "syn 1.0.109", 375 | ] 376 | 377 | [[package]] 378 | name = "deku" 379 | version = "0.16.0" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "819b87cc7a05b3abe3fc38e59b3980a5fd3162f25a247116441a9171d3e84481" 382 | dependencies = [ 383 | "bitvec", 384 | "deku_derive", 385 | ] 386 | 387 | [[package]] 388 | name = "deku_derive" 389 | version = "0.16.0" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "4e2ca12572239215a352a74ad7c776d7e8a914f8a23511c6cbedddd887e5009e" 392 | dependencies = [ 393 | "darling", 394 | "proc-macro-crate", 395 | "proc-macro2", 396 | "quote", 397 | "syn 1.0.109", 398 | ] 399 | 400 | [[package]] 401 | name = "deranged" 402 | version = "0.3.11" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 405 | dependencies = [ 406 | "powerfmt", 407 | ] 408 | 409 | [[package]] 410 | name = "digest" 411 | version = "0.10.7" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 414 | dependencies = [ 415 | "block-buffer", 416 | "crypto-common", 417 | ] 418 | 419 | [[package]] 420 | name = "docsplay" 421 | version = "0.1.1" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "21c64169ab69178537cce74424c550583a84f58bc62593ea6023c58886be69b4" 424 | dependencies = [ 425 | "docsplay-macros", 426 | ] 427 | 428 | [[package]] 429 | name = "docsplay-macros" 430 | version = "0.1.1" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "4673f83edb6dfabfbc26704bd89ee95f4b164cd5db5fe8c88efda48fb0fca8d7" 433 | dependencies = [ 434 | "proc-macro2", 435 | "quote", 436 | "syn 2.0.77", 437 | ] 438 | 439 | [[package]] 440 | name = "dunce" 441 | version = "1.0.5" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 444 | 445 | [[package]] 446 | name = "either" 447 | version = "1.13.0" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 450 | 451 | [[package]] 452 | name = "env_logger" 453 | version = "0.10.2" 454 | source = "registry+https://github.com/rust-lang/crates.io-index" 455 | checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" 456 | dependencies = [ 457 | "humantime", 458 | "is-terminal", 459 | "log", 460 | "regex", 461 | "termcolor", 462 | ] 463 | 464 | [[package]] 465 | name = "equivalent" 466 | version = "1.0.1" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 469 | 470 | [[package]] 471 | name = "errno" 472 | version = "0.3.9" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 475 | dependencies = [ 476 | "libc", 477 | "windows-sys 0.52.0", 478 | ] 479 | 480 | [[package]] 481 | name = "esp-idf-part" 482 | version = "0.5.0" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "59f50b6c32370067087b46087cd5333f2dfe678f0b01223fa70fde6f15449844" 485 | dependencies = [ 486 | "csv", 487 | "deku", 488 | "heapless", 489 | "md5", 490 | "parse_int", 491 | "regex", 492 | "serde", 493 | "serde_plain", 494 | "strum", 495 | "thiserror", 496 | ] 497 | 498 | [[package]] 499 | name = "esp-xray-server" 500 | version = "0.1.0" 501 | dependencies = [ 502 | "clap", 503 | "log", 504 | "pretty_env_logger", 505 | "probe-rs", 506 | ] 507 | 508 | [[package]] 509 | name = "espflash" 510 | version = "3.1.1" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "91a8eb94a67d80c4e2e127a5dbe39203ad1c36869f8337a6acc4c3f722176346" 513 | dependencies = [ 514 | "base64", 515 | "bytemuck", 516 | "esp-idf-part", 517 | "flate2", 518 | "libc", 519 | "log", 520 | "md-5", 521 | "miette", 522 | "serde", 523 | "sha2", 524 | "strum", 525 | "thiserror", 526 | "xmas-elf", 527 | ] 528 | 529 | [[package]] 530 | name = "event-listener" 531 | version = "5.3.1" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" 534 | dependencies = [ 535 | "concurrent-queue", 536 | "parking", 537 | "pin-project-lite", 538 | ] 539 | 540 | [[package]] 541 | name = "event-listener-strategy" 542 | version = "0.5.2" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" 545 | dependencies = [ 546 | "event-listener", 547 | "pin-project-lite", 548 | ] 549 | 550 | [[package]] 551 | name = "fallible-iterator" 552 | version = "0.3.0" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" 555 | 556 | [[package]] 557 | name = "flate2" 558 | version = "1.0.33" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" 561 | dependencies = [ 562 | "crc32fast", 563 | "miniz_oxide", 564 | ] 565 | 566 | [[package]] 567 | name = "fnv" 568 | version = "1.0.7" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 571 | 572 | [[package]] 573 | name = "form_urlencoded" 574 | version = "1.2.1" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 577 | dependencies = [ 578 | "percent-encoding", 579 | ] 580 | 581 | [[package]] 582 | name = "funty" 583 | version = "2.0.0" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 586 | 587 | [[package]] 588 | name = "futures-core" 589 | version = "0.3.30" 590 | source = "registry+https://github.com/rust-lang/crates.io-index" 591 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 592 | 593 | [[package]] 594 | name = "futures-io" 595 | version = "0.3.30" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 598 | 599 | [[package]] 600 | name = "futures-lite" 601 | version = "2.3.0" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" 604 | dependencies = [ 605 | "futures-core", 606 | "pin-project-lite", 607 | ] 608 | 609 | [[package]] 610 | name = "generic-array" 611 | version = "0.14.7" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 614 | dependencies = [ 615 | "typenum", 616 | "version_check", 617 | ] 618 | 619 | [[package]] 620 | name = "gimli" 621 | version = "0.31.0" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" 624 | dependencies = [ 625 | "fallible-iterator", 626 | "stable_deref_trait", 627 | ] 628 | 629 | [[package]] 630 | name = "hash32" 631 | version = "0.3.1" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 634 | dependencies = [ 635 | "byteorder", 636 | ] 637 | 638 | [[package]] 639 | name = "hashbrown" 640 | version = "0.14.5" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 643 | 644 | [[package]] 645 | name = "heapless" 646 | version = "0.8.0" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 649 | dependencies = [ 650 | "hash32", 651 | "serde", 652 | "stable_deref_trait", 653 | ] 654 | 655 | [[package]] 656 | name = "heck" 657 | version = "0.5.0" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 660 | 661 | [[package]] 662 | name = "hermit-abi" 663 | version = "0.3.9" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 666 | 667 | [[package]] 668 | name = "hermit-abi" 669 | version = "0.4.0" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 672 | 673 | [[package]] 674 | name = "hex" 675 | version = "0.4.3" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 678 | 679 | [[package]] 680 | name = "hidapi" 681 | version = "2.6.3" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "03b876ecf37e86b359573c16c8366bc3eba52b689884a0fc42ba3f67203d2a8b" 684 | dependencies = [ 685 | "cc", 686 | "cfg-if", 687 | "libc", 688 | "nix", 689 | "pkg-config", 690 | "udev", 691 | "windows-sys 0.48.0", 692 | ] 693 | 694 | [[package]] 695 | name = "humantime" 696 | version = "2.1.0" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 699 | 700 | [[package]] 701 | name = "ident_case" 702 | version = "1.0.1" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 705 | 706 | [[package]] 707 | name = "idna" 708 | version = "0.5.0" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 711 | dependencies = [ 712 | "unicode-bidi", 713 | "unicode-normalization", 714 | ] 715 | 716 | [[package]] 717 | name = "ihex" 718 | version = "3.0.0" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "365a784774bb381e8c19edb91190a90d7f2625e057b55de2bc0f6b57bc779ff2" 721 | 722 | [[package]] 723 | name = "indexmap" 724 | version = "2.5.0" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" 727 | dependencies = [ 728 | "equivalent", 729 | "hashbrown", 730 | "serde", 731 | ] 732 | 733 | [[package]] 734 | name = "io-kit-sys" 735 | version = "0.4.1" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" 738 | dependencies = [ 739 | "core-foundation-sys", 740 | "mach2", 741 | ] 742 | 743 | [[package]] 744 | name = "io-lifetimes" 745 | version = "1.0.11" 746 | source = "registry+https://github.com/rust-lang/crates.io-index" 747 | checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" 748 | dependencies = [ 749 | "hermit-abi 0.3.9", 750 | "libc", 751 | "windows-sys 0.48.0", 752 | ] 753 | 754 | [[package]] 755 | name = "is-terminal" 756 | version = "0.4.13" 757 | source = "registry+https://github.com/rust-lang/crates.io-index" 758 | checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" 759 | dependencies = [ 760 | "hermit-abi 0.4.0", 761 | "libc", 762 | "windows-sys 0.52.0", 763 | ] 764 | 765 | [[package]] 766 | name = "is_terminal_polyfill" 767 | version = "1.70.1" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 770 | 771 | [[package]] 772 | name = "itertools" 773 | version = "0.13.0" 774 | source = "registry+https://github.com/rust-lang/crates.io-index" 775 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 776 | dependencies = [ 777 | "either", 778 | ] 779 | 780 | [[package]] 781 | name = "itoa" 782 | version = "1.0.11" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 785 | 786 | [[package]] 787 | name = "jep106" 788 | version = "0.2.8" 789 | source = "registry+https://github.com/rust-lang/crates.io-index" 790 | checksum = "ff93b33ae176e47fe588708ff6a4cccae22bd369b81c2d26d2179a8d41c0a0b0" 791 | dependencies = [ 792 | "serde", 793 | ] 794 | 795 | [[package]] 796 | name = "libc" 797 | version = "0.2.159" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" 800 | 801 | [[package]] 802 | name = "libudev-sys" 803 | version = "0.1.4" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" 806 | dependencies = [ 807 | "libc", 808 | "pkg-config", 809 | ] 810 | 811 | [[package]] 812 | name = "linux-raw-sys" 813 | version = "0.4.14" 814 | source = "registry+https://github.com/rust-lang/crates.io-index" 815 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 816 | 817 | [[package]] 818 | name = "lock_api" 819 | version = "0.4.12" 820 | source = "registry+https://github.com/rust-lang/crates.io-index" 821 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 822 | dependencies = [ 823 | "autocfg", 824 | "scopeguard", 825 | ] 826 | 827 | [[package]] 828 | name = "log" 829 | version = "0.4.22" 830 | source = "registry+https://github.com/rust-lang/crates.io-index" 831 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 832 | 833 | [[package]] 834 | name = "mach2" 835 | version = "0.4.2" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" 838 | dependencies = [ 839 | "libc", 840 | ] 841 | 842 | [[package]] 843 | name = "md-5" 844 | version = "0.10.6" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 847 | dependencies = [ 848 | "cfg-if", 849 | "digest", 850 | ] 851 | 852 | [[package]] 853 | name = "md5" 854 | version = "0.7.0" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" 857 | 858 | [[package]] 859 | name = "memchr" 860 | version = "2.7.4" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 863 | 864 | [[package]] 865 | name = "miette" 866 | version = "7.2.0" 867 | source = "registry+https://github.com/rust-lang/crates.io-index" 868 | checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" 869 | dependencies = [ 870 | "cfg-if", 871 | "miette-derive", 872 | "thiserror", 873 | "unicode-width", 874 | ] 875 | 876 | [[package]] 877 | name = "miette-derive" 878 | version = "7.2.0" 879 | source = "registry+https://github.com/rust-lang/crates.io-index" 880 | checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" 881 | dependencies = [ 882 | "proc-macro2", 883 | "quote", 884 | "syn 2.0.77", 885 | ] 886 | 887 | [[package]] 888 | name = "miniz_oxide" 889 | version = "0.8.0" 890 | source = "registry+https://github.com/rust-lang/crates.io-index" 891 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 892 | dependencies = [ 893 | "adler2", 894 | ] 895 | 896 | [[package]] 897 | name = "nix" 898 | version = "0.27.1" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" 901 | dependencies = [ 902 | "bitflags", 903 | "cfg-if", 904 | "libc", 905 | ] 906 | 907 | [[package]] 908 | name = "num-conv" 909 | version = "0.1.0" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 912 | 913 | [[package]] 914 | name = "num-traits" 915 | version = "0.2.19" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 918 | dependencies = [ 919 | "autocfg", 920 | ] 921 | 922 | [[package]] 923 | name = "nusb" 924 | version = "0.1.10" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "2d8beeee5c0ad012e1eaca540f5610d09a3af58ec435537d511b67e0be36ea66" 927 | dependencies = [ 928 | "atomic-waker", 929 | "core-foundation", 930 | "core-foundation-sys", 931 | "io-kit-sys", 932 | "log", 933 | "once_cell", 934 | "rustix", 935 | "slab", 936 | "windows-sys 0.48.0", 937 | ] 938 | 939 | [[package]] 940 | name = "object" 941 | version = "0.36.4" 942 | source = "registry+https://github.com/rust-lang/crates.io-index" 943 | checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" 944 | dependencies = [ 945 | "memchr", 946 | ] 947 | 948 | [[package]] 949 | name = "once_cell" 950 | version = "1.19.0" 951 | source = "registry+https://github.com/rust-lang/crates.io-index" 952 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 953 | 954 | [[package]] 955 | name = "parking" 956 | version = "2.2.1" 957 | source = "registry+https://github.com/rust-lang/crates.io-index" 958 | checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 959 | 960 | [[package]] 961 | name = "parking_lot" 962 | version = "0.12.3" 963 | source = "registry+https://github.com/rust-lang/crates.io-index" 964 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 965 | dependencies = [ 966 | "lock_api", 967 | "parking_lot_core", 968 | ] 969 | 970 | [[package]] 971 | name = "parking_lot_core" 972 | version = "0.9.10" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 975 | dependencies = [ 976 | "cfg-if", 977 | "libc", 978 | "redox_syscall", 979 | "smallvec", 980 | "windows-targets 0.52.6", 981 | ] 982 | 983 | [[package]] 984 | name = "parse_int" 985 | version = "0.6.0" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "2d695b79916a2c08bcff7be7647ab60d1402885265005a6658ffe6d763553c5a" 988 | dependencies = [ 989 | "num-traits", 990 | ] 991 | 992 | [[package]] 993 | name = "paste" 994 | version = "1.0.15" 995 | source = "registry+https://github.com/rust-lang/crates.io-index" 996 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 997 | 998 | [[package]] 999 | name = "percent-encoding" 1000 | version = "2.3.1" 1001 | source = "registry+https://github.com/rust-lang/crates.io-index" 1002 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1003 | 1004 | [[package]] 1005 | name = "pin-project-lite" 1006 | version = "0.2.14" 1007 | source = "registry+https://github.com/rust-lang/crates.io-index" 1008 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 1009 | 1010 | [[package]] 1011 | name = "pkg-config" 1012 | version = "0.3.31" 1013 | source = "registry+https://github.com/rust-lang/crates.io-index" 1014 | checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 1015 | 1016 | [[package]] 1017 | name = "polling" 1018 | version = "3.7.3" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" 1021 | dependencies = [ 1022 | "cfg-if", 1023 | "concurrent-queue", 1024 | "hermit-abi 0.4.0", 1025 | "pin-project-lite", 1026 | "rustix", 1027 | "tracing", 1028 | "windows-sys 0.59.0", 1029 | ] 1030 | 1031 | [[package]] 1032 | name = "powerfmt" 1033 | version = "0.2.0" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1036 | 1037 | [[package]] 1038 | name = "pretty_env_logger" 1039 | version = "0.5.0" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" 1042 | dependencies = [ 1043 | "env_logger", 1044 | "log", 1045 | ] 1046 | 1047 | [[package]] 1048 | name = "probe-rs" 1049 | version = "0.24.0" 1050 | source = "git+https://github.com/probe-rs/probe-rs?rev=9b97265f61f07b6dc8765b9f2daf0ac64b86b0c9#9b97265f61f07b6dc8765b9f2daf0ac64b86b0c9" 1051 | dependencies = [ 1052 | "anyhow", 1053 | "async-io", 1054 | "bincode", 1055 | "bitfield", 1056 | "bitvec", 1057 | "docsplay", 1058 | "dunce", 1059 | "espflash", 1060 | "flate2", 1061 | "futures-lite", 1062 | "gimli", 1063 | "hidapi", 1064 | "ihex", 1065 | "itertools", 1066 | "jep106", 1067 | "nusb", 1068 | "object", 1069 | "once_cell", 1070 | "parking_lot", 1071 | "parse_int", 1072 | "probe-rs-target", 1073 | "rmp-serde", 1074 | "scroll", 1075 | "serde", 1076 | "serde_yaml", 1077 | "svg", 1078 | "thiserror", 1079 | "tracing", 1080 | "typed-path", 1081 | "uf2-decode", 1082 | "zerocopy", 1083 | ] 1084 | 1085 | [[package]] 1086 | name = "probe-rs-target" 1087 | version = "0.24.0" 1088 | source = "git+https://github.com/probe-rs/probe-rs?rev=9b97265f61f07b6dc8765b9f2daf0ac64b86b0c9#9b97265f61f07b6dc8765b9f2daf0ac64b86b0c9" 1089 | dependencies = [ 1090 | "base64", 1091 | "indexmap", 1092 | "jep106", 1093 | "serde", 1094 | "serde_with", 1095 | "url", 1096 | ] 1097 | 1098 | [[package]] 1099 | name = "proc-macro-crate" 1100 | version = "1.3.1" 1101 | source = "registry+https://github.com/rust-lang/crates.io-index" 1102 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 1103 | dependencies = [ 1104 | "once_cell", 1105 | "toml_edit", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "proc-macro2" 1110 | version = "1.0.86" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 1113 | dependencies = [ 1114 | "unicode-ident", 1115 | ] 1116 | 1117 | [[package]] 1118 | name = "quote" 1119 | version = "1.0.37" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 1122 | dependencies = [ 1123 | "proc-macro2", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "radium" 1128 | version = "0.7.0" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 1131 | 1132 | [[package]] 1133 | name = "redox_syscall" 1134 | version = "0.5.6" 1135 | source = "registry+https://github.com/rust-lang/crates.io-index" 1136 | checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b" 1137 | dependencies = [ 1138 | "bitflags", 1139 | ] 1140 | 1141 | [[package]] 1142 | name = "regex" 1143 | version = "1.10.6" 1144 | source = "registry+https://github.com/rust-lang/crates.io-index" 1145 | checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" 1146 | dependencies = [ 1147 | "aho-corasick", 1148 | "memchr", 1149 | "regex-automata", 1150 | "regex-syntax", 1151 | ] 1152 | 1153 | [[package]] 1154 | name = "regex-automata" 1155 | version = "0.4.7" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" 1158 | dependencies = [ 1159 | "aho-corasick", 1160 | "memchr", 1161 | "regex-syntax", 1162 | ] 1163 | 1164 | [[package]] 1165 | name = "regex-syntax" 1166 | version = "0.8.4" 1167 | source = "registry+https://github.com/rust-lang/crates.io-index" 1168 | checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" 1169 | 1170 | [[package]] 1171 | name = "rmp" 1172 | version = "0.8.14" 1173 | source = "registry+https://github.com/rust-lang/crates.io-index" 1174 | checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" 1175 | dependencies = [ 1176 | "byteorder", 1177 | "num-traits", 1178 | "paste", 1179 | ] 1180 | 1181 | [[package]] 1182 | name = "rmp-serde" 1183 | version = "1.3.0" 1184 | source = "registry+https://github.com/rust-lang/crates.io-index" 1185 | checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" 1186 | dependencies = [ 1187 | "byteorder", 1188 | "rmp", 1189 | "serde", 1190 | ] 1191 | 1192 | [[package]] 1193 | name = "rustix" 1194 | version = "0.38.37" 1195 | source = "registry+https://github.com/rust-lang/crates.io-index" 1196 | checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 1197 | dependencies = [ 1198 | "bitflags", 1199 | "errno", 1200 | "libc", 1201 | "linux-raw-sys", 1202 | "windows-sys 0.52.0", 1203 | ] 1204 | 1205 | [[package]] 1206 | name = "rustversion" 1207 | version = "1.0.17" 1208 | source = "registry+https://github.com/rust-lang/crates.io-index" 1209 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 1210 | 1211 | [[package]] 1212 | name = "ryu" 1213 | version = "1.0.18" 1214 | source = "registry+https://github.com/rust-lang/crates.io-index" 1215 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1216 | 1217 | [[package]] 1218 | name = "scopeguard" 1219 | version = "1.2.0" 1220 | source = "registry+https://github.com/rust-lang/crates.io-index" 1221 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1222 | 1223 | [[package]] 1224 | name = "scroll" 1225 | version = "0.12.0" 1226 | source = "registry+https://github.com/rust-lang/crates.io-index" 1227 | checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" 1228 | 1229 | [[package]] 1230 | name = "serde" 1231 | version = "1.0.210" 1232 | source = "registry+https://github.com/rust-lang/crates.io-index" 1233 | checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" 1234 | dependencies = [ 1235 | "serde_derive", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "serde_derive" 1240 | version = "1.0.210" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" 1243 | dependencies = [ 1244 | "proc-macro2", 1245 | "quote", 1246 | "syn 2.0.77", 1247 | ] 1248 | 1249 | [[package]] 1250 | name = "serde_json" 1251 | version = "1.0.128" 1252 | source = "registry+https://github.com/rust-lang/crates.io-index" 1253 | checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" 1254 | dependencies = [ 1255 | "itoa", 1256 | "memchr", 1257 | "ryu", 1258 | "serde", 1259 | ] 1260 | 1261 | [[package]] 1262 | name = "serde_plain" 1263 | version = "1.0.2" 1264 | source = "registry+https://github.com/rust-lang/crates.io-index" 1265 | checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" 1266 | dependencies = [ 1267 | "serde", 1268 | ] 1269 | 1270 | [[package]] 1271 | name = "serde_with" 1272 | version = "3.9.0" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" 1275 | dependencies = [ 1276 | "base64", 1277 | "chrono", 1278 | "hex", 1279 | "indexmap", 1280 | "serde", 1281 | "serde_derive", 1282 | "serde_json", 1283 | "time", 1284 | ] 1285 | 1286 | [[package]] 1287 | name = "serde_yaml" 1288 | version = "0.9.34+deprecated" 1289 | source = "registry+https://github.com/rust-lang/crates.io-index" 1290 | checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" 1291 | dependencies = [ 1292 | "indexmap", 1293 | "itoa", 1294 | "ryu", 1295 | "serde", 1296 | "unsafe-libyaml", 1297 | ] 1298 | 1299 | [[package]] 1300 | name = "sha2" 1301 | version = "0.10.8" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1304 | dependencies = [ 1305 | "cfg-if", 1306 | "cpufeatures", 1307 | "digest", 1308 | ] 1309 | 1310 | [[package]] 1311 | name = "shlex" 1312 | version = "1.3.0" 1313 | source = "registry+https://github.com/rust-lang/crates.io-index" 1314 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1315 | 1316 | [[package]] 1317 | name = "slab" 1318 | version = "0.4.9" 1319 | source = "registry+https://github.com/rust-lang/crates.io-index" 1320 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1321 | dependencies = [ 1322 | "autocfg", 1323 | ] 1324 | 1325 | [[package]] 1326 | name = "smallvec" 1327 | version = "1.13.2" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1330 | 1331 | [[package]] 1332 | name = "stable_deref_trait" 1333 | version = "1.2.0" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1336 | 1337 | [[package]] 1338 | name = "strsim" 1339 | version = "0.10.0" 1340 | source = "registry+https://github.com/rust-lang/crates.io-index" 1341 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1342 | 1343 | [[package]] 1344 | name = "strsim" 1345 | version = "0.11.1" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1348 | 1349 | [[package]] 1350 | name = "strum" 1351 | version = "0.26.3" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1354 | dependencies = [ 1355 | "strum_macros", 1356 | ] 1357 | 1358 | [[package]] 1359 | name = "strum_macros" 1360 | version = "0.26.4" 1361 | source = "registry+https://github.com/rust-lang/crates.io-index" 1362 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 1363 | dependencies = [ 1364 | "heck", 1365 | "proc-macro2", 1366 | "quote", 1367 | "rustversion", 1368 | "syn 2.0.77", 1369 | ] 1370 | 1371 | [[package]] 1372 | name = "svg" 1373 | version = "0.17.0" 1374 | source = "registry+https://github.com/rust-lang/crates.io-index" 1375 | checksum = "700efb40f3f559c23c18b446e8ed62b08b56b2bb3197b36d57e0470b4102779e" 1376 | 1377 | [[package]] 1378 | name = "syn" 1379 | version = "1.0.109" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1382 | dependencies = [ 1383 | "proc-macro2", 1384 | "quote", 1385 | "unicode-ident", 1386 | ] 1387 | 1388 | [[package]] 1389 | name = "syn" 1390 | version = "2.0.77" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" 1393 | dependencies = [ 1394 | "proc-macro2", 1395 | "quote", 1396 | "unicode-ident", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "tap" 1401 | version = "1.0.1" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 1404 | 1405 | [[package]] 1406 | name = "termcolor" 1407 | version = "1.4.1" 1408 | source = "registry+https://github.com/rust-lang/crates.io-index" 1409 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 1410 | dependencies = [ 1411 | "winapi-util", 1412 | ] 1413 | 1414 | [[package]] 1415 | name = "thiserror" 1416 | version = "1.0.64" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" 1419 | dependencies = [ 1420 | "thiserror-impl", 1421 | ] 1422 | 1423 | [[package]] 1424 | name = "thiserror-impl" 1425 | version = "1.0.64" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" 1428 | dependencies = [ 1429 | "proc-macro2", 1430 | "quote", 1431 | "syn 2.0.77", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "time" 1436 | version = "0.3.36" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 1439 | dependencies = [ 1440 | "deranged", 1441 | "num-conv", 1442 | "powerfmt", 1443 | "serde", 1444 | "time-core", 1445 | ] 1446 | 1447 | [[package]] 1448 | name = "time-core" 1449 | version = "0.1.2" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1452 | 1453 | [[package]] 1454 | name = "tinyvec" 1455 | version = "1.8.0" 1456 | source = "registry+https://github.com/rust-lang/crates.io-index" 1457 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 1458 | dependencies = [ 1459 | "tinyvec_macros", 1460 | ] 1461 | 1462 | [[package]] 1463 | name = "tinyvec_macros" 1464 | version = "0.1.1" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1467 | 1468 | [[package]] 1469 | name = "toml_datetime" 1470 | version = "0.6.8" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 1473 | 1474 | [[package]] 1475 | name = "toml_edit" 1476 | version = "0.19.15" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 1479 | dependencies = [ 1480 | "indexmap", 1481 | "toml_datetime", 1482 | "winnow", 1483 | ] 1484 | 1485 | [[package]] 1486 | name = "tracing" 1487 | version = "0.1.40" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1490 | dependencies = [ 1491 | "pin-project-lite", 1492 | "tracing-attributes", 1493 | "tracing-core", 1494 | ] 1495 | 1496 | [[package]] 1497 | name = "tracing-attributes" 1498 | version = "0.1.27" 1499 | source = "registry+https://github.com/rust-lang/crates.io-index" 1500 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 1501 | dependencies = [ 1502 | "proc-macro2", 1503 | "quote", 1504 | "syn 2.0.77", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "tracing-core" 1509 | version = "0.1.32" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1512 | dependencies = [ 1513 | "once_cell", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "typed-path" 1518 | version = "0.9.2" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "50c0c7479c430935701ff2532e3091e6680ec03f2f89ffcd9988b08e885b90a5" 1521 | 1522 | [[package]] 1523 | name = "typenum" 1524 | version = "1.17.0" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 1527 | 1528 | [[package]] 1529 | name = "udev" 1530 | version = "0.8.0" 1531 | source = "registry+https://github.com/rust-lang/crates.io-index" 1532 | checksum = "50051c6e22be28ee6f217d50014f3bc29e81c20dc66ff7ca0d5c5226e1dcc5a1" 1533 | dependencies = [ 1534 | "io-lifetimes", 1535 | "libc", 1536 | "libudev-sys", 1537 | "pkg-config", 1538 | ] 1539 | 1540 | [[package]] 1541 | name = "uf2-decode" 1542 | version = "0.2.0" 1543 | source = "registry+https://github.com/rust-lang/crates.io-index" 1544 | checksum = "ca77d41ab27e3fa45df42043f96c79b80c6d8632eed906b54681d8d47ab00623" 1545 | 1546 | [[package]] 1547 | name = "unicode-bidi" 1548 | version = "0.3.15" 1549 | source = "registry+https://github.com/rust-lang/crates.io-index" 1550 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 1551 | 1552 | [[package]] 1553 | name = "unicode-ident" 1554 | version = "1.0.13" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 1557 | 1558 | [[package]] 1559 | name = "unicode-normalization" 1560 | version = "0.1.24" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 1563 | dependencies = [ 1564 | "tinyvec", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "unicode-width" 1569 | version = "0.1.14" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 1572 | 1573 | [[package]] 1574 | name = "unsafe-libyaml" 1575 | version = "0.2.11" 1576 | source = "registry+https://github.com/rust-lang/crates.io-index" 1577 | checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" 1578 | 1579 | [[package]] 1580 | name = "url" 1581 | version = "2.5.2" 1582 | source = "registry+https://github.com/rust-lang/crates.io-index" 1583 | checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 1584 | dependencies = [ 1585 | "form_urlencoded", 1586 | "idna", 1587 | "percent-encoding", 1588 | "serde", 1589 | ] 1590 | 1591 | [[package]] 1592 | name = "utf8parse" 1593 | version = "0.2.2" 1594 | source = "registry+https://github.com/rust-lang/crates.io-index" 1595 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 1596 | 1597 | [[package]] 1598 | name = "version_check" 1599 | version = "0.9.5" 1600 | source = "registry+https://github.com/rust-lang/crates.io-index" 1601 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1602 | 1603 | [[package]] 1604 | name = "winapi-util" 1605 | version = "0.1.9" 1606 | source = "registry+https://github.com/rust-lang/crates.io-index" 1607 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 1608 | dependencies = [ 1609 | "windows-sys 0.59.0", 1610 | ] 1611 | 1612 | [[package]] 1613 | name = "windows-sys" 1614 | version = "0.48.0" 1615 | source = "registry+https://github.com/rust-lang/crates.io-index" 1616 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1617 | dependencies = [ 1618 | "windows-targets 0.48.5", 1619 | ] 1620 | 1621 | [[package]] 1622 | name = "windows-sys" 1623 | version = "0.52.0" 1624 | source = "registry+https://github.com/rust-lang/crates.io-index" 1625 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1626 | dependencies = [ 1627 | "windows-targets 0.52.6", 1628 | ] 1629 | 1630 | [[package]] 1631 | name = "windows-sys" 1632 | version = "0.59.0" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1635 | dependencies = [ 1636 | "windows-targets 0.52.6", 1637 | ] 1638 | 1639 | [[package]] 1640 | name = "windows-targets" 1641 | version = "0.48.5" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1644 | dependencies = [ 1645 | "windows_aarch64_gnullvm 0.48.5", 1646 | "windows_aarch64_msvc 0.48.5", 1647 | "windows_i686_gnu 0.48.5", 1648 | "windows_i686_msvc 0.48.5", 1649 | "windows_x86_64_gnu 0.48.5", 1650 | "windows_x86_64_gnullvm 0.48.5", 1651 | "windows_x86_64_msvc 0.48.5", 1652 | ] 1653 | 1654 | [[package]] 1655 | name = "windows-targets" 1656 | version = "0.52.6" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1659 | dependencies = [ 1660 | "windows_aarch64_gnullvm 0.52.6", 1661 | "windows_aarch64_msvc 0.52.6", 1662 | "windows_i686_gnu 0.52.6", 1663 | "windows_i686_gnullvm", 1664 | "windows_i686_msvc 0.52.6", 1665 | "windows_x86_64_gnu 0.52.6", 1666 | "windows_x86_64_gnullvm 0.52.6", 1667 | "windows_x86_64_msvc 0.52.6", 1668 | ] 1669 | 1670 | [[package]] 1671 | name = "windows_aarch64_gnullvm" 1672 | version = "0.48.5" 1673 | source = "registry+https://github.com/rust-lang/crates.io-index" 1674 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1675 | 1676 | [[package]] 1677 | name = "windows_aarch64_gnullvm" 1678 | version = "0.52.6" 1679 | source = "registry+https://github.com/rust-lang/crates.io-index" 1680 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1681 | 1682 | [[package]] 1683 | name = "windows_aarch64_msvc" 1684 | version = "0.48.5" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1687 | 1688 | [[package]] 1689 | name = "windows_aarch64_msvc" 1690 | version = "0.52.6" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1693 | 1694 | [[package]] 1695 | name = "windows_i686_gnu" 1696 | version = "0.48.5" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1699 | 1700 | [[package]] 1701 | name = "windows_i686_gnu" 1702 | version = "0.52.6" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1705 | 1706 | [[package]] 1707 | name = "windows_i686_gnullvm" 1708 | version = "0.52.6" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1711 | 1712 | [[package]] 1713 | name = "windows_i686_msvc" 1714 | version = "0.48.5" 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" 1716 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1717 | 1718 | [[package]] 1719 | name = "windows_i686_msvc" 1720 | version = "0.52.6" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1723 | 1724 | [[package]] 1725 | name = "windows_x86_64_gnu" 1726 | version = "0.48.5" 1727 | source = "registry+https://github.com/rust-lang/crates.io-index" 1728 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1729 | 1730 | [[package]] 1731 | name = "windows_x86_64_gnu" 1732 | version = "0.52.6" 1733 | source = "registry+https://github.com/rust-lang/crates.io-index" 1734 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1735 | 1736 | [[package]] 1737 | name = "windows_x86_64_gnullvm" 1738 | version = "0.48.5" 1739 | source = "registry+https://github.com/rust-lang/crates.io-index" 1740 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1741 | 1742 | [[package]] 1743 | name = "windows_x86_64_gnullvm" 1744 | version = "0.52.6" 1745 | source = "registry+https://github.com/rust-lang/crates.io-index" 1746 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1747 | 1748 | [[package]] 1749 | name = "windows_x86_64_msvc" 1750 | version = "0.48.5" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1753 | 1754 | [[package]] 1755 | name = "windows_x86_64_msvc" 1756 | version = "0.52.6" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1759 | 1760 | [[package]] 1761 | name = "winnow" 1762 | version = "0.5.40" 1763 | source = "registry+https://github.com/rust-lang/crates.io-index" 1764 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 1765 | dependencies = [ 1766 | "memchr", 1767 | ] 1768 | 1769 | [[package]] 1770 | name = "wyz" 1771 | version = "0.5.1" 1772 | source = "registry+https://github.com/rust-lang/crates.io-index" 1773 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 1774 | dependencies = [ 1775 | "tap", 1776 | ] 1777 | 1778 | [[package]] 1779 | name = "xmas-elf" 1780 | version = "0.9.1" 1781 | source = "registry+https://github.com/rust-lang/crates.io-index" 1782 | checksum = "42c49817e78342f7f30a181573d82ff55b88a35f86ccaf07fc64b3008f56d1c6" 1783 | dependencies = [ 1784 | "zero", 1785 | ] 1786 | 1787 | [[package]] 1788 | name = "zero" 1789 | version = "0.1.3" 1790 | source = "registry+https://github.com/rust-lang/crates.io-index" 1791 | checksum = "2fe21bcc34ca7fe6dd56cc2cb1261ea59d6b93620215aefb5ea6032265527784" 1792 | 1793 | [[package]] 1794 | name = "zerocopy" 1795 | version = "0.7.35" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 1798 | dependencies = [ 1799 | "byteorder", 1800 | "zerocopy-derive", 1801 | ] 1802 | 1803 | [[package]] 1804 | name = "zerocopy-derive" 1805 | version = "0.7.35" 1806 | source = "registry+https://github.com/rust-lang/crates.io-index" 1807 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 1808 | dependencies = [ 1809 | "proc-macro2", 1810 | "quote", 1811 | "syn 2.0.77", 1812 | ] 1813 | --------------------------------------------------------------------------------