#line 55 "/home/travis/build/felix-lang/felix/src/packages/time.fdoc"
  
  class Win32Time
  {
    requires Posix_headers::sys_types_h;
    requires Win32_headers::sys_timeb_h;
  
    private type time_t = "time_t";
    private fun _ctor_double: time_t -> double = "static_cast<double>($1)";
  
    private cstruct __timeb64 {
      time: time_t; // seconds
      millitm: ushort; // milliseconds
    };
  
    private proc _ftime64_s: &__timeb64 = "_ftime64_s($1);";
  
    inherit Time_class[Win32];
  
    instance Time_class[Win32] {
      gen time () : double = {
        var tv:__timeb64;
        _ftime64_s(&tv);
        return tv.time.double + tv.millitm.double / 1.0e3;
      }
    }
  }