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