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