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    AiDeepSeek,
 15    AiEdit,
 16    AiGemini,
 17    AiGoogle,
 18    AiLmStudio,
 19    AiMistral,
 20    AiOllama,
 21    AiOpenAi,
 22    AiOpenRouter,
 23    AiVZero,
 24    AiZed,
 25    ArrowCircle,
 26    ArrowDown,
 27    ArrowDown10,
 28    ArrowDownFromLine,
 29    ArrowDownRight,
 30    ArrowLeft,
 31    ArrowRight,
 32    ArrowRightLeft,
 33    ArrowUp,
 34    ArrowUpAlt,
 35    ArrowUpFromLine,
 36    ArrowUpRight,
 37    ArrowUpRightAlt,
 38    AtSign,
 39    AudioOff,
 40    AudioOn,
 41    Backspace,
 42    Bell,
 43    BellDot,
 44    BellOff,
 45    BellRing,
 46    Binary,
 47    Blocks,
 48    Bolt,
 49    BoltFilled,
 50    BoltFilledAlt,
 51    Book,
 52    BookCopy,
 53    BookPlus,
 54    Brain,
 55    BugOff,
 56    CaseSensitive,
 57    Check,
 58    CheckDouble,
 59    ChevronDown,
 60    /// This chevron indicates a popover menu.
 61    ChevronDownSmall,
 62    ChevronLeft,
 63    ChevronRight,
 64    ChevronUp,
 65    ChevronUpDown,
 66    Circle,
 67    CircleOff,
 68    CircleHelp,
 69    Close,
 70    Cloud,
 71    Code,
 72    Cog,
 73    Command,
 74    Context,
 75    Control,
 76    Copilot,
 77    CopilotDisabled,
 78    CopilotError,
 79    CopilotInit,
 80    Copy,
 81    CountdownTimer,
 82    Crosshair,
 83    CursorIBeam,
 84    Dash,
 85    DatabaseZap,
 86    Debug,
 87    DebugBreakpoint,
 88    DebugContinue,
 89    DebugDisabledBreakpoint,
 90    DebugDisabledLogBreakpoint,
 91    DebugDetach,
 92    DebugIgnoreBreakpoints,
 93    DebugLogBreakpoint,
 94    DebugPause,
 95    DebugRestart,
 96    DebugStepBack,
 97    DebugStepInto,
 98    DebugStepOut,
 99    DebugStepOver,
100    DebugStop,
101    Delete,
102    Diff,
103    Disconnected,
104    DocumentText,
105    Download,
106    Ellipsis,
107    EllipsisVertical,
108    Envelope,
109    Eraser,
110    Escape,
111    Exit,
112    ExpandDown,
113    ExpandUp,
114    ExpandVertical,
115    ExternalLink,
116    Eye,
117    File,
118    FileCode,
119    FileCreate,
120    FileDiff,
121    FileDoc,
122    FileGeneric,
123    FileGit,
124    FileLock,
125    FileRust,
126    FileSearch,
127    FileText,
128    FileToml,
129    FileTree,
130    Filter,
131    Flame,
132    Folder,
133    FolderOpen,
134    FolderX,
135    Font,
136    FontSize,
137    FontWeight,
138    ForwardArrow,
139    Function,
140    GenericClose,
141    GenericMaximize,
142    GenericMinimize,
143    GenericRestore,
144    GitBranch,
145    GitBranchSmall,
146    Github,
147    Globe,
148    Hammer,
149    Hash,
150    HistoryRerun,
151    Image,
152    Indicator,
153    Info,
154    InlayHint,
155    Keyboard,
156    Layout,
157    Library,
158    LightBulb,
159    LineHeight,
160    Link,
161    ListCollapse,
162    ListTodo,
163    ListTree,
164    ListX,
165    LoadCircle,
166    LockOutlined,
167    LspDebug,
168    LspRestart,
169    LspStop,
170    MagnifyingGlass,
171    MailOpen,
172    Maximize,
173    Menu,
174    MenuAlt,
175    MessageBubbles,
176    Mic,
177    MicMute,
178    Microscope,
179    Minimize,
180    Option,
181    PageDown,
182    PageUp,
183    PanelLeft,
184    PanelRight,
185    Pencil,
186    Person,
187    PersonCircle,
188    PhoneIncoming,
189    Pin,
190    Play,
191    PlayAlt,
192    PlayBug,
193    Plus,
194    PocketKnife,
195    Power,
196    Public,
197    PullRequest,
198    Quote,
199    RefreshTitle,
200    Regex,
201    ReplNeutral,
202    Replace,
203    ReplaceAll,
204    ReplaceNext,
205    ReplyArrowRight,
206    Rerun,
207    Return,
208    Reveal,
209    RotateCcw,
210    RotateCw,
211    Route,
212    Save,
213    Scissors,
214    Screen,
215    ScrollText,
216    SearchSelection,
217    SelectAll,
218    Send,
219    Server,
220    Settings,
221    SettingsAlt,
222    Shift,
223    Slash,
224    SlashSquare,
225    Sliders,
226    SlidersVertical,
227    Snip,
228    Space,
229    Sparkle,
230    SparkleAlt,
231    SparkleFilled,
232    Spinner,
233    Split,
234    SplitAlt,
235    SquareDot,
236    SquareMinus,
237    SquarePlus,
238    Star,
239    StarFilled,
240    Stop,
241    StopFilled,
242    Strikethrough,
243    Supermaven,
244    SupermavenDisabled,
245    SupermavenError,
246    SupermavenInit,
247    SwatchBook,
248    Tab,
249    Terminal,
250    TerminalAlt,
251    TextSnippet,
252    ThumbsDown,
253    ThumbsUp,
254    ToolBulb,
255    ToolCopy,
256    ToolDeleteFile,
257    ToolDiagnostics,
258    ToolFolder,
259    ToolHammer,
260    ToolNotification,
261    ToolPencil,
262    ToolRead,
263    ToolRegex,
264    ToolSearch,
265    ToolTerminal,
266    ToolWeb,
267    Trash,
268    TrashAlt,
269    Triangle,
270    TriangleRight,
271    Undo,
272    Unpin,
273    Update,
274    UserCheck,
275    UserGroup,
276    UserRoundPen,
277    Visible,
278    Wand,
279    Warning,
280    WholeWord,
281    X,
282    XCircle,
283    ZedAssistant,
284    ZedAssistantFilled,
285    ZedBurnMode,
286    ZedBurnModeOn,
287    ZedMcpCustom,
288    ZedMcpExtension,
289    ZedPredict,
290    ZedPredictDisabled,
291    ZedPredictDown,
292    ZedPredictError,
293    ZedPredictUp,
294    ZedXCopilot,
295}
296
297impl IconName {
298    /// Returns the path to this icon.
299    pub fn path(&self) -> Arc<str> {
300        let file_stem: &'static str = self.into();
301        format!("icons/{file_stem}.svg").into()
302    }
303}