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    DebugStepBack,
 90    DebugStepInto,
 91    DebugStepOut,
 92    DebugStepOver,
 93    Diff,
 94    Disconnected,
 95    Download,
 96    EditorAtom,
 97    EditorCursor,
 98    EditorEmacs,
 99    EditorJetBrains,
100    EditorSublime,
101    EditorVsCode,
102    Ellipsis,
103    EllipsisVertical,
104    Envelope,
105    Eraser,
106    Escape,
107    Exit,
108    ExpandDown,
109    ExpandUp,
110    ExpandVertical,
111    Eye,
112    File,
113    FileCode,
114    FileDiff,
115    FileDoc,
116    FileGeneric,
117    FileGit,
118    FileLock,
119    FileMarkdown,
120    FileRust,
121    FileTextFilled,
122    FileTextOutlined,
123    FileToml,
124    FileTree,
125    Filter,
126    Flame,
127    Folder,
128    FolderOpen,
129    FolderSearch,
130    Font,
131    FontSize,
132    FontWeight,
133    ForwardArrow,
134    GenericClose,
135    GenericMaximize,
136    GenericMinimize,
137    GenericRestore,
138    GitBranch,
139    GitBranchAlt,
140    Github,
141    Hash,
142    HistoryRerun,
143    Image,
144    Indicator,
145    Info,
146    Json,
147    Keyboard,
148    Library,
149    LineHeight,
150    Link,
151    ListCollapse,
152    ListFilter,
153    ListTodo,
154    ListTree,
155    ListX,
156    LoadCircle,
157    LocationEdit,
158    LockOutlined,
159    MagnifyingGlass,
160    Maximize,
161    Menu,
162    MenuAlt,
163    MenuAltTemp,
164    Mic,
165    MicMute,
166    Minimize,
167    Notepad,
168    Option,
169    PageDown,
170    PageUp,
171    Paperclip,
172    Pencil,
173    PencilUnavailable,
174    Person,
175    Pin,
176    PlayOutlined,
177    PlayFilled,
178    Plus,
179    Power,
180    Public,
181    PullRequest,
182    Quote,
183    Reader,
184    RefreshTitle,
185    Regex,
186    ReplNeutral,
187    Replace,
188    ReplaceAll,
189    ReplaceNext,
190    ReplyArrowRight,
191    Rerun,
192    Return,
193    RotateCcw,
194    RotateCw,
195    Scissors,
196    Screen,
197    SelectAll,
198    Send,
199    Server,
200    Settings,
201    ShieldCheck,
202    Shift,
203    Slash,
204    Sliders,
205    Space,
206    Sparkle,
207    Split,
208    SplitAlt,
209    SquareDot,
210    SquareMinus,
211    SquarePlus,
212    Star,
213    StarFilled,
214    Stop,
215    Supermaven,
216    SupermavenDisabled,
217    SupermavenError,
218    SupermavenInit,
219    SwatchBook,
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}