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    Folder,
135    FolderOpen,
136    FolderPlus,
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    GitWorktree,
154    Github,
155    Hash,
156    HistoryRerun,
157    Image,
158    Inception,
159    Indicator,
160    Info,
161    Json,
162    Keyboard,
163    Library,
164    LineHeight,
165    Link,
166    Linux,
167    ListCollapse,
168    ListFilter,
169    ListTodo,
170    ListTree,
171    ListX,
172    LoadCircle,
173    LocationEdit,
174    LockOutlined,
175    MagnifyingGlass,
176    Maximize,
177    MaximizeAlt,
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    ThinkingMode,
241    ThinkingModeOff,
242    Thread,
243    ThreadFromSummary,
244    ThreadImport,
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}