transform_op.rs 645 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #[repr(C)]
  2. pub struct Point<T> {
  3. pub x: T,
  4. pub y: T,
  5. }
  6. #[repr(u8)]
  7. pub enum Foo<T> {
  8. Foo { x: i32, y: Point<T>, z: Point<f32>, },
  9. Bar(T),
  10. Baz(Point<T>),
  11. Bazz,
  12. }
  13. #[repr(C)]
  14. pub enum Bar<T> {
  15. Bar1 { x: i32, y: Point<T>, z: Point<f32>, u: unsafe extern "C" fn(i32) -> i32, },
  16. Bar2(T),
  17. Bar3(Point<T>),
  18. Bar4,
  19. }
  20. #[repr(u8)]
  21. pub enum Baz {
  22. Baz1(Bar<u32>),
  23. Baz2(Point<i32>),
  24. Baz3,
  25. }
  26. #[repr(C, u8)]
  27. pub enum Taz {
  28. Taz1(Bar<u32>),
  29. Taz2(Baz),
  30. Taz3,
  31. }
  32. #[no_mangle]
  33. pub extern "C" fn foo(
  34. foo: *const Foo<i32>,
  35. bar: *const Bar<i32>,
  36. baz: *const Baz,
  37. taz: *const Taz,
  38. ) {}