- Companion
- object
Value members
Concrete methods
Inherited methods
==Responsibility==
Generally, whoever creates the visitor should be responsible for closing it,
i.e. not intermediate transform(v: Visitor)
methods themselves.
==Responsibility==
Generally, whoever creates the visitor should be responsible for closing it,
i.e. not intermediate transform(v: Visitor)
methods themselves.
==Self Closing==
Given that common usage is most often single-valued (e.g. "{}"),
rather than multi-valued (e.g. "{} {} {}"), Visitors may self-close
(e.g. visitor.map{v => Try(v.close); v)
} after a single value to
prevent resource leaks, but are encouraged to expose both forms
(i.e. single/multiple), if supportable.
==Multiple close() calls/Idempotency==
Visitors are encouraged to respond gracefully if close() is called multiple times.
If an underlying resource would throw if already closed, this may mean adding a
private var isClosed: Boolean
field to prevent multiple calls.
Name of the object key used to identify the subclass tag. Tos will fast path if this is the first field of the object. Otherwise, Tos will have to buffer the content and find the tag later. While naming, consider that some implementations (e.g. vpack) may sort object keys, so symbol prefixes work well for ensuring the tag is the first property.
Name of the object key used to identify the subclass tag. Tos will fast path if this is the first field of the object. Otherwise, Tos will have to buffer the content and find the tag later. While naming, consider that some implementations (e.g. vpack) may sort object keys, so symbol prefixes work well for ensuring the tag is the first property.
- Inherited from
- Tagged