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    Menu,
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    Shift,
220    SignalHigh,
221    SignalLow,
222    SignalMedium,
223    Slash,
224    Sliders,
225    Space,
226    Sparkle,
227    Split,
228    SplitAlt,
229    SquareDot,
230    SquareMinus,
231    SquarePlus,
232    Star,
233    StarFilled,
234    Stop,
235    Tab,
236    Terminal,
237    TerminalAlt,
238    TextSnippet,
239    ThinkingMode,
240    ThinkingModeOff,
241    Thread,
242    ThreadFromSummary,
243    ThreadsSidebarLeftClosed,
244    ThreadsSidebarLeftOpen,
245    ThreadsSidebarRightClosed,
246    ThreadsSidebarRightOpen,
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}