writeJulianDate<S extends TimeScale> function

Pointer<taiyin_split_julian_date> writeJulianDate<S extends TimeScale>(
  1. Arena arena,
  2. JulianDate<S> value
)

Marshals a split Julian date into an arena-owned C ABI struct.

The C ABI represents absolute times as taiyin_split_julian_date (int64 day_number + double day_fraction). Physical-calculation entry points consume and produce this representation end to end, so the Dart package crosses the FFI boundary with the split intact rather than merging to double (which would discard the low-order fraction).

Implementation

Pointer<taiyin_split_julian_date> writeJulianDate<S extends TimeScale>(
  Arena arena,
  JulianDate<S> value,
) {
  validateNativeJulianDate(value);
  final native = arena<taiyin_split_julian_date>();
  native.ref
    ..day_number = value.dayNumber
    ..day_fraction = value.dayFraction;
  return native;
}