Struct magnus::value::StaticSymbol

source ·
pub struct StaticSymbol(/* private fields */);
Expand description

A static Ruby symbol that will live for the life of the program and never be garbage collected.

See also Symbol.

See the ReprValue trait for additional methods available on this type. See Ruby for methods to create a StaticSymbol.

Implementations§

source§

impl StaticSymbol

source

pub fn from_value(val: Value) -> Option<Self>

Return Some(StaticSymbol) if val is a StaticSymbol, None otherwise.

§Examples
use magnus::{eval, StaticSymbol};

assert!(StaticSymbol::from_value(eval(":foo").unwrap()).is_some());
assert!(StaticSymbol::from_value(eval(r#""bar""#).unwrap()).is_none());
assert!(StaticSymbol::from_value(eval(r#""baz".to_sym"#).unwrap()).is_none());
source

pub fn new<T>(name: T) -> Self
where T: IntoId,

Create a new StaticSymbol.

§Panics

Panics if called from a non-Ruby thread. See Ruby::sym_new for the non-panicking version.

§Examples
use magnus::{rb_assert, StaticSymbol};

let sym = StaticSymbol::new("example");
rb_assert!(":example == sym", sym);
source

pub fn check(name: &str) -> Option<Self>

Return the StaticSymbol for name, if one exists.

§Panics

Panics if called from a non-Ruby thread. See Ruby::check_symbol for the non-panicking version.

§Examples
use magnus::{eval, StaticSymbol};

assert!(StaticSymbol::check("example").is_none());
let _: StaticSymbol = eval(":example").unwrap();
assert!(StaticSymbol::check("example").is_some());
source

pub fn name(self) -> Result<&'static str, Error>

Return the symbol as a static string reference.

May error if the name is not valid utf-8.

§Examples
use magnus::StaticSymbol;

let sym = StaticSymbol::new("example");
assert_eq!(sym.name().unwrap(), "example");

Trait Implementations§

source§

impl Borrow<Symbol> for StaticSymbol

source§

fn borrow(&self) -> &Symbol

Immutably borrows from an owned value. Read more
source§

impl Clone for StaticSymbol

source§

fn clone(&self) -> StaticSymbol

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 StaticSymbol

source§

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

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

impl Display for StaticSymbol

source§

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

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

impl EncodingCapable for StaticSymbol

source§

fn enc_get(self) -> Index

Get the encoding of self. Read more
source§

fn enc_set<T>(self, enc: T) -> Result<(), Error>
where T: Into<Index>,

Set self’s encoding. Read more
source§

fn enc_associate<T>(self, enc: T) -> Result<(), Error>
where T: Into<Index>,

Set self’s encoding, along with performing additional fix-up self’s contents. Read more
source§

impl From<Id> for StaticSymbol

source§

fn from(id: Id) -> Self

Converts to this type from the input type.
source§

impl From<StaticSymbol> for Id

source§

fn from(sym: StaticSymbol) -> Self

Converts to this type from the input type.
source§

impl From<StaticSymbol> for OpaqueId

source§

fn from(sym: StaticSymbol) -> Self

Converts to this type from the input type.
source§

impl From<StaticSymbol> for Symbol

source§

fn from(s: StaticSymbol) -> Self

Converts to this type from the input type.
source§

impl Hash for StaticSymbol

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 IntoId for StaticSymbol

source§

fn into_id_with(self, handle: &Ruby) -> Id

Convert self into Id.
source§

fn into_id(self) -> Id

Convert self into Id. Read more
source§

unsafe fn into_id_unchecked(self) -> Id

Convert self into Id. Read more
source§

impl IntoSymbol for StaticSymbol

source§

fn into_symbol_with(self, handle: &Ruby) -> Symbol

Convert self into Symbol. Read more
source§

fn into_symbol(self) -> Symbol

Convert self into Symbol. Read more
source§

unsafe fn into_symbol_unchecked(self) -> Symbol

Convert self into Symbol. Read more
source§

impl IntoValue for StaticSymbol

source§

fn into_value_with(self, _: &Ruby) -> Value

Convert self into Value.
source§

fn into_value(self) -> Value

Convert self into Value. Read more
source§

unsafe fn into_value_unchecked(self) -> Value

Convert self into Value. Read more
source§

impl PartialEq<Id> for StaticSymbol

source§

fn eq(&self, other: &Id) -> 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 PartialEq<LazyId> for StaticSymbol

source§

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

§Panics

Panics if the first call is from a non-Ruby thread. The LazyId will then be poisoned and all future use of it will panic.

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 PartialEq<OpaqueId> for StaticSymbol

source§

fn eq(&self, other: &OpaqueId) -> 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 PartialEq<StaticSymbol> for Id

source§

fn eq(&self, other: &StaticSymbol) -> 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 PartialEq<StaticSymbol> for LazyId

source§

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

§Panics

Panics if the first call is from a non-Ruby thread. This LazyId will then be poisoned and all future use of it will panic.

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 PartialEq<StaticSymbol> for OpaqueId

source§

fn eq(&self, other: &StaticSymbol) -> 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 PartialEq<StaticSymbol> for Symbol

source§

fn eq(&self, other: &StaticSymbol) -> 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 PartialEq<Symbol> for StaticSymbol

source§

fn eq(&self, other: &Symbol) -> 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 PartialEq for StaticSymbol

source§

fn eq(&self, other: &StaticSymbol) -> 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 ReprValue for StaticSymbol

source§

fn as_value(self) -> Value

Return self as a Value.
source§

fn is_nil(self) -> bool

Returns whether self is Ruby’s nil value. Read more
source§

fn equal<T>(self, other: T) -> Result<bool, Error>
where T: ReprValue,

Checks for equality, delegating to the Ruby method #==. Read more
source§

fn eql<T>(self, other: T) -> Result<bool, Error>
where T: ReprValue,

Checks for equality, delegating to the Ruby method #eql?. Read more
source§

fn hash(self) -> Result<Integer, Error>

Returns an integer non-uniquely identifying self. Read more
source§

fn class(self) -> RClass

Returns the class that self is an instance of. Read more
source§

fn is_frozen(self) -> bool

Returns whether self is ‘frozen’. Read more
source§

fn check_frozen(self) -> Result<(), Error>

Returns an error if self is ‘frozen’. Read more
source§

fn freeze(self)

Mark self as frozen. Read more
source§

fn to_bool(self) -> bool

Convert self to a bool, following Ruby’s rules of false and nil as boolean false and everything else boolean true. Read more
source§

fn funcall<M, A, T>(self, method: M, args: A) -> Result<T, Error>
where M: IntoId, A: ArgList, T: TryConvert,

Call the method named method on self with args. Read more
source§

fn funcall_public<M, A, T>(self, method: M, args: A) -> Result<T, Error>
where M: IntoId, A: ArgList, T: TryConvert,

Call the public method named method on self with args. Read more
source§

fn check_funcall<M, A, T>(self, method: M, args: A) -> Option<Result<T, Error>>
where M: IntoId, A: ArgList, T: TryConvert,

If self responds to the method named method, call it with args. Read more
source§

fn funcall_with_block<M, A, T>( self, method: M, args: A, block: Proc ) -> Result<T, Error>
where M: IntoId, A: ArgList, T: TryConvert,

Call the method named method on self with args and block. Read more
source§

fn block_call<M, A, R, T>( self, method: M, args: A, block: fn(_: &[Value], _: Option<Proc>) -> R ) -> Result<T, Error>
where M: IntoId, A: ArgList, R: BlockReturn, T: TryConvert,

Call the method named method on self with args and block. Read more
source§

fn respond_to<M>(self, method: M, include_private: bool) -> Result<bool, Error>
where M: IntoId,

Check if self responds to the given Ruby method. Read more
source§

fn to_r_string(self) -> Result<RString, Error>

Convert self to a Ruby String. Read more
source§

unsafe fn to_s(&self) -> Result<Cow<'_, str>, Error>

Convert self to a Rust string. Read more
source§

fn inspect(self) -> String

Convert self to its Ruby debug representation. Read more
source§

unsafe fn classname(&self) -> Cow<'_, str>

Return the name of self’s class. Read more
source§

fn is_kind_of<T>(self, class: T) -> bool
where T: ReprValue + Module,

Returns whether or not self is an instance of class. Read more
source§

fn enumeratorize<M, A>(self, method: M, args: A) -> Enumerator
where M: IntoSymbol, A: ArgList,

Generate an Enumerator from method on self, passing args to method. Read more
source§

impl TryConvert for StaticSymbol

source§

fn try_convert(val: Value) -> Result<Self, Error>

Convert val into Self.
source§

impl Copy for StaticSymbol

source§

impl Eq for StaticSymbol

source§

impl StructuralPartialEq for StaticSymbol

source§

impl TryConvertOwned for StaticSymbol

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> AsRawValue for T
where T: ReprValue,

source§

fn as_raw(self) -> u64

Available on crate feature rb-sys only.
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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Hash for T
where T: Hash,

source§

fn hash(&self) -> i64

source§

impl<T> Inspect for T
where T: Debug,

source§

fn inspect(&self) -> String

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> BlockReturn for T
where T: BlockReturn,

source§

impl<T> Locate for T
where T: ReprValue,

source§

impl<T> Mark for T
where T: ReprValue,

source§

impl<T> ReturnValue for T
where T: ReturnValue,