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    Tab,
237    Terminal,
238    TerminalAlt,
239    TextSnippet,
240    TextThread,
241    ThinkingMode,
242    ThinkingModeOff,
243    Thread,
244    ThreadFromSummary,
245    ThreadsSidebarLeftClosed,
246    ThreadsSidebarLeftOpen,
247    ThumbsDown,
248    ThumbsUp,
249    TodoComplete,
250    TodoPending,
251    TodoProgress,
252    ToolCopy,
253    ToolDeleteFile,
254    ToolDiagnostics,
255    ToolFolder,
256    ToolHammer,
257    ToolNotification,
258    ToolPencil,
259    ToolSearch,
260    ToolTerminal,
261    ToolThink,
262    ToolWeb,
263    Trash,
264    Triangle,
265    TriangleRight,
266    Undo,
267    Unpin,
268    UserCheck,
269    UserGroup,
270    UserRoundPen,
271    Warning,
272    WholeWord,
273    XCircle,
274    XCircleFilled,
275    ZedAgent,
276    ZedAgentTwo,
277    ZedAssistant,
278    ZedPredict,
279    ZedPredictDisabled,
280    ZedPredictDown,
281    ZedPredictError,
282    ZedPredictUp,
283    ZedSrcCustom,
284    ZedSrcExtension,
285}
286
287impl IconName {
288    /// Returns the path to this icon.
289    pub fn path(&self) -> Arc<str> {
290        let file_stem: &'static str = self.into();
291        format!("icons/{file_stem}.svg").into()
292    }
293}