So... this might sound a bit weird, but, I think it's possible for there to be a trait that describes all composite types, that works kind of like PgHeapTuple does now, but also incorporates the ability to have "immediate access" fields in a known layout if you successfully .downcast_composite::<T>(), and people can ask for what essentially is a kind of Result<T, &dyn Composite> to their function.
This is a bigger change than I intend to implement immediately, however.
This is a bigger change than I intend to implement immediately, however.