leenfetch_core/core/
data.rs

1use crate::modules::enums::SongInfo;
2
3/// Holds all the collected system information for display.
4/// Each field corresponds to a block or value in the output.
5#[derive(Default, Clone, Debug)]
6pub struct Data {
7    /// Username of the current user (e.g., "snape")
8    pub username: Option<String>,
9    /// Hostname of the machine (e.g., "archbox")
10    pub hostname: Option<String>,
11    /// Base OS name (e.g., "Linux", "Windows")
12    pub os: Option<String>,
13    /// Distro string (format depends on DistroDisplay)
14    pub distro: Option<String>,
15    /// Hardware model (e.g., "ThinkPad X1")
16    pub model: Option<String>,
17    /// Kernel version (e.g., "6.14.6-arch1-1")
18    pub kernel: Option<String>,
19    /// OS installation age string (e.g., "120 days")
20    pub os_age: Option<String>,
21    /// Uptime string (format depends on UptimeShorthand)
22    pub uptime: Option<String>,
23    /// Package count or summary (format depends on PackageShorthand)
24    pub packages: Option<String>,
25    /// Shell name and/or version (e.g., "zsh 5.9")
26    pub shell: Option<String>,
27    /// Window manager name (e.g., "i3", "Mutter")
28    pub wm: Option<String>,
29    /// Desktop environment name (e.g., "GNOME", "KDE")
30    pub de: Option<String>,
31    /// CPU info string (model, speed, cores, etc.)
32    pub cpu: Option<String>,
33    /// List of GPU(s) detected
34    pub gpu: Option<Vec<String>>,
35    /// Memory usage string (format depends on Flags)
36    pub memory: Option<String>,
37    /// List of disk usage entries (label, usage string)
38    pub disk: Option<Vec<(String, String)>>,
39    /// Display resolution (e.g., "1920x1080 @ 60Hz")
40    pub resolution: Option<String>,
41    /// Theme name (GTK/Qt/DE/Windows)
42    pub theme: Option<String>,
43    /// List of battery info strings (format depends on BatteryDisplayMode)
44    pub battery: Option<Vec<String>>,
45    /// Currently playing song info (artist, album, title)
46    pub song: Option<SongInfo>,
47    /// Terminal color palette string
48    pub colors: Option<String>,
49}