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    AtSign,
 38    Attach,
 39    AudioOff,
 40    AudioOn,
 41    Backspace,
 42    Bell,
 43    BellDot,
 44    BellOff,
 45    BellRing,
 46    Binary,
 47    Blocks,
 48    BoltFilled,
 49    BoltOutlined,
 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    DebugDetach,
 84    DebugDisabledBreakpoint,
 85    DebugDisabledLogBreakpoint,
 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    Inception,
144    Indicator,
145    Info,
146    Json,
147    Keyboard,
148    Library,
149    LineHeight,
150    Link,
151    Linux,
152    ListCollapse,
153    ListFilter,
154    ListTodo,
155    ListTree,
156    ListX,
157    LoadCircle,
158    LocationEdit,
159    LockOutlined,
160    MagnifyingGlass,
161    Maximize,
162    Menu,
163    MenuAlt,
164    MenuAltTemp,
165    Mic,
166    MicMute,
167    Minimize,
168    Notepad,
169    Option,
170    PageDown,
171    PageUp,
172    Paperclip,
173    Pencil,
174    PencilUnavailable,
175    Person,
176    Pin,
177    PlayFilled,
178    PlayOutlined,
179    Plus,
180    Power,
181    Public,
182    PullRequest,
183    Quote,
184    Reader,
185    RefreshTitle,
186    Regex,
187    ReplNeutral,
188    Replace,
189    ReplaceAll,
190    ReplaceNext,
191    ReplyArrowRight,
192    Rerun,
193    Return,
194    RotateCcw,
195    RotateCw,
196    Scissors,
197    Screen,
198    SelectAll,
199    Send,
200    Server,
201    Settings,
202    ShieldCheck,
203    Shift,
204    Slash,
205    Sliders,
206    Space,
207    Sparkle,
208    Split,
209    SplitAlt,
210    SquareDot,
211    SquareMinus,
212    SquarePlus,
213    Star,
214    StarFilled,
215    Stop,
216    Supermaven,
217    SupermavenDisabled,
218    SupermavenError,
219    SupermavenInit,
220    SwatchBook,
221    SweepAi,
222    Tab,
223    Terminal,
224    TerminalAlt,
225    TerminalGhost,
226    TextSnippet,
227    TextThread,
228    Thread,
229    ThreadFromSummary,
230    ThumbsDown,
231    ThumbsUp,
232    TodoComplete,
233    TodoPending,
234    TodoProgress,
235    ToolCopy,
236    ToolDeleteFile,
237    ToolDiagnostics,
238    ToolFolder,
239    ToolHammer,
240    ToolNotification,
241    ToolPencil,
242    ToolRead,
243    ToolRegex,
244    ToolSearch,
245    ToolTerminal,
246    ToolThink,
247    ToolWeb,
248    Trash,
249    Triangle,
250    TriangleRight,
251    Undo,
252    Unpin,
253    UserCheck,
254    UserGroup,
255    UserRoundPen,
256    Warning,
257    WholeWord,
258    XCircle,
259    XCircleFilled,
260    ZedAgent,
261    ZedAssistant,
262    ZedBurnMode,
263    ZedBurnModeOn,
264    ZedPredict,
265    ZedPredictDisabled,
266    ZedPredictDown,
267    ZedPredictError,
268    ZedPredictUp,
269    ZedSrcCustom,
270    ZedSrcExtension,
271    ZedXCopilot,
272}
273
274impl IconName {
275    /// Returns the path to this icon.
276    pub fn path(&self) -> Arc<str> {
277        let file_stem: &'static str = self.into();
278        format!("icons/{file_stem}.svg").into()
279    }
280}