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    AiAnthropic,
 13    AiBedrock,
 14    AiClaude,
 15    AiDeepSeek,
 16    AiEdit,
 17    AiGemini,
 18    AiGoogle,
 19    AiLmStudio,
 20    AiMistral,
 21    AiOllama,
 22    AiOpenAi,
 23    AiOpenAiCompat,
 24    AiOpenCode,
 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    BoxOpen,
 57    CaseSensitive,
 58    Chat,
 59    Check,
 60    CheckDouble,
 61    ChevronDown,
 62    ChevronDownUp,
 63    ChevronLeft,
 64    ChevronRight,
 65    ChevronUp,
 66    ChevronUpDown,
 67    Circle,
 68    CircleHelp,
 69    Close,
 70    CloudDownload,
 71    Code,
 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    Envelope,
109    Eraser,
110    Escape,
111    Exit,
112    ExpandDown,
113    ExpandUp,
114    ExpandVertical,
115    Eye,
116    EyeOff,
117    FastForward,
118    FastForwardOff,
119    File,
120    FileCode,
121    FileDiff,
122    FileDoc,
123    FileGeneric,
124    FileGit,
125    FileLock,
126    FileMarkdown,
127    FileRust,
128    FileTextFilled,
129    FileTextOutlined,
130    FileToml,
131    FileTree,
132    Filter,
133    Flame,
134    Focus,
135    Folder,
136    FolderOpen,
137    FolderPlus,
138    FolderSearch,
139    Font,
140    FontSize,
141    FontWeight,
142    ForwardArrow,
143    ForwardArrowUp,
144    GenericClose,
145    GenericMaximize,
146    GenericMinimize,
147    GenericRestore,
148    GitBranch,
149    GitBranchAlt,
150    GitBranchPlus,
151    GitCommit,
152    GitGraph,
153    GitMergeConflict,
154    GitWorktree,
155    Github,
156    Hash,
157    HistoryRerun,
158    Image,
159    Inception,
160    Indicator,
161    Info,
162    Json,
163    Keyboard,
164    Library,
165    LineHeight,
166    Link,
167    Linux,
168    ListCollapse,
169    ListFilter,
170    ListTodo,
171    ListTree,
172    ListX,
173    LoadCircle,
174    LocationEdit,
175    LockOutlined,
176    MagnifyingGlass,
177    Maximize,
178    Menu,
179    MenuAltTemp,
180    Mic,
181    MicMute,
182    Minimize,
183    NewThread,
184    Notepad,
185    OpenFolder,
186    Option,
187    PageDown,
188    PageUp,
189    Paperclip,
190    Pencil,
191    PencilUnavailable,
192    Person,
193    Pin,
194    PlayFilled,
195    PlayOutlined,
196    Plus,
197    Power,
198    Public,
199    PullRequest,
200    QueueMessage,
201    Quote,
202    Reader,
203    RefreshTitle,
204    Regex,
205    ReplNeutral,
206    Replace,
207    ReplaceAll,
208    ReplaceNext,
209    ReplyArrowRight,
210    Rerun,
211    Return,
212    RotateCcw,
213    RotateCw,
214    Scissors,
215    Screen,
216    SelectAll,
217    Send,
218    Server,
219    Settings,
220    Shift,
221    SignalHigh,
222    SignalLow,
223    SignalMedium,
224    Slash,
225    Sliders,
226    Space,
227    Sparkle,
228    Split,
229    SplitAlt,
230    SquareDot,
231    SquareMinus,
232    SquarePlus,
233    Star,
234    StarFilled,
235    Stop,
236    SweepAi,
237    SweepAiDisabled,
238    SweepAiDown,
239    SweepAiError,
240    SweepAiUp,
241    Tab,
242    Terminal,
243    TerminalAlt,
244    TextSnippet,
245    TextThread,
246    ThinkingMode,
247    ThinkingModeOff,
248    Thread,
249    ThreadFromSummary,
250    ThreadsSidebarLeftClosed,
251    ThreadsSidebarLeftOpen,
252    ThumbsDown,
253    ThumbsUp,
254    TodoComplete,
255    TodoPending,
256    TodoProgress,
257    ToolCopy,
258    ToolDeleteFile,
259    ToolDiagnostics,
260    ToolFolder,
261    ToolHammer,
262    ToolNotification,
263    ToolPencil,
264    ToolSearch,
265    ToolTerminal,
266    ToolThink,
267    ToolWeb,
268    Trash,
269    Triangle,
270    TriangleRight,
271    Undo,
272    Unpin,
273    UserCheck,
274    UserGroup,
275    UserRoundPen,
276    Warning,
277    WholeWord,
278    XCircle,
279    XCircleFilled,
280    ZedAgent,
281    ZedAgentTwo,
282    ZedAssistant,
283    ZedPredict,
284    ZedPredictDisabled,
285    ZedPredictDown,
286    ZedPredictError,
287    ZedPredictUp,
288    ZedSrcCustom,
289    ZedSrcExtension,
290}
291
292impl IconName {
293    /// Returns the path to this icon.
294    pub fn path(&self) -> Arc<str> {
295        let file_stem: &'static str = self.into();
296        format!("icons/{file_stem}.svg").into()
297    }
298}