scaffold: Cargo.toml, module stubs, layer-shell window (step 1+2)

This commit is contained in:
Breadway 2026-05-17 00:38:19 +08:00
commit 1bbe9a2929
1375 changed files with 7293 additions and 0 deletions

1738
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

14
Cargo.toml Normal file
View file

@ -0,0 +1,14 @@
[package]
name = "aster"
version = "0.1.0"
edition = "2021"
[dependencies]
gtk4 = "0.11"
gtk4-layer-shell = "0.8"
relm4 = { version = "0.11", features = ["macros"] }
hyprland = "0.4.0-beta.3"
zbus = { version = "5", default-features = false, features = ["tokio"] }
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"

126
aster-brief.md Normal file
View file

@ -0,0 +1,126 @@
# aster — Hyprland Bar & Notification Daemon
Minimal Rust status bar and notification daemon for Hyprland. Replaces colorshell with a lower system footprint. No system tray, no launcher, no wallpaper logic.
---
## Stack
| Crate | Purpose |
|---|---|
| `gtk4` | UI toolkit |
| `gtk4-layer-shell` | Wayland layer surface anchoring |
| `relm4` | Component architecture for GTK4 |
| `hyprland` | Hyprland IPC (workspace events) |
| `zbus` | D-Bus (notifications daemon) |
| `serde` + `serde_json` | Parse pywal colors.json |
| `tokio` | Async polling runtime |
---
## Component 1: Top Bar
Full-width bar anchored to the top of the screen via `gtk4-layer-shell`. Single horizontal row, three sections.
### Left — Workspaces
- Numbered workspace buttons sourced from Hyprland IPC
- Subscribe to live workspace change events via `/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock`
- Active workspace highlighted with accent colour
### Centre — Clock
- Format: `HH:MM`
- Updated every second
### Right — System Stats
Displayed left to right: CPU% → RAM% → Power draw (W) → WiFi SSID
| Stat | Source |
|---|---|
| CPU usage | `/proc/stat` delta between polls |
| RAM usage | `/proc/meminfo` |
| Power draw | `/sys/class/power_supply/*/power_now` or `current_now * voltage_now` |
| WiFi SSID | Parse `iw dev` output — no NetworkManager dependency, no system tray |
Polled every 2 seconds.
---
## Component 2: Notification Daemon
Implements the `org.freedesktop.Notifications` D-Bus interface via `zbus`.
- On `Notify` call: spawn a GTK4 layer-shell popup anchored **top-right**, 20px from edge
- Shows: app name, summary, body
- Auto-dismisses after the hint timeout (default 5s if unset by sender)
- Multiple notifications stack vertically downward
- Supports `CloseNotification`
---
## Theming
Read `~/.cache/wal/colors.json` on startup. Reload on `SIGHUP` for live wallpaper-change integration.
| pywal key | Role |
|---|---|
| `special.background` | Bar background (with slight CSS transparency) |
| `colors.color0` | Widget background / secondary surfaces |
| `colors.color15` | Foreground text |
| `colors.color1` | Accent — active workspace, highlights |
Apply as a GTK CSS provider at the `Display` level so the bar and all notification popups share the same palette automatically.
---
## Explicit Non-Goals
- No system tray (`StatusNotifierItem` / `XEmbed`)
- No launcher or search (external tool handles this)
- No wallpaper engine (external tool handles this)
- No Bluetooth, volume, or media controls
---
## Suggested File Structure
```
aster/
├── Cargo.toml
└── src/
├── main.rs # Init GTK app, spawn bar + notification daemon
├── bar/
│ ├── mod.rs
│ ├── workspaces.rs # Hyprland IPC workspace subscription
│ ├── clock.rs # Second-tick clock widget
│ └── stats.rs # CPU, RAM, power draw, WiFi SSID
├── notifications/
│ ├── mod.rs # zbus D-Bus service
│ └── popup.rs # GTK4 layer-shell popup window + stack
└── theme.rs # pywal reader + GTK CSS provider injection
```
---
## Build Order for Claude Code
Follow this sequence so each step is independently testable:
1. **Scaffold**`Cargo.toml` with all dependencies, module stubs, empty `main.rs`
2. **Layer shell anchor** — blank GTK4 window pinned to top of screen; confirm it appears correctly on your setup before adding any widgets
3. **Theme loader** — read `colors.json`, build CSS string, inject as `CssProvider` at display level
4. **Bar layout** — three-section `Box`, no data yet, just structure with placeholder labels
5. **Workspaces** — Hyprland IPC socket reader, live workspace buttons
6. **Stats poller** — tokio task polling CPU/RAM/power/WiFi, sending results to bar via channels
7. **Clock** — second-tick timer widget
8. **Notification daemon** — zbus service on session bus claiming `org.freedesktop.Notifications`
9. **Notification popup** — layer-shell window anchored top-right, vertical stack, auto-dismiss timer
10. **Wire SIGHUP** — reload `colors.json` and re-inject CSS on signal
---
## First Prompt for Claude Code
> Create a new Rust project called `aster`. It is a minimal Hyprland status bar and notification daemon. Start with `Cargo.toml` — I need gtk4, relm4, gtk4-layer-shell, hyprland, zbus, tokio, serde, and serde_json as dependencies. Then scaffold the module structure from the file tree in the brief and get a blank GTK4 window anchored full-width to the top of the screen with gtk4-layer-shell before adding any widgets. The layer-shell anchor is the most environment-sensitive step so I want to confirm it works on my setup first.

