activity/tools/vocab/gen
Cory Slep f155f0a3d0 Generate vocab package to multiple files. 2018-06-13 21:53:01 +02:00
..
README.md Update all the READMEs 2018-05-30 23:48:34 +02:00
generate.go Generate vocab package to multiple files. 2018-06-13 21:53:01 +02:00
generate_definitions.go Generate vocab package to multiple files. 2018-06-13 21:53:01 +02:00
generate_property_definitions.go
util.go
validation.go

README.md

gen

This library is used to generate the go-fed/activity/vocab library implementation. Changes to this will fundamentally change the implementation of the vocab library. If custom ActivityStream types are required, no changes to this are required. Instead, the go-fed/activity/tools/defs library will need edits.

Creating a static type implementation from the specification is not straightforward due to the following considerations that stem from its roots in JSON-LD:

  • Any property could be an IRI (url.URL)
  • Most properties could be another ActivityStream type (map[string]interface{}) or a value (time.Time, etc)
  • Most properties can have multiple values ([]interface{})
  • In a multiple value scenario, each value could once more be an IRI, another ActivityStream type, or a value

The current generation algorithm leaves ample opportunity for improvements and optimizations.