icons.rs

  1use std::sync::Arc;
  2
  3use serde::{Deserialize, Serialize};
  4use strum::{EnumIter, EnumString, IntoStaticStr};
  5
  6#[derive(
  7    Debug, PartialEq, Eq, Copy, Clone, EnumIter, EnumString, IntoStaticStr, Serialize, Deserialize,
  8)]
  9#[strum(serialize_all = "snake_case")]
 10pub enum IconName {
 11    Ai,
 12    AiBedrock,
 13    AiClaude,
 14    AiDeepSeek,
 15    AiEdit,
 16    AiGemini,
 17    AiGoogle,
 18    AiLmStudio,
 19    AiMistral,
 20    AiOllama,
 21    AiOpenAi,
 22    AiOpenAiCompat,
 23    AiOpenRouter,
 24    AiVZero,
 25    AiXAi,
 26    AiZed,
 27    ArrowCircle,
 28    ArrowDown,
 29    ArrowDown10,
 30    ArrowDownRight,
 31    ArrowLeft,
 32    ArrowRight,
 33    ArrowRightLeft,
 34    ArrowUp,
 35    ArrowUpRight,
 36    Attach,
 37    AtSign,
 38    AudioOff,
 39    AudioOn,
 40    Backspace,
 41    Bell,
 42    BellDot,
 43    BellOff,
 44    BellRing,
 45    Binary,
 46    Blocks,
 47    BoltOutlined,
 48    BoltFilled,
 49    Book,
 50    BookCopy,
 51    CaseSensitive,
 52    Chat,
 53    Check,
 54    CheckDouble,
 55    ChevronDown,
 56    ChevronDownUp,
 57    ChevronLeft,
 58    ChevronRight,
 59    ChevronUp,
 60    ChevronUpDown,
 61    Circle,
 62    CircleHelp,
 63    Close,
 64    CloudDownload,
 65    Code,
 66    Cog,
 67    Command,
 68    Control,
 69    Copilot,
 70    CopilotDisabled,
 71    CopilotError,
 72    CopilotInit,
 73    Copy,
 74    CountdownTimer,
 75    Crosshair,
 76    CursorIBeam,
 77    Dash,
 78    DatabaseZap,
 79    Debug,
 80    DebugBreakpoint,
 81    DebugContinue,
 82    DebugDisabledBreakpoint,
 83    DebugDisabledLogBreakpoint,
 84    DebugDetach,
 85    DebugIgnoreBreakpoints,
 86    DebugLogBreakpoint,
 87    DebugPause,
 88    DebugStepInto,
 89    DebugStepOut,
 90    DebugStepOver,
 91    Diff,
 92    Disconnected,
 93    Download,
 94    EditorAtom,
 95    EditorCursor,
 96    EditorEmacs,
 97    EditorJetBrains,
 98    EditorSublime,
 99    EditorVsCode,
100    Ellipsis,
101    EllipsisVertical,
102    Envelope,
103    Eraser,
104    Escape,
105    Exit,
106    ExpandDown,
107    ExpandUp,
108    ExpandVertical,
109    Eye,
110    File,
111    FileCode,
112    FileDiff,
113    FileDoc,
114    FileGeneric,
115    FileGit,
116    FileLock,
117    FileMarkdown,
118    FileRust,
119    FileTextFilled,
120    FileTextOutlined,
121    FileToml,
122    FileTree,
123    Filter,
124    Flame,
125    Folder,
126    FolderOpen,
127    FolderSearch,
128    Font,
129    FontSize,
130    FontWeight,
131    ForwardArrow,
132    GenericClose,
133    GenericMaximize,
134    GenericMinimize,
135    GenericRestore,
136    GitBranch,
137    GitBranchAlt,
138    Github,
139    Hash,
140    HistoryRerun,
141    Image,
142    Indicator,
143    Info,
144    Json,
145    Keyboard,
146    Library,
147    LineHeight,
148    Link,
149    ListCollapse,
150    ListFilter,
151    ListTodo,
152    ListTree,
153    ListX,
154    LoadCircle,
155    LocationEdit,
156    LockOutlined,
157    MagnifyingGlass,
158    Maximize,
159    Menu,
160    MenuAlt,
161    MenuAltTemp,
162    Mic,
163    MicMute,
164    Minimize,
165    Notepad,
166    Option,
167    PageDown,
168    PageUp,
169    Paperclip,
170    Pencil,
171    PencilUnavailable,
172    Person,
173    Pin,
174    PlayOutlined,
175    PlayFilled,
176    Plus,
177    Power,
178    Public,
179    PullRequest,
180    Quote,
181    Reader,
182    RefreshTitle,
183    Regex,
184    ReplNeutral,
185    Replace,
186    ReplaceAll,
187    ReplaceNext,
188    ReplyArrowRight,
189    Rerun,
190    Return,
191    RotateCcw,
192    RotateCw,
193    Scissors,
194    Screen,
195    SelectAll,
196    Send,
197    Server,
198    Settings,
199    ShieldCheck,
200    Shift,
201    Slash,
202    Sliders,
203    Space,
204    Sparkle,
205    Split,
206    SplitAlt,
207    SquareDot,
208    SquareMinus,
209    SquarePlus,
210    Star,
211    StarFilled,
212    Stop,
213    Supermaven,
214    SupermavenDisabled,
215    SupermavenError,
216    SupermavenInit,
217    SwatchBook,
218    SweepAi,
219    Tab,
220    Terminal,
221    TerminalAlt,
222    TerminalGhost,
223    TextSnippet,
224    TextThread,
225    Thread,
226    ThreadFromSummary,
227    ThumbsDown,
228    ThumbsUp,
229    TodoComplete,
230    TodoPending,
231    TodoProgress,
232    ToolCopy,
233    ToolDeleteFile,
234    ToolDiagnostics,
235    ToolFolder,
236    ToolHammer,
237    ToolNotification,
238    ToolPencil,
239    ToolRead,
240    ToolRegex,
241    ToolSearch,
242    ToolTerminal,
243    ToolThink,
244    ToolWeb,
245    Trash,
246    Triangle,
247    TriangleRight,
248    Undo,
249    Unpin,
250    UserCheck,
251    UserGroup,
252    UserRoundPen,
253    Warning,
254    WholeWord,
255    XCircle,
256    XCircleFilled,
257    ZedAgent,
258    ZedAssistant,
259    ZedBurnMode,
260    ZedBurnModeOn,
261    ZedSrcCustom,
262    ZedSrcExtension,
263    ZedPredict,
264    ZedPredictDisabled,
265    ZedPredictDown,
266    ZedPredictError,
267    ZedPredictUp,
268    ZedXCopilot,
269    Linux,
270}
271
272impl IconName {
273    /// Returns the path to this icon.
274    pub fn path(&self) -> Arc<str> {
275        let file_stem: &'static str = self.into();
276        format!("icons/{file_stem}.svg").into()
277    }
278}