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