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