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