- Fix bug where non-inherited properties didn't apply to a type, only
the type's children.
- Added orderedItems.
- Excluded items property from OrderedCollectionPage.
- Fixed OrderedCollectionPage extending from two types.
See previous commit message about improvements needed to reduce the
linking hell that is introduced in this code generation. Everything is
now linking against the 'type' property's concrete constructor.
All tests pass. However:
- Need to inject the type property constructor at init time, much like
the manager. Statically linking sucks and really slowed it down with
the direct linking method currently being used. I suspect this makes
it no longer compile on a Raspberry Pi 3, so even more of a reason to
do it at init time.
- Having the type property automatically set at construction time is an
extremely nice feature lacking in v0.
- Unfortunately, right now this introduces a hack in the convert
package.
- Modified the 'type' property definition to also be a string for major
convenience; it has no semantic significance as xsd:string.
- Add missing ActivityPub actor and object properties
- Introspect type when deserializing
- Unknown on properties is now an interface
- Can now generate code when an extends hierarchy is specified multiple
times as a range.
This is because Go's JSON package usees float64 under the hood, even
though xsd:float specifically specifies float32, I don't feel it is
worth getting that level of compatibility down, we will just be extra
precise.
- Sorting serialization and deserialization functions to reduce random
noise when regenerating code.
- IRI methods can now short-cut to a URI equivalent value.
- Kind constructors.
- Extended types now can also be attached to properties (bleh). Blows up
the API size, really quickly.
- Minor bugfixes.
Need to:
- Hook into convert package
- Add comments everywhere to generated code
- Add version that supports navigating AS hierarchy (or applies
interface-first instead of type-first).
Needs several improvements:
- private alias member for each type/property
- New constructor function sets this to be code-generated default
- Modify deserialize to also accept an @context alias map to override
default if needed.
- Add utility function in root package to turn @context into an alias
map, which will be needed by resolvers.
The interfaces need to all be generated together, or else vocabularies
could have cyclic dependencies.
Package documentation will need to reflect each of the vocabularies'
documentation.
References' types and properties need to be generated.
Begin, End, Empty, Next, Prev were added. Clarified about concurrent
access not being a thing. Also added "should not use" or "do not use"
comments to the methods that needed it.