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