teodosin/karta

Nodetypes design and implementation

Opened this issue · 0 comments

Complete the future-proof design and implementation of node types. The requirements are roughly so:

  • A thorough, complete NodeType struct that serialises smoothly into Agdb's DbValue
  • Ability to hierarchically categorise node types together (eg. operators, types of operators, files)
  • Account for the differences and overlap between NodeTypes and DataTypes (the type of data that a node outputs, sometimes different per output socket)
  • Ergonomic way of defining new node types, both internally in the crate and for hypothetical plugin developers
  • Support for defining input and output sockets, their data types, and validating connections to those sockets
  • NodeType "origins" to differentiate nodes defined by Karta and by different plugins
  • Each unique node type should be indexed so that instances of each type can be easily found throughout the whole db. See #96 for similar issue