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