Struct rutie::AnyObject [−][src]
Representation of any Ruby object while its type is unknown
As Ruby is a dynamically typed language, at some points Rutie does not know the exact Ruby type of the object, for example:
-
Retrieving an object from array;
-
Retrieving an object from hash;
-
Receiving arguments to a method;
-
Initializing a new instance of a non-built-in class.
In these cases you should cast AnyObject
to the required type.
Examples
Retrieving an object from Array
use rutie::{Array, Fixnum, Object, VM}; let array = Array::new().push(Fixnum::new(1)); let value = array.at(0).try_convert_to::<Fixnum>(); // `Array::at()` returns `AnyObject` assert_eq!(value, Ok(Fixnum::new(1)));
Retrieving an object from Hash
use rutie::{Fixnum, Hash, Object, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("key"), Fixnum::new(1)); // `Hash::at()` returns `AnyObject` let value = hash.at(&Symbol::new("key")).try_convert_to::<Fixnum>(); assert_eq!(value, Ok(Fixnum::new(1)));
You can find more examples in Class
, Object
and VerifiedObject
documentation.
Methods from Deref<Target = Value>
pub fn is_true(&self) -> bool
[src]
pub fn is_false(&self) -> bool
[src]
pub fn is_nil(&self) -> bool
[src]
pub fn is_node(&self) -> bool
[src]
pub fn is_undef(&self) -> bool
[src]
pub fn is_symbol(&self) -> bool
[src]
pub fn is_fixnum(&self) -> bool
[src]
pub fn is_flonum(&self) -> bool
[src]
pub fn is_frozen(&self) -> bool
[src]
pub fn ty(&self) -> ValueType
[src]
Trait Implementations
impl AsRef<AnyObject> for AnyObject
[src]
impl AsRef<Value> for AnyObject
[src]
impl Borrow<Value> for AnyObject
[src]
impl Clone for AnyObject
[src]
impl Debug for AnyObject
[src]
impl Deref for AnyObject
[src]
impl<T: Object> From<&'_ T> for AnyObject
[src]
impl From<Value> for AnyObject
[src]
impl FromIterator<AnyObject> for Array
[src]
Converts an iterator into Array
.
Examples
use rutie::{Array, Fixnum, Object, VM}; let array: Array = (1..6) .map(|num| num * 2) .map(|num| Fixnum::new(num).to_any_object()) .collect(); assert_eq!(array.length(), 5); for i in 0..5 { let expected_number = (i + 1) * 2; assert_eq!(array.at(i).try_convert_to::<Fixnum>().unwrap().to_i64(), expected_number); }
fn from_iter<I: IntoIterator<Item = AnyObject>>(iter: I) -> Self
[src]
impl Into<AnyObject> for AnyException
[src]
impl Into<AnyObject> for Array
[src]
impl Into<AnyObject> for Integer
[src]
impl Into<AnyObject> for Module
[src]
impl Into<AnyObject> for NilClass
[src]
impl Into<AnyObject> for Proc
[src]
impl Into<AnyObject> for RString
[src]
impl Into<AnyObject> for Thread
[src]
impl Into<AnyObject> for Symbol
[src]
impl Into<AnyObject> for Binding
[src]
impl Into<AnyObject> for Boolean
[src]
impl Into<AnyObject> for Class
[src]
impl Into<AnyObject> for Encoding
[src]
impl Into<AnyObject> for Enumerator
[src]
impl Into<AnyObject> for Fixnum
[src]
impl Into<AnyObject> for Float
[src]
impl Into<AnyObject> for Hash
[src]
impl Into<Value> for AnyObject
[src]
impl Object for AnyObject
[src]
fn value(&self) -> Value
[src]
fn class(&self) -> Class
[src]
fn singleton_class(&self) -> Class
[src]
fn get_data<'a, T>(&'a self, wrapper: &'a dyn DataTypeWrapper<T>) -> &T
[src]
fn get_data_mut<'a, T>(
&'a mut self,
wrapper: &'a dyn DataTypeWrapper<T>
) -> &mut T
[src]
&'a mut self,
wrapper: &'a dyn DataTypeWrapper<T>
) -> &mut T
fn define<F: Fn(&mut Self)>(&mut self, f: F) -> &Self
[src]
fn define_method<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
fn define_private_method<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
fn define_singleton_method<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
fn def<I: Object, O: Object>(&mut self, name: &str, callback: Callback<I, O>)
[src]
fn def_private<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
fn def_self<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
unsafe fn send(&self, method: &str, arguments: &[AnyObject]) -> AnyObject
[src]
fn equals<T: Object>(&self, other: &T) -> bool
[src]
fn case_equals<T: Object>(&self, other: &T) -> bool
[src]
fn is_eql<T: Object>(&self, other: &T) -> bool
[src]
fn is_equal<T: Object>(&self, other: &T) -> bool
[src]
fn respond_to(&self, method: &str) -> bool
[src]
fn protect_send(
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
[src]
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
fn protect_public_send(
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
[src]
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
fn is_nil(&self) -> bool
[src]
fn to_any_object(&self) -> AnyObject
[src]
fn instance_variable_get(&self, variable: &str) -> AnyObject
[src]
fn instance_variable_set<T: Object>(
&mut self,
variable: &str,
value: T
) -> AnyObject
[src]
&mut self,
variable: &str,
value: T
) -> AnyObject
fn is_frozen(&self) -> bool
[src]
fn freeze(&mut self) -> Self
[src]
unsafe fn to<T: Object>(&self) -> T
[src]
fn try_convert_to<T: VerifiedObject>(&self) -> Result<T, AnyException>
[src]
fn ty(&self) -> ValueType
[src]
impl PartialEq<AnyObject> for AnyObject
[src]
impl TryConvert<AnyObject> for AnyException
[src]
type Nil = NilClass
The type returned in the event of a conversion error.
fn try_convert(obj: AnyObject) -> Result<Self, NilClass>
[src]
impl TryConvert<AnyObject> for RString
[src]
Implicit or nil
conversion
Examples
use rutie::{RString, Fixnum, VM, TryConvert, NilClass, Object}; let four = Fixnum::new(4); let result = RString::try_convert(four.to_any_object()); assert_eq!(result, Err(NilClass::new())); let five = RString::new_utf8("5"); let result2 = RString::try_convert(five.to_any_object()); if let Ok(r) = result2 { assert_eq!(r.to_str(), "5") } else { unreachable!() }
Ruby:
four = 4
result = String.try_convert(four)
result == nil
five = "5"
result = String.try_convert(five)
result == "5"
type Nil = NilClass
The type returned in the event of a conversion error.
fn try_convert(obj: AnyObject) -> Result<Self, NilClass>
[src]
impl VerifiedObject for AnyObject
[src]
fn is_correct_type<T: Object>(_: &T) -> bool
[src]
fn error_message() -> &'static str
[src]
Auto Trait Implementations
impl RefUnwindSafe for AnyObject
[src]
impl Send for AnyObject
[src]
impl Sync for AnyObject
[src]
impl Unpin for AnyObject
[src]
impl UnwindSafe for AnyObject
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,