1
src/bar/clock.rs Normal file
View file

@ -0,0 +1 @@

3
src/bar/mod.rs Normal file
View file

@ -0,0 +1,3 @@
pub mod clock;
pub mod stats;
pub mod workspaces;

1
src/bar/stats.rs Normal file
View file

@ -0,0 +1 @@

1
src/bar/workspaces.rs Normal file
View file

@ -0,0 +1 @@

47
src/main.rs Normal file
View file

@ -0,0 +1,47 @@
mod bar;
mod notifications;
mod theme;
use gtk4::prelude::*;
use gtk4_layer_shell::{Edge, Layer, LayerShell};
use relm4::prelude::*;
struct App;
#[relm4::component]
impl SimpleComponent for App {
type Init = ();
type Input = ();
type Output = ();
view! {
gtk::ApplicationWindow {
set_title: Some("aster"),
set_default_height: 32,
}
}
fn init(
_: Self::Init,
root: Self::Root,
_sender: ComponentSender<Self>,
) -> ComponentParts<Self> {
root.init_layer_shell();
root.set_layer(Layer::Top);
root.set_anchor(Edge::Top, true);
root.set_anchor(Edge::Left, true);
root.set_anchor(Edge::Right, true);
root.set_exclusive_zone(32);
let model = App;
let widgets = view_output!();
ComponentParts { model, widgets }
}
fn update(&mut self, _: Self::Input, _: ComponentSender<Self>) {}
}
fn main() {
let app = RelmApp::new("sh.breadway.aster");
app.run::<App>(());
}

1
src/notifications/mod.rs Normal file
View file

@ -0,0 +1 @@
pub mod popup;

View file

@ -0,0 +1 @@

1
src/theme.rs Normal file
View file

@ -0,0 +1 @@

1
target/.rustc_info.json Normal file
View file

@ -0,0 +1 @@
{"rustc_fingerprint":18370389655431495788,"outputs":{"17747080675513052775":{"success":true,"status":"","code":0,"stdout":"rustc 1.95.0 (59807616e 2026-04-14)\nbinary: rustc\ncommit-hash: 59807616e1fa2540724bfbac14d7976d7e4a3860\ncommit-date: 2026-04-14\nhost: x86_64-unknown-linux-gnu\nrelease: 1.95.0\nLLVM version: 22.1.2\n","stderr":""},"7971740275564407648":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/breadway/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""}},"successes":{}}

3
target/CACHEDIR.TAG Normal file
View file

@ -0,0 +1,3 @@
Signature: 8a477f597d28d172789f06886806bc55
# This file is a cache directory tag created by cargo.
# For information about cache directory tags see https://bford.info/cachedir/

0
target/debug/.cargo-lock Normal file
View file

View file

