cairo-native 0.8.0

A compiler to convert Cairo's IR Sierra code to MLIR and execute it.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use nullable::null;
use nullable::match_nullable;
use nullable::FromNullableResult;
use nullable::nullable_from_box;
use box::BoxTrait;

fn main() -> (Nullable<u8>, Option<u8>) {
    let a: Nullable<u8> = null();
    let b: Box<u8> = BoxTrait::new(4_u8);
    let c = nullable_from_box(b);
    let d = match match_nullable(c) {
      FromNullableResult::Null(_) => Option::Some(6_u8),
      FromNullableResult::NotNull(value) => Option::Some(value.unbox())
    };
    // can't return b to print because box types print their memory cell?
    (a, d)
}