flapigen 0.11.0

Tool for connecting libraries written in Rust with other languages
Documentation
foreign_class!(class Boo {
  self_type Boo;
  constructor Boo::new() -> Boo;
  fn Boo::something(&self) -> i32;
});

foreign_enum!(
    enum ControlItem {
        GNSS = ControlItem::GnssWorking,
        GPS_PROVIDER = ControlItem::AndroidGPSOn,
    }
);

foreign_class!(class Foo {
   self_type Foo;
   constructor Foo::default() -> Foo;
   constructor Foo::new(_: Option<Boo>, _: Option<f64>) -> Foo;
   fn Foo::f1(&self, _: Option<f64>);
   fn Foo::f2(&mut self, _: Option<Boo>);
   fn Foo::f3(&mut self, _: Option<ControlItem>);
   fn Foo::f4(&self, x: Option<usize>);
   fn Foo::f5(x: Option<f64>, y: Option<usize>);
   fn Foo::f6(x: Option<&str>);
   fn Foo::f7(x: Option<&Boo>);
});