Skip to content

Unifying All Descriptors into a Single EntryType

Steve Melville edited this page Nov 6, 2023 · 3 revisions

The current MAP Descriptors design includes separate EntryTypes for HolonDescriptors and ValueDescriptors. Continuing this trajectory would require scaffolding new EntryTypes for PropertyDescriptor, RelationshipDescriptor and DanceDescriptor. This is extra effort and extra code bulk. This seems the opportune time to re-consider unifying all descriptors into single EntryType. This document sketches some options and challenges.

UML Diagrams for Unified EntryType Design

image

In this approach, the TypeDescriptor is represented via an enum, with variants for each type of descriptor. One of those variants is the ValueTypeDescriptor which, itself, is an enum. By including the header in each descriptor type, they can each stand on their own, independently. This allows references to these descriptors to be specifically typed to take advantage of Rust type checking.

Schema and References

image

Discarded Design Option

image