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