@ -0,0 +1 @@
166abe23938eead2

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":8320118459407222345,"profile":8731458305071235362,"path":4942398508502643691,"deps":[[587433499505765785,"zbus",false,13627344203836427908],[2305070415275184333,"relm4",false,12573514737765205756],[7347439592682733902,"gtk4_layer_shell",false,2624993113805005717],[9394460649638301237,"tokio",false,2181844275776165022],[12171300861355091627,"hyprland",false,8636740268140185675],[13548984313718623784,"serde",false,2789162808324029325],[13795362694956882968,"serde_json",false,10238946586612977806],[15128226369402307702,"gtk4",false,10182721269219159817]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/aster-5c1d83a48af9814c/dep-bin-aster","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
c99f1d88aef2c039

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":2036009427692311091,"profile":15657897354478470176,"path":12364910022699178029,"deps":[[302948626015856208,"futures_core",false,15108557506921119783],[2251399859588827949,"pin_project_lite",false,13760571679440958913],[14474722528862052230,"event_listener",false,18445537855929472240],[17148897597675491682,"event_listener_strategy",false,4463922086066535174]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-broadcast-fdd37316a3527fc1/dep-lib-async_broadcast","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
2691f6500cd529d2

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":5344269587553143856,"profile":2225463790103693989,"path":15680584803636463873,"deps":[[4289358735036141001,"proc_macro2",false,6333263691172554239],[10420560437213941093,"syn",false,10972986090803408589],[13111758008314797071,"quote",false,17610469368266944960]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-recursion-3940bb447dc43829/dep-lib-async_recursion","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
b1deb4170918ad0b

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":7636188372161476255,"profile":15657897354478470176,"path":7361596009352329637,"deps":[[302948626015856208,"futures_core",false,15108557506921119783],[2251399859588827949,"pin_project_lite",false,13760571679440958913],[7410208549481828251,"async_stream_impl",false,7372768905424547571]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-stream-f8aef019ee7e42d4/dep-lib-async_stream","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
f32ee0c241565166

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":1942159639416563378,"profile":2225463790103693989,"path":12394416567309978223,"deps":[[4289358735036141001,"proc_macro2",false,6333263691172554239],[10420560437213941093,"syn",false,10972986090803408589],[13111758008314797071,"quote",false,17610469368266944960]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-stream-impl-3cd078c53b9231f8/dep-lib-async_stream_impl","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
f98b10b56df82431

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":5116616278641129243,"profile":2225463790103693989,"path":14205477500031814885,"deps":[[4289358735036141001,"proc_macro2",false,6333263691172554239],[10420560437213941093,"syn",false,10972986090803408589],[13111758008314797071,"quote",false,17610469368266944960]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/async-trait-4bed61ae70e105ea/dep-lib-async_trait","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
ebc9417c017fc6b7

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":6962977057026645649,"profile":2225463790103693989,"path":13009177194619046542,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/autocfg-cb0230b4cd12f652/dep-lib-autocfg","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
e8cac0e3f6f52cb2

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"std\"]","declared_features":"[\"arbitrary\", \"bytemuck\", \"example_generated\", \"serde\", \"serde_core\", \"std\"]","target":7691312148208718491,"profile":15657897354478470176,"path":11195660645037874662,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bitflags-4cb5efb0e892aac1/dep-lib-bitflags","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
ef4f3aaed0b0fbe6

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"default\", \"std\"]","declared_features":"[\"default\", \"extra-platforms\", \"serde\", \"std\"]","target":11402411492164584411,"profile":5585765287293540646,"path":5223298245261838206,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/bytes-e030a54cc1f3d21f/dep-lib-bytes","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
60b1b3756422482e

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"default\", \"glib\", \"use_glib\", \"v1_16\"]","declared_features":"[\"default\", \"freetype\", \"freetype-rs\", \"glib\", \"pdf\", \"png\", \"ps\", \"quartz-surface\", \"script\", \"svg\", \"use_glib\", \"v1_16\", \"v1_18\", \"win32-surface\", \"xcb\", \"xlib\"]","target":7619808996118838678,"profile":15657897354478470176,"path":6759144362972606310,"deps":[[2571033484697105782,"bitflags",false,12838907078458264296],[4891207327393478741,"cairo_sys",false,2442441338661062125],[5758954863740949088,"glib",false,310239495905930181],[7098700569944897890,"libc",false,13006114737340092665]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cairo-rs-c751f00f57b88f2b/dep-lib-cairo","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
ed459ff7744be521

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"glib-sys\", \"use_glib\", \"v1_16\"]","declared_features":"[\"freetype\", \"glib-sys\", \"pdf\", \"png\", \"ps\", \"quartz-surface\", \"script\", \"svg\", \"use_glib\", \"v1_16\", \"v1_18\", \"win32-surface\", \"windows-sys\", \"x11\", \"xcb\", \"xlib\"]","target":9490612947684996464,"profile":15657897354478470176,"path":1932861004524792420,"deps":[[4891207327393478741,"build_script_build",false,1013515192685662573],[7098700569944897890,"libc",false,13006114737340092665],[11744618313794183503,"glib_sys",false,7301162470552987734]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cairo-sys-rs-1109496275393405/dep-lib-cairo_sys","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"glib-sys\", \"use_glib\", \"v1_16\"]","declared_features":"[\"freetype\", \"glib-sys\", \"pdf\", \"png\", \"ps\", \"quartz-surface\", \"script\", \"svg\", \"use_glib\", \"v1_16\", \"v1_18\", \"win32-surface\", \"windows-sys\", \"x11\", \"xcb\", \"xlib\"]","target":2835126046236718539,"profile":2225463790103693989,"path":1930012434760382047,"deps":[[6695828074700228952,"system_deps",false,11588736021309193491]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cairo-sys-rs-14ac6966e573a5d0/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
b27ce9c4a0cd2590

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"default\", \"target-lexicon\", \"targets\"]","declared_features":"[\"default\", \"target-lexicon\", \"targets\"]","target":8141513297094863203,"profile":2225463790103693989,"path":17130417198045031868,"deps":[[2626468505904708906,"target_lexicon",false,9131429160376280982],[3666196340704888985,"smallvec",false,12541046110571172550]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-expr-e3cac9c7d4acdd09/dep-lib-cfg_expr","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
641e1fd73364154b

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[\"core\", \"rustc-dep-of-std\"]","target":13840298032947503755,"profile":15657897354478470176,"path":16013548024843137761,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/cfg-if-595cd1fd9b5b1165/dep-lib-cfg_if","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
5b37b602b8253da7

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"std\"]","declared_features":"[\"default\", \"loom\", \"portable-atomic\", \"std\"]","target":13225166943538818286,"profile":15657897354478470176,"path":8973980409404719479,"deps":[[4468123440088164316,"crossbeam_utils",false,1153078969478063661]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/concurrent-queue-c950c56bda36749f/dep-lib-concurrent_queue","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
4e9919df2028511d

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[]","target":16347249514369226306,"profile":2225463790103693989,"path":14378179499804747317,"deps":[[4341528441765018781,"unicode_segmentation",false,12820975207257015858]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/convert_case-8459d8404b96693c/dep-lib-convert_case","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[\"default\", \"loom\", \"nightly\", \"std\"]","target":5408242616063297496,"profile":3908425943115333596,"path":18195904565990549994,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/crossbeam-utils-032f81936d72a209/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[4468123440088164316,"build_script_build",false,2833778660380057815]],"local":[{"RerunIfChanged":{"output":"debug/build/crossbeam-utils-2b16799b89a0ae2e/output","paths":["no_atomic.rs"]}}],"rustflags":[],"config":0,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
2da6b6a5368f0010

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[]","declared_features":"[\"default\", \"loom\", \"nightly\", \"std\"]","target":9626079250877207070,"profile":8636238262651292397,"path":4032492355284222888,"deps":[[4468123440088164316,"build_script_build",false,15380105868241202593]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/crossbeam-utils-4b0b6525def4f972/dep-lib-crossbeam_utils","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
eec93011ae8fbb9b

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"constructor\", \"default\", \"display\", \"std\"]","declared_features":"[\"add\", \"add_assign\", \"as_ref\", \"constructor\", \"debug\", \"default\", \"deref\", \"deref_mut\", \"display\", \"eq\", \"error\", \"from\", \"from_str\", \"full\", \"index\", \"index_mut\", \"into\", \"into_iterator\", \"is_variant\", \"mul\", \"mul_assign\", \"not\", \"std\", \"sum\", \"testing-helpers\", \"try_from\", \"try_into\", \"try_unwrap\", \"unwrap\"]","target":7165309211519594838,"profile":1613925905003419231,"path":13632748577511348596,"deps":[[17330140664269813203,"derive_more_impl",false,828698378105035666]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/derive_more-5efbb200ed0973e7/dep-lib-derive_more","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

View file

@ -0,0 +1 @@
929be4c4c820800b

View file

@ -0,0 +1 @@
{"rustc":7458672600737419911,"features":"[\"constructor\", \"default\", \"display\"]","declared_features":"[\"add\", \"add_assign\", \"as_ref\", \"constructor\", \"debug\", \"default\", \"deref\", \"deref_mut\", \"display\", \"eq\", \"error\", \"from\", \"from_str\", \"full\", \"index\", \"index_mut\", \"into\", \"into_iterator\", \"is_variant\", \"mul\", \"mul_assign\", \"not\", \"sum\", \"testing-helpers\", \"try_from\", \"try_into\", \"try_unwrap\", \"unwrap\"]","target":11796376952621915773,"profile":11465753365795029681,"path":10126062022512912066,"deps":[[4289358735036141001,"proc_macro2",false,6333263691172554239],[9503536157163433714,"convert_case",false,2112513821860534606],[10420560437213941093,"syn",false,10972986090803408589],[13111758008314797071,"quote",false,17610469368266944960],[16126285161989458480,"unicode_xid",false,4793578332198933749]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/derive_more-impl-158e0deb12531c83/dep-lib-derive_more_impl","checksum":false}}],"rustflags":[],"config":8247474407144887393,"compile_kind":0}

View file

@ -0,0 +1 @@
This file has an mtime of when this was started.

Some files were not shown because too many files have changed in this diff Show more