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    AiGoogle,
 17    AiLmStudio,
 18    AiMistral,
 19    AiOllama,
 20    AiOpenAi,
 21    AiOpenRouter,
 22    AiVZero,
 23    AiXAi,
 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    Clipboard,
 70    Close,
 71    Cloud,
 72    Code,
 73    Cog,
 74    Command,
 75    Context,
 76    Control,
 77    Copilot,
 78    CopilotDisabled,
 79    CopilotError,
 80    CopilotInit,
 81    Copy,
 82    CountdownTimer,
 83    Crosshair,
 84    CursorIBeam,
 85    Dash,
 86    DatabaseZap,
 87    Debug,
 88    DebugBreakpoint,
 89    DebugContinue,
 90    DebugDisabledBreakpoint,
 91    DebugDisabledLogBreakpoint,
 92    DebugDetach,
 93    DebugIgnoreBreakpoints,
 94    DebugLogBreakpoint,
 95    DebugPause,
 96    DebugRestart,
 97    DebugStepBack,
 98    DebugStepInto,
 99    DebugStepOut,
100    DebugStepOver,
101    DebugStop,
102    Delete,
103    Diff,
104    Disconnected,
105    DocumentText,
106    Download,
107    Ellipsis,
108    EllipsisVertical,
109    Envelope,
110    Eraser,
111    Escape,
112    Exit,
113    ExpandDown,
114    ExpandUp,
115    ExpandVertical,
116    ExternalLink,
117    Eye,
118    File,
119    FileCode,
120    FileCreate,
121    FileDelete,
122    FileDiff,
123    FileDoc,
124    FileGeneric,
125    FileGit,
126    FileLock,
127    FileRust,
128    FileSearch,
129    FileText,
130    FileToml,
131    FileTree,
132    Filter,
133    Flame,
134    Folder,
135    FolderOpen,
136    FolderX,
137    Font,
138    FontSize,
139    FontWeight,
140    ForwardArrow,
141    Function,
142    GenericClose,
143    GenericMaximize,
144    GenericMinimize,
145    GenericRestore,
146    GitBranch,
147    GitBranchSmall,
148    Github,
149    Globe,
150    Hammer,
151    Hash,
152    HistoryRerun,
153    Image,
154    Indicator,
155    Info,
156    InlayHint,
157    Keyboard,
158    Layout,
159    Library,
160    LightBulb,
161    LineHeight,
162    Link,
163    ListCollapse,
164    ListTodo,
165    ListTree,
166    ListX,
167    LoadCircle,
168    LockOutlined,
169    LspDebug,
170    LspRestart,
171    LspStop,
172    MagnifyingGlass,
173    MailOpen,
174    Maximize,
175    Menu,
176    MenuAlt,
177    MessageBubbles,
178    Mic,
179    MicMute,
180    Microscope,
181    Minimize,
182    Option,
183    PageDown,
184    PageUp,
185    PanelLeft,
186    PanelRight,
187    Pencil,
188    Person,
189    PersonCircle,
190    PhoneIncoming,
191    Pin,
192    Play,
193    PlayAlt,
194    PlayBug,
195    Plus,
196    PocketKnife,
197    Power,
198    Public,
199    PullRequest,
200    Quote,
201    RefreshTitle,
202    Regex,
203    ReplNeutral,
204    Replace,
205    ReplaceAll,
206    ReplaceNext,
207    ReplyArrowRight,
208    Rerun,
209    Return,
210    Reveal,
211    RotateCcw,
212    RotateCw,
213    Route,
214    Save,
215    Scissors,
216    Screen,
217    ScrollText,
218    SearchCode,
219    SearchSelection,
220    SelectAll,
221    Send,
222    Server,
223    Settings,
224    SettingsAlt,
225    Shift,
226    Slash,
227    SlashSquare,
228    Sliders,
229    SlidersVertical,
230    Snip,
231    Space,
232    Sparkle,
233    SparkleAlt,
234    SparkleFilled,
235    Spinner,
236    Split,
237    SplitAlt,
238    SquareDot,
239    SquareMinus,
240    SquarePlus,
241    Star,
242    StarFilled,
243    Stop,
244    StopFilled,
245    Strikethrough,
246    Supermaven,
247    SupermavenDisabled,
248    SupermavenError,
249    SupermavenInit,
250    SwatchBook,
251    Tab,
252    Terminal,
253    TextSnippet,
254    ThumbsDown,
255    ThumbsUp,
256    Trash,
257    TrashAlt,
258    Triangle,
259    TriangleRight,
260    Undo,
261    Unpin,
262    Update,
263    UserCheck,
264    UserGroup,
265    UserRoundPen,
266    Visible,
267    Wand,
268    Warning,
269    WholeWord,
270    X,
271    XCircle,
272    ZedAssistant,
273    ZedAssistantFilled,
274    ZedBurnMode,
275    ZedBurnModeOn,
276    ZedMcpCustom,
277    ZedMcpExtension,
278    ZedPredict,
279    ZedPredictDisabled,
280    ZedPredictDown,
281    ZedPredictError,
282    ZedPredictUp,
283    ZedXCopilot,
284}
285
286impl IconName {
287    /// Returns the path to this icon.
288    pub fn path(&self) -> Arc<str> {
289        let file_stem: &'static str = self.into();
290        format!("icons/{file_stem}.svg").into()
291    }
292}