cairo-native 0.2.6

A compiler to convert Cairo's intermediate representation Sierra code to MLIR.
fn search(array: @Array<felt252>, number: felt252) -> u32 {
    let mut index = 0;

    while index < array.len() {
        if *array[index] == number {
            break;
        }

        index += 1;
    };

    return index;
}

fn init_array(length: u32) -> Array<felt252> {
    let mut array = ArrayTrait::new();
    for i in 0..length {
        array.append(i.into());
    };

    return array;
}

fn main() {
    let array = init_array(4001);

    let index = search(@array, 4000);
    assert(
        index == 4000,
        'invalid result'
    );
    let index = search(@array, 2000);
    assert(
        index == 2000,
        'invalid result'
    );
}