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