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    AcpRegistry,
 12    Ai,
 13    AiAnthropic,
 14    AiBedrock,
 15    AiClaude,
 16    AiDeepSeek,
 17    AiEdit,
 18    AiGemini,
 19    AiGoogle,
 20    AiLmStudio,
 21    AiMistral,
 22    AiOllama,
 23    AiOpenAi,
 24    AiOpenAiCompat,
 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    CaseSensitive,
 57    Chat,
 58    Check,
 59    CheckDouble,
 60    ChevronDown,
 61    ChevronDownUp,
 62    ChevronLeft,
 63    ChevronRight,
 64    ChevronUp,
 65    ChevronUpDown,
 66    Circle,
 67    CircleHelp,
 68    Close,
 69    CloudDownload,
 70    Code,
 71    Cog,
 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    EllipsisVertical,
109    Envelope,
110    Eraser,
111    Escape,
112    Exit,
113    ExpandDown,
114    ExpandUp,
115    ExpandVertical,
116    Eye,
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    FolderSearch,
137    Font,
138    FontSize,
139    FontWeight,
140    ForwardArrow,
141    ForwardArrowUp,
142    GenericClose,
143    GenericMaximize,
144    GenericMinimize,
145    GenericRestore,
146    GitBranch,
147    GitBranchAlt,
148    GitBranchPlus,
149    GitCommit,
150    GitGraph,
151    GitMergeConflict,
152    Github,
153    Hash,
154    HistoryRerun,
155    Image,
156    Inception,
157    Indicator,
158    Info,
159    Json,
160    Keyboard,
161    Library,
162    LineHeight,
163    Link,
164    Linux,
165    ListCollapse,
166    ListFilter,
167    ListTodo,
168    ListTree,
169    ListX,
170    LoadCircle,
171    LocationEdit,
172    LockOutlined,
173    MagnifyingGlass,
174    Maximize,
175    Menu,
176    MenuAlt,
177    MenuAltTemp,
178    Mic,
179    MicMute,
180    Minimize,
181    NewThread,
182    Notepad,
183    OpenFolder,
184    Option,
185    PageDown,
186    PageUp,
187    Paperclip,
188    Pencil,
189    PencilUnavailable,
190    Person,
191    Pin,
192    PlayFilled,
193    PlayOutlined,
194    Plus,
195    Power,
196    Public,
197    PullRequest,
198    QueueMessage,
199    Quote,
200    Reader,
201    RefreshTitle,
202    Regex,
203    ReplNeutral,
204    Replace,
205    ReplaceAll,
206    ReplaceNext,
207    ReplyArrowRight,
208    Rerun,
209    Return,
210    RotateCcw,
211    RotateCw,
212    Scissors,
213    Screen,
214    SelectAll,
215    Send,
216    Server,
217    Settings,
218    ShieldCheck,
219    Shift,
220    Slash,
221    Sliders,
222    Space,
223    Sparkle,
224    Split,
225    SplitAlt,
226    SquareDot,
227    SquareMinus,
228    SquarePlus,
229    Star,
230    StarFilled,
231    Stop,
232    SwatchBook,
233    SweepAi,
234    SweepAiDisabled,
235    SweepAiDown,
236    SweepAiError,
237    SweepAiUp,
238    Tab,
239    Terminal,
240    TerminalAlt,
241    TerminalGhost,
242    TextSnippet,
243    TextThread,
244    ThinkingMode,
245    ThinkingModeOff,
246    Thread,
247    ThreadFromSummary,
248    ThreadsSidebarLeftClosed,
249    ThreadsSidebarLeftOpen,
250    ThreadsSidebarRightClosed,
251    ThreadsSidebarRightOpen,
252    ThumbsDown,
253    ThumbsUp,
254    TodoComplete,
255    TodoPending,
256    TodoProgress,
257    ToolCopy,
258    ToolDeleteFile,
259    ToolDiagnostics,
260    ToolFolder,
261    ToolHammer,
262    ToolNotification,
263    ToolPencil,
264    ToolRead,
265    ToolRegex,
266    ToolSearch,
267    ToolTerminal,
268    ToolThink,
269    ToolWeb,
270    Trash,
271    Triangle,
272    TriangleRight,
273    Undo,
274    Unpin,
275    UserCheck,
276    UserGroup,
277    UserRoundPen,
278    Warning,
279    WholeWord,
280    XCircle,
281    XCircleFilled,
282    ZedAgent,
283    ZedAgentTwo,
284    ZedAssistant,
285    ZedPredict,
286    ZedPredictDisabled,
287    ZedPredictDown,
288    ZedPredictError,
289    ZedPredictUp,
290    ZedSrcCustom,
291    ZedSrcExtension,
292    ZedXCopilot,
293}
294
295impl IconName {
296    /// Returns the path to this icon.
297    pub fn path(&self) -> Arc<str> {
298        let file_stem: &'static str = self.into();
299        format!("icons/{file_stem}.svg").into()
300    }
301}