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