cairo-native 0.2.6

A compiler to convert Cairo's intermediate representation Sierra code to MLIR.
use integer::upcast;
use integer::downcast;

fn main() -> (Option<u8>,
              Option<u8>, Option<u16>,
              Option<u8>, Option<u16>, Option<u32>,
              Option<u8>, Option<u16>, Option<u32>, Option<u64>) {
    let x16 = 4_u16;
    let x32 = 1024_u32;
    let x64 = 8_u64;
    let x128 = 10_u128;


    let downcast_x16_to_8: Option<u8> = downcast(x16);

    let downcast_x32_to_8: Option<u8> = downcast(x32);
    let downcast_x32_to_16: Option<u16> = downcast(x32);

    let downcast_x64_to_8: Option<u8> = downcast(x64);
    let downcast_x64_to_16: Option<u16> = downcast(x64);
    let downcast_x64_to_32: Option<u32> = downcast(x64);

    let x128_to_8: Option<u8> = downcast(x128);
    let x128_to_16: Option<u16> = downcast(x128);
    let x128_to_32: Option<u32> = downcast(x128);
    let x128_to_64: Option<u64> = downcast(x128);

    (downcast_x16_to_8,
    downcast_x32_to_8, downcast_x32_to_16,
    downcast_x64_to_8, downcast_x64_to_16, downcast_x64_to_32,
    x128_to_8, x128_to_16, x128_to_32, x128_to_64)
}