[−][src]Struct rutie::AnyObject
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 Object for AnyObject
[src]
fn value(&self) -> Value
[src]
fn class(&self) -> Class
[src]
Returns a class of current object. Read more
fn singleton_class(&self) -> Class
[src]
Returns a singleton class of current object. Read more
fn get_data<'a, T>(&'a self, wrapper: &'a dyn DataTypeWrapper<T>) -> &T
[src]
Gets an immutable reference to the Rust structure which is wrapped into a Ruby object. Read more
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
Gets a mutable reference to the Rust structure which is wrapped into a Ruby object.
fn define<F: Fn(&mut Self)>(&mut self, f: F) -> &Self
[src]
Wraps calls to the object. Read more
fn define_method<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
Defines an instance method for the given class or object. Read more
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>
)
Defines a private instance method for the given class or object. Read more
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>
)
Defines a class method for given class or singleton method for object. Read more
fn def<I: Object, O: Object>(&mut self, name: &str, callback: Callback<I, O>)
[src]
An alias for define_method
(similar to Ruby syntax def some_method
).
fn def_private<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
An alias for define_private_method
(similar to Ruby syntax private def some_method
).
fn def_self<I: Object, O: Object>(
&mut self,
name: &str,
callback: Callback<I, O>
)
[src]
&mut self,
name: &str,
callback: Callback<I, O>
)
An alias for define_singleton_method
(similar to Ruby def self.some_method
).
unsafe fn send(&self, method: &str, arguments: &[AnyObject]) -> AnyObject
[src]
Calls a given method on an object similarly to Ruby Object#send
method Read more
fn equals<T: Object>(&self, other: &T) -> bool
[src]
Alias for Ruby's ==
Read more
fn case_equals<T: Object>(&self, other: &T) -> bool
[src]
Alias for Ruby's ===
Read more
fn is_eql<T: Object>(&self, other: &T) -> bool
[src]
Alias for Ruby's eql?
Read more
fn is_equal<T: Object>(&self, other: &T) -> bool
[src]
Alias for Ruby's equal?
Read more
fn respond_to(&self, method: &str) -> bool
[src]
Checks whether the object responds to given method Read more
fn protect_send(
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
[src]
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
protect_send
returns Result<AnyObject, AnyObject> Read more
fn protect_public_send(
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
[src]
&self,
method: &str,
arguments: &[AnyObject]
) -> Result<AnyObject, AnyException>
protect_public_send
returns Result<AnyObject, AnyObject> Read more
fn is_nil(&self) -> bool
[src]
Checks whether the object is nil
Read more
fn to_any_object(&self) -> AnyObject
[src]
Converts struct to AnyObject
Read more
fn instance_variable_get(&self, variable: &str) -> AnyObject
[src]
Gets an instance variable of object Read more
fn instance_variable_set<T: Object>(
&mut self,
variable: &str,
value: T
) -> AnyObject
[src]
&mut self,
variable: &str,
value: T
) -> AnyObject
Sets an instance variable for object Read more
fn is_frozen(&self) -> bool
[src]
Returns the freeze status of the object. Read more
fn freeze(&mut self) -> Self
[src]
Prevents further modifications to the object. Read more
unsafe fn to<T: Object>(&self) -> T
[src]
Unsafely casts current object to the specified Ruby type Read more
fn try_convert_to<T: VerifiedObject>(&self) -> Result<T, AnyException>
[src]
Safely casts current object to the specified Ruby type Read more
fn ty(&self) -> ValueType
[src]
Determines the value type of the object Read more
impl VerifiedObject for AnyObject
[src]
fn is_correct_type<T: Object>(_: &T) -> bool
[src]
fn error_message() -> &'static str
[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 Clone for AnyObject
[src]
fn clone(&self) -> AnyObject
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl PartialEq<AnyObject> for AnyObject
[src]
fn eq(&self, other: &Self) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl From<Value> for AnyObject
[src]
impl<'_, T: Object> From<&'_ T> for AnyObject
[src]
impl AsRef<Value> for AnyObject
[src]
impl AsRef<AnyObject> for AnyObject
[src]
impl Into<Value> for AnyObject
[src]
impl Into<AnyObject> for AnyException
[src]
impl Into<AnyObject> for Array
[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<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 Deref for AnyObject
[src]
impl Debug 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 Borrow<Value> for AnyObject
[src]
Auto Trait Implementations
impl Send for AnyObject
impl Unpin for AnyObject
impl Sync for AnyObject
impl RefUnwindSafe for AnyObject
impl UnwindSafe for AnyObject
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &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, 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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,