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