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    Ai,
 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    AiOpenRouter,
 25    AiVZero,
 26    AiXAi,
 27    AiZed,
 28    ArrowCircle,
 29    ArrowDown,
 30    ArrowDown10,
 31    ArrowDownRight,
 32    ArrowLeft,
 33    ArrowRight,
 34    ArrowRightLeft,
 35    ArrowUp,
 36    ArrowUpRight,
 37    Attach,
 38    AtSign,
 39    AudioOff,
 40    AudioOn,
 41    Backspace,
 42    Bell,
 43    BellDot,
 44    BellOff,
 45    BellRing,
 46    Binary,
 47    Blocks,
 48    BoltOutlined,
 49    BoltFilled,
 50    Book,
 51    BookCopy,
 52    CaseSensitive,
 53    Chat,
 54    Check,
 55    CheckDouble,
 56    ChevronDown,
 57    ChevronDownUp,
 58    ChevronLeft,
 59    ChevronRight,
 60    ChevronUp,
 61    ChevronUpDown,
 62    Circle,
 63    CircleHelp,
 64    Close,
 65    CloudDownload,
 66    Code,
 67    Cog,
 68    Command,
 69    Control,
 70    Copilot,
 71    CopilotDisabled,
 72    CopilotError,
 73    CopilotInit,
 74    Copy,
 75    CountdownTimer,
 76    Crosshair,
 77    CursorIBeam,
 78    Dash,
 79    DatabaseZap,
 80    Debug,
 81    DebugBreakpoint,
 82    DebugContinue,
 83    DebugDisabledBreakpoint,
 84    DebugDisabledLogBreakpoint,
 85    DebugDetach,
 86    DebugIgnoreBreakpoints,
 87    DebugLogBreakpoint,
 88    DebugPause,
 89    DebugStepInto,
 90    DebugStepOut,
 91    DebugStepOver,
 92    Diff,
 93    Disconnected,
 94    Download,
 95    EditorAtom,
 96    EditorCursor,
 97    EditorEmacs,
 98    EditorJetBrains,
 99    EditorSublime,
100    EditorVsCode,
101    Ellipsis,
102    EllipsisVertical,
103    Envelope,
104    Eraser,
105    Escape,
106    Exit,
107    ExpandDown,
108    ExpandUp,
109    ExpandVertical,
110    Eye,
111    File,
112    FileCode,
113    FileDiff,
114    FileDoc,
115    FileGeneric,
116    FileGit,
117    FileLock,
118    FileMarkdown,
119    FileRust,
120    FileTextFilled,
121    FileTextOutlined,
122    FileToml,
123    FileTree,
124    Filter,
125    Flame,
126    Folder,
127    FolderOpen,
128    FolderSearch,
129    Font,
130    FontSize,
131    FontWeight,
132    ForwardArrow,
133    GenericClose,
134    GenericMaximize,
135    GenericMinimize,
136    GenericRestore,
137    GitBranch,
138    GitBranchAlt,
139    Github,
140    Hash,
141    HistoryRerun,
142    Image,
143    Indicator,
144    Info,
145    Json,
146    Keyboard,
147    Library,
148    LineHeight,
149    Link,
150    ListCollapse,
151    ListFilter,
152    ListTodo,
153    ListTree,
154    ListX,
155    LoadCircle,
156    LocationEdit,
157    LockOutlined,
158    MagnifyingGlass,
159    Maximize,
160    Menu,
161    MenuAlt,
162    MenuAltTemp,
163    Mic,
164    MicMute,
165    Minimize,
166    Notepad,
167    Option,
168    PageDown,
169    PageUp,
170    Paperclip,
171    Pencil,
172    PencilUnavailable,
173    Person,
174    Pin,
175    PlayOutlined,
176    PlayFilled,
177    Plus,
178    Power,
179    Public,
180    PullRequest,
181    Quote,
182    Reader,
183    RefreshTitle,
184    Regex,
185    ReplNeutral,
186    Replace,
187    ReplaceAll,
188    ReplaceNext,
189    ReplyArrowRight,
190    Rerun,
191    Return,
192    RotateCcw,
193    RotateCw,
194    Scissors,
195    Screen,
196    SelectAll,
197    Send,
198    Server,
199    Settings,
200    ShieldCheck,
201    Shift,
202    Slash,
203    Sliders,
204    Space,
205    Sparkle,
206    Split,
207    SplitAlt,
208    SquareDot,
209    SquareMinus,
210    SquarePlus,
211    Star,
212    StarFilled,
213    Stop,
214    Supermaven,
215    SupermavenDisabled,
216    SupermavenError,
217    SupermavenInit,
218    SwatchBook,
219    SweepAi,
220    Tab,
221    Terminal,
222    TerminalAlt,
223    TerminalGhost,
224    TextSnippet,
225    TextThread,
226    Thread,
227    ThreadFromSummary,
228    ThumbsDown,
229    ThumbsUp,
230    TodoComplete,
231    TodoPending,
232    TodoProgress,
233    ToolCopy,
234    ToolDeleteFile,
235    ToolDiagnostics,
236    ToolFolder,
237    ToolHammer,
238    ToolNotification,
239    ToolPencil,
240    ToolRead,
241    ToolRegex,
242    ToolSearch,
243    ToolTerminal,
244    ToolThink,
245    ToolWeb,
246    Trash,
247    Triangle,
248    TriangleRight,
249    Undo,
250    Unpin,
251    UserCheck,
252    UserGroup,
253    UserRoundPen,
254    Warning,
255    WholeWord,
256    XCircle,
257    XCircleFilled,
258    ZedAgent,
259    ZedAssistant,
260    ZedBurnMode,
261    ZedBurnModeOn,
262    ZedSrcCustom,
263    ZedSrcExtension,
264    ZedPredict,
265    ZedPredictDisabled,
266    ZedPredictDown,
267    ZedPredictError,
268    ZedPredictUp,
269    ZedXCopilot,
270    Linux,
271}
272
273impl IconName {
274    /// Returns the path to this icon.
275    pub fn path(&self) -> Arc<str> {
276        let file_stem: &'static str = self.into();
277        format!("icons/{file_stem}.svg").into()
278    }
279}