Struct objc2::runtime::Sel

source ·
pub struct Sel { /* private fields */ }
Expand description

A method selector.

The Rust equivalent of Objective-C’s SEL type. You can create this statically using the sel! macro.

The main reason the Objective-C runtime uses a custom type for selectors, as opposed to a plain c-string, is to support efficient comparison - a a selector is effectively an interned string, so this makes equiality comparisons very cheap.

This struct guarantees the null-pointer optimization, namely that Option<Sel> is the same size as Sel.

Implementations§

source§

impl Sel

source

pub const fn as_ptr(&self) -> *const objc_selector

Get a pointer to the raw selector.

Useful when working with raw FFI methods.

source

pub fn register(name: &str) -> Self

Registers a selector with the Objective-C runtime.

This is the dynamic version of the sel! macro, prefer to use that when your selector is static.

§Panics

Panics if name contains an internal NUL byte, or if the runtime failed allocating space for the selector.

source

pub fn name(&self) -> &str

Returns the string representation of the selector.

§Panics

Panics if the selector is not valid UTF-8 (however unlikely!)

Trait Implementations§

source§

impl Clone for Sel

source§

fn clone(&self) -> Sel

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
source§

impl Debug for Sel

source§

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

Formats the value using the given formatter. Read more
source§

impl Display for Sel

source§

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

Formats the value using the given formatter. Read more
source§

impl Encode for Sel

source§

const ENCODING: Encoding = Encoding::Sel

The Objective-C type-encoding for this type.
source§

impl Hash for Sel

source§

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

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
source§

impl PartialEq for Sel

source§

fn eq(&self, other: &Self) -> 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.
source§

impl Pointer for Sel

source§

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

Formats the value using the given formatter. Read more
source§

impl Copy for Sel

source§

impl Eq for Sel

source§

impl OptionEncode for Sel

source§

impl RefUnwindSafe for Sel

source§

impl Send for Sel

source§

impl Sync for Sel

source§

impl UnwindSafe for Sel

Auto Trait Implementations§

§

impl Freeze for Sel

§

impl Unpin for Sel

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
source§

impl<T> EncodeArgument for T
where T: Encode,

source§

const ENCODING_ARGUMENT: Encoding = const ENCODING_ARGUMENT: Encoding = T::ENCODING;

The Objective-C type-encoding for this type.
source§

impl<T> EncodeReturn for T
where T: Encode,

source§

const ENCODING_RETURN: Encoding = const ENCODING_RETURN: Encoding = T::ENCODING;

The Objective-C type-encoding for this type.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

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
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.
source§

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