#[non_exhaustive]
pub enum CursorIcon {
Show 34 variants Default, ContextMenu, Help, Pointer, Progress, Wait, Cell, Crosshair, Text, VerticalText, Alias, Copy, Move, NoDrop, NotAllowed, Grab, Grabbing, EResize, NResize, NeResize, NwResize, SResize, SeResize, SwResize, WResize, EwResize, NsResize, NeswResize, NwseResize, ColResize, RowResize, AllScroll, ZoomIn, ZoomOut,
}
Expand description

Describes the appearance of the (usually mouse) cursor icon.

The names are taken from the CSS W3C specification: https://www.w3.org/TR/css-ui-3/#cursor

Examples

use cursor_icon::CursorIcon;

// Get the cursor icon for the default cursor.
let cursor_icon = CursorIcon::Default;

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Default

The platform-dependent default cursor. Often rendered as arrow.

§

ContextMenu

A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.

§

Help

Help is available for the object under the cursor. Often rendered as a question mark or a balloon.

§

Pointer

The cursor is a pointer that indicates a link. Often rendered as the backside of a hand with the index finger extended.

§

Progress

A progress indicator. The program is performing some processing, but is different from CursorIcon::Wait in that the user may still interact with the program.

§

Wait

Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.

§

Cell

Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.

§

Crosshair

A simple crosshair (e.g., short line segments resembling a “+” sign). Often used to indicate a two dimensional bitmap selection mode.

§

Text

Indicates text that may be selected. Often rendered as an I-beam.

§

VerticalText

Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.

§

Alias

Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.

§

Copy

Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.

§

Move

Indicates something is to be moved.

§

NoDrop

Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.

§

NotAllowed

Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.

§

Grab

Indicates that something can be grabbed (dragged to be moved). Often rendered as the backside of an open hand.

§

Grabbing

Indicates that something is being grabbed (dragged to be moved). Often rendered as the backside of a hand with fingers closed mostly out of view.

§

EResize

The east border to be moved.

§

NResize

The north border to be moved.

§

NeResize

The north-east corner to be moved.

§

NwResize

The north-west corner to be moved.

§

SResize

The south border to be moved.

§

SeResize

The south-east corner to be moved.

§

SwResize

The south-west corner to be moved.

§

WResize

The west border to be moved.

§

EwResize

The east and west borders to be moved.

§

NsResize

The south and north borders to be moved.

§

NeswResize

The north-east and south-west corners to be moved.

§

NwseResize

The north-west and south-east corners to be moved.

§

ColResize

Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.

§

RowResize

Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.

§

AllScroll

Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.

§

ZoomIn

Indicates that something can be zoomed in. Often rendered as a magnifying glass with a “+” in the center of the glass.

§

ZoomOut

Indicates that something can be zoomed in. Often rendered as a magnifying glass with a “-” in the center of the glass.

Implementations§

§

impl CursorIcon

pub fn name(&self) -> &'static str

The name of the cursor icon as defined in w3c standard.

This name most of the time could be passed as is to cursor loading libraries on X11/Wayland and could be used as-is on web.

Examples
use cursor_icon::CursorIcon;
use wayland_cursor::CursorTheme;

// Choose a cursor to load.
let cursor = CursorIcon::Help;

// Load the Wayland cursor theme.
let mut cursor_theme = CursorTheme::load(conn, shm, 32)?;

// Load the cursor.
let cursor = cursor_theme.get_cursor(cursor.name());
if let Some(cursor) = cursor {
    println!("Total number of images: {}", cursor.image_count());
}

pub fn alt_names(&self) -> &[&'static str]

A list of alternative names for the cursor icon as commonly found in legacy Xcursor themes.

This should only be used as a fallback in case the cursor theme does not adhere to the w3c standard.

Trait Implementations§

§

impl Clone for CursorIcon

§

fn clone(&self) -> CursorIcon

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for CursorIcon

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for CursorIcon

§

fn default() -> CursorIcon

Returns the “default value” for a type. Read more
§

impl Display for CursorIcon

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<ResizeDirection> for CursorIcon

§

fn from(direction: ResizeDirection) -> CursorIcon

Converts to this type from the input type.
§

impl FromStr for CursorIcon

§

fn from_str(name: &str) -> Result<CursorIcon, <CursorIcon as FromStr>::Err>

Parse a string slice into CursorIcon.

The name is a lower kebab case CursorIcon varaint name, e.g. nesw-resize. The set of possible valid name values matches exactly the set of CursorIcon::name outputs.

§

type Err = ParseError

The associated error which can be returned from parsing.
§

impl Hash for CursorIcon

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for CursorIcon

§

fn eq(&self, other: &CursorIcon) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Copy for CursorIcon

§

impl Eq for CursorIcon

§

impl StructuralEq for CursorIcon

§

impl StructuralPartialEq for CursorIcon

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CallHasher for T
where T: Hash + ?Sized,

§

fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64
where H: Hash + ?Sized, B: BuildHasher,

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromQueryArgument for T
where T: Default + FromStr, <T as FromStr>::Err: Display,

§

type Err = <T as FromStr>::Err

The error that can occur when parsing a query argument.
§

fn from_query_argument( argument: &str ) -> Result<T, <T as FromQueryArgument>::Err>

Create an instance of Self from a query string.
§

impl<T> FromRouteSegment for T
where T: FromStr, <T as FromStr>::Err: Display,

§

type Err = <T as FromStr>::Err

The error that can occur when parsing a route segment.
§

fn from_route_segment(route: &str) -> Result<T, <T as FromRouteSegment>::Err>

Create an instance of Self from a route segment.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> NoneValue for T
where T: Default,

§

type NoneType = T

§

fn null_value() -> T

The none-equivalent value.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T, O> SuperFrom<T> for O
where O: From<T>,

§

fn super_from(input: T) -> O

Convert from a type to another type.
§

impl<T, O, M> SuperInto<O, M> for T
where O: SuperFrom<T, M>,

§

fn super_into(self) -> O

Convert from a type to another type.
§

impl<T> To for T
where T: ?Sized,

§

fn to<T>(self) -> T
where Self: Into<T>,

Converts to T by calling Into<T>::into.
§

fn try_to<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Tries to convert to T by calling TryInto<T>::try_into.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

§

fn to_smolstr(&self) -> SmolStr

source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> CloneAny for T
where T: Any + Clone,

§

impl<T> Dep for T
where T: 'static + PartialEq + Clone,