Almost any Temporal object will contain an ISODate, and when you access it for calendared information, it will construct a Date<AnyCalendar> on the fly via Calendar::from_iso().
This seems inefficient: 99% of the time we have constructed a date we already have the from-ISO value; and even if we don't, most useful methods on Date need to call this. In some cases we can rely on the optimizer to inline and collapse consecutive from_iso() calls, but that won't work e.g. over FFI.
We should benchmark some of this, too.
Useful workloads:
- Constructing a date (via various methods)
- Calling
.to_ixdtf_string()
- Calling a single calendared getter on a date
- Calling most calendared getters on a date, e.g. for formatting
Almost any Temporal object will contain an ISODate, and when you access it for calendared information, it will construct a
Date<AnyCalendar>on the fly viaCalendar::from_iso().This seems inefficient: 99% of the time we have constructed a date we already have the from-ISO value; and even if we don't, most useful methods on Date need to call this. In some cases we can rely on the optimizer to inline and collapse consecutive
from_iso()calls, but that won't work e.g. over FFI.We should benchmark some of this, too.
Useful workloads:
.to_ixdtf_string()