Open 00JCIV00 opened 1 year ago
Upon initial inspection, the current usage of const
is required to share the same Type between comptime and runtime. With the runtime instances being allocated, the usage of const
and @constCast
might be ok. That said, it should still be looked at further.
The use of
@constCast
is generally discouraged, but it's used throughout the library in the Command, Option, and Value types. There two main reasons for this:const
as a sort of equivalent toval
in Kotlin, wherein the data can be made immutable to external users but still be mutated internally.const
works. Namely, the fact that it applies to memory directly instead of the data or Type. Because of this, the compiler can make assumptions aboutconst
data and even choose to move it to therodata
section of a program.While the library ostensibly works fine in its current state, this is an item that's worth reviewing for completeness down the line.