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    AiVercel,
 27    AiVZero,
 28    AiXAi,
 29    AiZed,
 30    ArrowCircle,
 31    ArrowDown,
 32    ArrowDown10,
 33    ArrowDownRight,
 34    ArrowLeft,
 35    ArrowRight,
 36    ArrowRightLeft,
 37    ArrowUp,
 38    ArrowUpRight,
 39    AtSign,
 40    Attach,
 41    AudioOff,
 42    AudioOn,
 43    Backspace,
 44    Bell,
 45    BellDot,
 46    BellOff,
 47    BellRing,
 48    Binary,
 49    Blocks,
 50    BoltFilled,
 51    BoltOutlined,
 52    Book,
 53    BookCopy,
 54    Box,
 55    CaseSensitive,
 56    Chat,
 57    Check,
 58    CheckDouble,
 59    ChevronDown,
 60    ChevronDownUp,
 61    ChevronLeft,
 62    ChevronRight,
 63    ChevronUp,
 64    ChevronUpDown,
 65    Circle,
 66    CircleHelp,
 67    Close,
 68    CloudDownload,
 69    Code,
 70    Cog,
 71    Command,
 72    Control,
 73    Copilot,
 74    CopilotDisabled,
 75    CopilotError,
 76    CopilotInit,
 77    Copy,
 78    CountdownTimer,
 79    Crosshair,
 80    CursorIBeam,
 81    Dash,
 82    DatabaseZap,
 83    Debug,
 84    DebugBreakpoint,
 85    DebugContinue,
 86    DebugDetach,
 87    DebugDisabledBreakpoint,
 88    DebugDisabledLogBreakpoint,
 89    DebugIgnoreBreakpoints,
 90    DebugLogBreakpoint,
 91    DebugPause,
 92    DebugStepInto,
 93    DebugStepOut,
 94    DebugStepOver,
 95    Diff,
 96    DiffSplit,
 97    DiffUnified,
 98    Disconnected,
 99    Download,
100    EditorAtom,
101    EditorCursor,
102    EditorEmacs,
103    EditorJetBrains,
104    EditorSublime,
105    EditorVsCode,
106    Ellipsis,
107    EllipsisVertical,
108    Envelope,
109    Eraser,
110    Escape,
111    Exit,
112    ExpandDown,
113    ExpandUp,
114    ExpandVertical,
115    Eye,
116    FastForward,
117    FastForwardOff,
118    File,
119    FileCode,
120    FileDiff,
121    FileDoc,
122    FileGeneric,
123    FileGit,
124    FileLock,
125    FileMarkdown,
126    FileRust,
127    FileTextFilled,
128    FileTextOutlined,
129    FileToml,
130    FileTree,
131    Filter,
132    Flame,
133    Folder,
134    FolderOpen,
135    FolderSearch,
136    Font,
137    FontSize,
138    FontWeight,
139    ForwardArrow,
140    ForwardArrowUp,
141    GenericClose,
142    GenericMaximize,
143    GenericMinimize,
144    GenericRestore,
145    GitBranch,
146    GitBranchAlt,
147    GitBranchPlus,
148    GitCommit,
149    GitGraph,
150    Github,
151    Hash,
152    HistoryRerun,
153    Image,
154    Inception,
155    Indicator,
156    Info,
157    Json,
158    Keyboard,
159    Library,
160    LineHeight,
161    Link,
162    Linux,
163    ListCollapse,
164    ListFilter,
165    ListTodo,
166    ListTree,
167    ListX,
168    LoadCircle,
169    LocationEdit,
170    LockOutlined,
171    MagnifyingGlass,
172    Maximize,
173    Menu,
174    MenuAlt,
175    MenuAltTemp,
176    Mic,
177    MicMute,
178    Minimize,
179    NewThread,
180    Notepad,
181    OpenFolder,
182    Option,
183    PageDown,
184    PageUp,
185    Paperclip,
186    Pencil,
187    PencilUnavailable,
188    Person,
189    Pin,
190    PlayFilled,
191    PlayOutlined,
192    Plus,
193    Power,
194    Public,
195    PullRequest,
196    QueueMessage,
197    Quote,
198    Reader,
199    RefreshTitle,
200    Regex,
201    ReplNeutral,
202    Replace,
203    ReplaceAll,
204    ReplaceNext,
205    ReplyArrowRight,
206    Rerun,
207    Return,
208    RotateCcw,
209    RotateCw,
210    Scissors,
211    Screen,
212    SelectAll,
213    Send,
214    Server,
215    Settings,
216    ShieldCheck,
217    Shift,
218    Slash,
219    Sliders,
220    Space,
221    Sparkle,
222    Split,
223    SplitAlt,
224    SquareDot,
225    SquareMinus,
226    SquarePlus,
227    Star,
228    StarFilled,
229    Stop,
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}