OpenCyphal/specification

Explicit structuring

pavel-kirienko opened this issue · 0 comments

As mentioned in the post about meta-transport, highly hierarchical definitions are hard to view because the representation of namespace members is inherently flat which does not reflect the data structure.

Fixed port-IDs make top-level types very salient. It is also natural since a nested type does not need to have a fixed port-ID. This solution is unavailable for top-level types that don't have a fixed port-ID, such as in the linked case; an alternative is to simply add a special character pattern, such as an underscore, in place of the fixed port-ID. For example, a DSDL file Frame.1.0.uavcan would become _.Frame.1.0.uavcan. Example:

image

Alternatively, non-top-level types could be named starting with . like .Error.1.0.uavcan. That would make them hidden on Unix-like systems which is interesting.

These are very easy to implement but they are probably not the best possible solutions; other suggestions are welcome.