.. | ||
generate_definitions.go | ||
generate_property_definitions.go | ||
generate.go | ||
README.md | ||
util.go | ||
validation.go |
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.