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