foreigner_class!(class Boo { self_type Boo; constructor Boo::new() -> Boo; method Boo::something(&self) -> i32; }); foreign_enum!( enum ControlItem { GNSS = ControlItem::GnssWorking, GPS_PROVIDER = ControlItem::AndroidGPSOn, } ); foreigner_class!(class Foo { self_type Foo; constructor Foo::default() -> Foo; fn Foo::f1(&self, _: Option) -> Option; fn Foo::f2(&self, _: Option) -> Option; fn Foo::f3(&self) -> Option; fn Foo::f4(&self, boo: Option); fn Foo::f5(&self) -> Option; fn Foo::f6(&self, boo: Option<&Boo>); fn Foo::f7(&self, _: Option<&str>); fn Foo::f8(&self, _: Option) -> Option; });