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