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