library;
import self as self;
import "dart:ffi" as ffi;
import "dart:core" as core;
import "package:ffi/src/allocation.dart" as all;

import "dart:ffi";
import "package:ffi/ffi.dart";

class Coordinate extends ffi::Struct {
  @#C1
  field core::double* x = null;
  @#C1
  field core::double* y = null;
  field ffi::Pointer<self::Coordinate*>* next = null;
  static factory allocate(core::double* x, core::double* y, ffi::Pointer<self::Coordinate*>* next) → self::Coordinate* {
    return let final self::Coordinate* #t1 = ffi::StructPointer|get#ref<self::Coordinate*>(all::allocate<self::Coordinate*>()) in let final void #t2 = #t1.{self::Coordinate::x} = x in let final void #t3 = #t1.{self::Coordinate::y} = y in let final void #t4 = #t1.{self::Coordinate::next} = next in #t1;
  }
}
static method main() → dynamic {}

constants  {
  #C1 = ffi::Double {}
}
