-
Enhancement
-
Resolution: Fixed
-
P3
-
None
-
repo-panama
Jextract uses an attribute to attach temporary information to layouts regarding the canonical layout field in CLinker they correspond to.
But, creating a dynamic constant out of these layouts is a complex process, since we need to recursively filter out this internal jextract attribute, which requires us to recreate GroupLayouts, SequenceLayouts, FunctionDescriptors, and ValueLayouts.
It would be easier if we could extend CValueLayout with a custom jextract layout class, which has an extract field to indicate which CLinker constant they correspond to. In that case e.g. SourceConstantHelper can cast to this custom class and retrieve this extra field, removing the need to use attributes, and the difficulties associated with them.
But, creating a dynamic constant out of these layouts is a complex process, since we need to recursively filter out this internal jextract attribute, which requires us to recreate GroupLayouts, SequenceLayouts, FunctionDescriptors, and ValueLayouts.
It would be easier if we could extend CValueLayout with a custom jextract layout class, which has an extract field to indicate which CLinker constant they correspond to. In that case e.g. SourceConstantHelper can cast to this custom class and retrieve this extra field, removing the need to use attributes, and the difficulties associated with them.