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 Github,
140 Hash,
141 HistoryRerun,
142 Image,
143 Inception,
144 Indicator,
145 Info,
146 Json,
147 Keyboard,
148 Library,
149 LineHeight,
150 Link,
151 Linux,
152 ListCollapse,
153 ListFilter,
154 ListTodo,
155 ListTree,
156 ListX,
157 LoadCircle,
158 LocationEdit,
159 LockOutlined,
160 MagnifyingGlass,
161 Maximize,
162 Menu,
163 MenuAlt,
164 MenuAltTemp,
165 Mic,
166 MicMute,
167 Minimize,
168 Notepad,
169 Option,
170 PageDown,
171 PageUp,
172 Paperclip,
173 Pencil,
174 PencilUnavailable,
175 Person,
176 Pin,
177 PlayFilled,
178 PlayOutlined,
179 Plus,
180 Power,
181 Public,
182 PullRequest,
183 Quote,
184 Reader,
185 RefreshTitle,
186 Regex,
187 ReplNeutral,
188 Replace,
189 ReplaceAll,
190 ReplaceNext,
191 ReplyArrowRight,
192 Rerun,
193 Return,
194 RotateCcw,
195 RotateCw,
196 Scissors,
197 Screen,
198 SelectAll,
199 Send,
200 Server,
201 Settings,
202 ShieldCheck,
203 Shift,
204 Slash,
205 Sliders,
206 Space,
207 Sparkle,
208 Split,
209 SplitAlt,
210 SquareDot,
211 SquareMinus,
212 SquarePlus,
213 Star,
214 StarFilled,
215 Stop,
216 Supermaven,
217 SupermavenDisabled,
218 SupermavenError,
219 SupermavenInit,
220 SwatchBook,
221 SweepAi,
222 Tab,
223 Terminal,
224 TerminalAlt,
225 TerminalGhost,
226 TextSnippet,
227 TextThread,
228 Thread,
229 ThreadFromSummary,
230 ThumbsDown,
231 ThumbsUp,
232 TodoComplete,
233 TodoPending,
234 TodoProgress,
235 ToolCopy,
236 ToolDeleteFile,
237 ToolDiagnostics,
238 ToolFolder,
239 ToolHammer,
240 ToolNotification,
241 ToolPencil,
242 ToolRead,
243 ToolRegex,
244 ToolSearch,
245 ToolTerminal,
246 ToolThink,
247 ToolWeb,
248 Trash,
249 Triangle,
250 TriangleRight,
251 Undo,
252 Unpin,
253 UserCheck,
254 UserGroup,
255 UserRoundPen,
256 Warning,
257 WholeWord,
258 XCircle,
259 XCircleFilled,
260 ZedAgent,
261 ZedAssistant,
262 ZedBurnMode,
263 ZedBurnModeOn,
264 ZedPredict,
265 ZedPredictDisabled,
266 ZedPredictDown,
267 ZedPredictError,
268 ZedPredictUp,
269 ZedSrcCustom,
270 ZedSrcExtension,
271 ZedXCopilot,
272}
273
274impl IconName {
275 /// Returns the path to this icon.
276 pub fn path(&self) -> Arc<str> {
277 let file_stem: &'static str = self.into();
278 format!("icons/{file_stem}.svg").into()
279 }
280}