Struct ruru::Array [] [src]

pub struct Array { /* fields omitted */ }

Array

Methods

impl Array
[src]

Creates a new instance of empty Array.

Examples

use ruru::{Array, VM};

Array::new();

Ruby:

[]

Creates a new instance of empty Array with reserved space for capacity elements.

Examples

use ruru::{Array, Fixnum, VM};

let mut array = Array::with_capacity(2);

assert_eq!(array.length(), 0);

array.push(Fixnum::new(1));
array.push(Fixnum::new(2));

assert_eq!(array.length(), 2);

Ruby:

[]

Retrieves the length of the array.

Examples

use ruru::{Array, Fixnum, VM};

let mut array = Array::new().push(Fixnum::new(1));

assert_eq!(array.length(), 1);

array.push(Fixnum::new(2));

assert_eq!(array.length(), 2);

Ruby:

array = [1]
array.length == 1

array << 2
array.length == 2

Retrieves an AnyObject from the element at index position.

Examples

use ruru::{Array, Fixnum, Object, VM};

let array = Array::new().push(Fixnum::new(1));

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));

Ruby:

array = [1]

array[0] == 1

Joins all elements of Array to Ruby String.

Examples

use ruru::{Array, RString, VM};

let array = Array::new()
    .push(RString::new("Hello"))
    .push(RString::new("World!"));

let joined_string = array.join(RString::new(", ")).to_string();

assert_eq!(joined_string, "Hello, World!".to_string());

Ruby:

array = ['Hello', 'World!']

joined_string = array.join(', ')

joined_string == 'Hello, World!'

Pushes an object to Array.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new();

array.push(Fixnum::new(1));

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));

Ruby:

array = []
array << 1

array[0] == 1

Stores an object at index position.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1));

array.store(0, Fixnum::new(2));

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));

Ruby:

array = [1]
array[0] = 2

array[0] == 2

Removes and returns the last element of the array.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1));

assert_eq!(array.pop().try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));

Ruby:

array = [1]

array.pop == 1

Inserts item at the beggining of the array.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1));

array.unshift(Fixnum::new(2));

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));

Ruby:

array = [1]
array.unshift(2)

array[0] == 2

Removes the first item of the array and returns it.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1)).push(Fixnum::new(2));

let item = array.shift();

assert_eq!(item.try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));
assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));

Ruby:

array = [1, 2]

item = array.shift

item == 1
array[0] == 2

Creates a copy of the array.

Examples

use ruru::{Array, Fixnum, Object, VM};

let array = Array::new().push(Fixnum::new(1));
let copy = array.dup();

assert_eq!(array.at(0), copy.at(0));

Ruby:

array = [1]
copy = array.dup

array[0] == copy[0]

Creates a string representation of the array.

Examples

use ruru::{Array, Fixnum, VM};

let array = Array::new().push(Fixnum::new(1)).push(Fixnum::new(2));

assert_eq!(array.to_s().to_string(), "[1, 2]".to_string());

Ruby:

array = [1, 2]

array.to_s == "[1, 2]"

Returns a new array containing array's elements in reverse order.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1)).push(Fixnum::new(2));

let reversed_array = array.reverse();

assert_eq!(reversed_array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));
assert_eq!(reversed_array.at(1).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));

Ruby:

array = [1, 2]

reversed_array = array.reverse

reversed_array[0] == 2
reversed_array[1] == 1

Reverses self in place.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1)).push(Fixnum::new(2));

array.reverse_bang();

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));
assert_eq!(array.at(1).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));

Ruby:

array = [1, 2]

array.reverse!

array[0] == 2
array[1] == 1

Appends the elements of other array to self.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(1));
let other = Array::new().push(Fixnum::new(2));

array.concat(&other);

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));
assert_eq!(array.at(1).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));

Ruby:

array = [1]
other = [2]

array.concat(other)

array[0] == 1
array[1] == 2

Returns a new array created by sorting self.

Examples

use ruru::{Array, Fixnum, Object, VM};

let array = Array::new().push(Fixnum::new(2)).push(Fixnum::new(1));

let sorted_array = array.sort();

assert_eq!(sorted_array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));
assert_eq!(sorted_array.at(1).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));

Ruby:

array = [2, 1]

sorted_array = array.sort

sorted_array[0] == 1
sorted_array[1] == 2

Sorts the array in place.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new().push(Fixnum::new(2)).push(Fixnum::new(1));

array.sort_bang();

assert_eq!(array.at(0).try_convert_to::<Fixnum>(), Ok(Fixnum::new(1)));
assert_eq!(array.at(1).try_convert_to::<Fixnum>(), Ok(Fixnum::new(2)));

Ruby:

array = [2, 1]

array.sort!

array[0] == 1
array[1] == 2

Trait Implementations

impl Debug for Array
[src]

Formats the value using the given formatter.

impl PartialEq for Array
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Default for Array
[src]

Returns the "default value" for a type. Read more

impl From<Value> for Array
[src]

Performs the conversion.

impl Object for Array
[src]

Returns internal value of current object. Read more

Returns a class of current object. Read more

Returns a singleton class of current object. Read more

Gets a Rust structure that is wrapped into a Ruby object. Read more

Wraps calls to the object. Read more

Defines an instance method for the given class or object. Read more

Defines a class method for given class or singleton method for object. Read more

An alias for define_method (similar to Ruby syntax def some_method).

An alias for define_singleton_method (similar to Ruby def self.some_method).

Calls a given method on an object similarly to Ruby Object#send method Read more

Checks whether the object responds to given method Read more

Checks whether the object is nil Read more

Converts struct to AnyObject Read more

Gets an instance variable of object Read more

Sets an instance variable for object Read more

Returns the freeze status of the object. Read more

Prevents further modifications to the object. Read more

Unsafely casts current object to the specified Ruby type Read more

Safely casts current object to the specified Ruby type Read more

Determines the value type of the object Read more

impl VerifiedObject for Array
[src]

impl IntoIterator for Array
[src]

Allows Arrays to be iterable in Rust.

Examples

use ruru::{Array, Fixnum, Object, VM};

let mut array = Array::new()
    .push(Fixnum::new(1))
    .push(Fixnum::new(2))
    .push(Fixnum::new(3));

let mut sum: i64 = 0;

for item in array.into_iter() {
    sum += item.try_convert_to::<Fixnum>().unwrap().to_i64();
}

assert_eq!(sum, 6);

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

impl FromIterator<AnyObject> for Array
[src]

Converts an iterator into Array.

Examples

use ruru::{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);
}

Creates a value from an iterator. Read more