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