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