Struct rutie::Hash [−][src]
Hash
Implementations
impl Hash
[src]
pub fn new() -> Self
[src]
pub fn at<T: Object>(&self, key: &T) -> AnyObject
[src]
Retrieves an AnyObject
from element stored at key
key.
Examples
use rutie::{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
pub fn store<K: Object, V: Object>(&mut self, key: K, value: V) -> AnyObject
[src]
Associates the value
with the key
.
Both key
and value
must be types which implement Object
trait.
Examples
use rutie::{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
pub fn length(&self) -> usize
[src]
Retrieves the length of the hash.
Examples
use rutie::{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
pub fn clear(&self)
[src]
Removes all key-value pairs.
Examples
use rutie::{Hash, Fixnum, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("key1"), Fixnum::new(1)); hash.store(Symbol::new("key2"), Fixnum::new(2)); assert_eq!(hash.length(), 2); hash.clear(); assert_eq!(hash.length(), 0);
Ruby:
hash = {}
hash[:key1] = 1
hash[:key2] = 2
hash.length == 2
hash.clear
hash.length == 0
pub fn delete<K: Object>(&mut self, key: K) -> AnyObject
[src]
Deletes the key-value pair and returns the value from hash whose key is equal to key. If the key is not found, it returns nil.
key
must be a type which implements the Object
trait.
Examples
use rutie::{Fixnum, Hash, Object, Symbol, VM}; let mut hash = Hash::new(); hash.store(Symbol::new("key1"), Fixnum::new(1)); hash.store(Symbol::new("key2"), Fixnum::new(2)); assert_eq!(hash.length(), 2); let deleted = hash.delete(Symbol::new("key2")); assert_eq!(hash.length(), 1); assert_eq!(deleted.try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));
Ruby:
hash = {}
hash[:key1] = 1
hash[:key2] = 2
hash.length == 2
deleted = hash.delete(:key2)
hash.length == 1
deleted == 2
pub fn each<F>(&self, closure: F) where
F: FnMut(AnyObject, AnyObject),
[src]
F: FnMut(AnyObject, AnyObject),
Runs a closure for each key
and value
pair.
Key and value have AnyObject
type.
Examples
use rutie::{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 Clone for Hash
[src]
impl Debug for Hash
[src]
impl Default for Hash
[src]
impl From<Value> for Hash
[src]
impl Into<AnyObject> for Hash
[src]
impl Into<Value> for Hash
[src]
impl Object for Hash
[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<Hash> for Hash
[src]
impl VerifiedObject for Hash
[src]
fn is_correct_type<T: Object>(object: &T) -> bool
[src]
fn error_message() -> &'static str
[src]
Auto Trait Implementations
impl RefUnwindSafe for Hash
[src]
impl Send for Hash
[src]
impl Sync for Hash
[src]
impl Unpin for Hash
[src]
impl UnwindSafe for Hash
[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>,