You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: cursor_icon.rs
    path of file: ./repos/vizia/crates/vizia_style/src/values
    
    the code of the file until where you have to start completion: use crate::{macros::define_enum, Parse};

define_enum! {
    /// An icon of a cursor.
    pub enum CursorIcon {
        /// The platform-dependent default cursor. Typically an arrow.
        "default": Default,
        /// An arrow which is usually also the default cursor icon.
        "arrow": Arrow,
        /// No cursor is rendered.
        "none": None,

        /// Indicates the table cell or set of cells can be selected.
        "cell": Cell,
        /// Indicates selection.
        "crosshair": Crosshair,
        /// Indicates the text can be selected.
        "text": Text,
        /// Indicates the vertical text can be selected.
        "vertical-text": VerticalText,

        /// Indicates a context menu is available.
        "context-menu": ContextMenu,
        /// Indicates help information is available.
        "help": Help,
        /// Indicates something clickable like a link.
        "hand": Hand,
        /// Indicates the program is busy in the background, but the user can still interact with the interface.
        "progress": Progress,
        /// Indicates the program is busy in the background and the user can't interact with the interface.
        "wait": Wait,

        /// Indicates an alias or shortcut is to be created.
        "alias": Alias,
        /// Indicates something is to be copied.
        "copy": Copy,
        /// Indicates something is to be moved.
        "move": Move,
        /// Indicates an item may not be dropped at the current location.
        "no-drop": NoDrop,
        /// Indicates the requested action will not be carried out.
        "not-allowed": NotAllowed,
        /// Indicate
    
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(
            f,
            "{}",
            match self {
                CursorIcon::Default => "default",
                CursorIcon::Crosshair => "crosshair",
                CursorIcon::Hand => "hand",
                CursorIcon::Arrow => "arrow",
                CursorIcon::Move => "move",
                CursorIcon::Text => "text",
                CursorIcon::Wait => "wait",
                CursorIcon::Help => "help",
                CursorIcon::Progress => "progress",
                CursorIcon::NotAllowed => "not-allowed",
                CursorIcon::ContextMenu => "context-menu",
                CursorIcon::Cell => "cell",
                CursorIcon::VerticalText => "vertical-text",
                CursorIcon::Alias => "alias",
                CursorIcon::Copy => "copy",
                CursorIcon::NoDrop => "no-drop",
                CursorIcon::Grab => "grab",
                CursorIcon::Grabbing => "grabbing",
                CursorIcon::AllScroll => "all-scroll",
                CursorIcon::ZoomIn => "zoom-in",
                CursorIcon::ZoomOut => "zoom-out",
                CursorIcon::EResize => "e-resize",
                CursorIcon::NResize => "n-resize",
                CursorIcon::NeResize => "ne-resize",
                CursorIcon::NwResize => "nw-resize",
                CursorIcon::SResize => "s-resize",
                CursorIcon::SeResize => "se-resize",
                CursorIcon::SwResize => "sw-resize",
                CursorIcon::WResize => "w-resize",
                CursorIcon::EwResize => "ew-resize",
                CursorIcon::NsResize => "ns-resize",
                CursorIcon::NeswResize => "nesw-resize",
                CursorIcon::NwseResize => "nwse-resize",
                CursorIcon::ColResize => "col-resize",
                CursorIcon::RowResize => "row-resize",
                CursorIcon::None => "none",
            }
        )
    }