Struct ruru::Hash
[−]
[src]
pub struct Hash { /* fields omitted */ }
Hash
Methods
impl Hash
[src]
fn new() -> Self
fn at<T: Object>(&self, key: T) -> AnyObject
Retrieves an AnyObject
from element stored at key
key.
Examples
use ruru::{Fixnum, Hash, Object, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("key"), Fixnum::new(1)); assert_eq!(hash.at(Symbol::new("key")).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));
Ruby:
hash = {}
hash[:key] = 1
hash[:key] == 1
fn store<K: Object, V: Object>(&mut self, key: K, value: V) -> AnyObject
Associates the value
with the key
.
Both key
and value
must be types which implement Object
trait.
Examples
use ruru::{Fixnum, Hash, Object, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("key"), Fixnum::new(1)); assert_eq!(hash.at(Symbol::new("key")).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));
Ruby:
hash = {}
hash[:key] = 1
hash[:key] == 1
fn length(&self) -> usize
Retrieves the length of the hash.
Examples
use ruru::{Hash, Fixnum, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("key1"), Fixnum::new(1)); assert_eq!(hash.length(), 1); hash.store(Symbol::new("key2"), Fixnum::new(2)); assert_eq!(hash.length(), 2);
Ruby:
hash = {}
hash[:key1] = 1
hash.length == 1
hash[:key2] = 2
hash.length == 2
fn each<F>(&self, closure: F) where F: FnMut(AnyObject, AnyObject)
Runs a closure for each key
and value
pair.
Key and value have AnyObject
type.
Examples
use ruru::{Fixnum, Hash, Object, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("first_key"), Fixnum::new(1)); hash.store(Symbol::new("second_key"), Fixnum::new(2)); let mut doubled_values: Vec<i64> = Vec::new(); hash.each(|_key, value| { if let Ok(value) = value.try_convert_to::<Fixnum>() { doubled_values.push(value.to_i64() * 2); } }); assert_eq!(doubled_values, vec![2, 4]);
Ruby:
hash = {
first_key: 1,
second_key: 2
}
doubled_values = []
hash.each do |_key, value|
doubled_values << [value * 2]
end
doubled_values == [2, 4]
Trait Implementations
impl Debug for Hash
[src]
impl PartialEq for Hash
[src]
fn eq(&self, __arg_0: &Hash) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Hash) -> bool
This method tests for !=
.
impl From<Value> for Hash
[src]
impl Object for Hash
[src]
fn value(&self) -> Value
Returns internal value
of current object. Read more
fn class(&self) -> Class
Returns a class of current object. Read more
fn singleton_class(&self) -> Class
Returns a singleton class of current object. Read more
fn get_data<'a, T>(&'a self, wrapper: &'a DataTypeWrapper<T>) -> &mut T
Gets a Rust structure that is wrapped into a Ruby object. Read more
fn define<F: Fn(&mut Self)>(&mut self, f: F) -> &Self
Wraps calls to the object. Read more
fn define_method<I: Object, O: Object>(&mut self,
name: &str,
callback: Callback<I, O>)
name: &str,
callback: Callback<I, O>)
Defines an 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>)
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>)
An alias for define_method
(similar to Ruby syntax def some_method
).
fn def_self<I: Object, O: Object>(&mut self,
name: &str,
callback: Callback<I, O>)
name: &str,
callback: Callback<I, O>)
An alias for define_singleton_method
(similar to Ruby def self.some_method
).
fn send(&self, method: &str, arguments: Vec<AnyObject>) -> AnyObject
Calls a given method on an object similarly to Ruby Object#send
method Read more
fn respond_to(&self, method: &str) -> bool
Checks whether the object responds to given method Read more
fn is_nil(&self) -> bool
Checks whether the object is nil
Read more
fn to_any_object(&self) -> AnyObject
Converts struct to AnyObject
Read more
fn instance_variable_get(&self, variable: &str) -> AnyObject
Gets an instance variable of object Read more
fn instance_variable_set<T: Object>(&mut self,
variable: &str,
value: T)
-> AnyObject
variable: &str,
value: T)
-> AnyObject
Sets an instance variable for object Read more
fn is_frozen(&self) -> bool
Returns the freeze status of the object. Read more
fn freeze(&mut self) -> Self
Prevents further modifications to the object. Read more
unsafe fn to<T: Object>(&self) -> T
Unsafely casts current object to the specified Ruby type Read more
fn try_convert_to<T: VerifiedObject>(&self) -> Result<T>
Safely casts current object to the specified Ruby type Read more
fn ty(&self) -> ValueType
Determines the value type of the object Read more