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