NativeCall つらい

GLib とか Gtk を NativeCall で呼び出そうとしてるんだけど、つらい。

C 言語でやるような typedef はどーやんの?

GLib とかでこーいう感じの gsize は:

typedef    unsinged long    gsize;

Perl6 では以下のように constant る。

constant gsize = uint32;

構造体ってどーすんの?

Perl6 Document に書いてあるけど、こんな風に class として書くよ!書くよ!

class GtkApplication is repr( 'CStruct' ) {
    has GtkApplication $.parent;
    
    has Pointer        $.priv;
}

列挙体を渡したい時は?

わからん。
こんな風にやったら、ダメだった:

enum GApplicationFlags (
    G_APPLICATION_FLAGS_NONE => 0
);

sub gtk_application_new(Str, GApplicationFlags) returns Pointer[GtkApplication] is native('gtk-3') { * }

is repr('CEnum') とかできるんだろーか?