Documentation
¶
Index ¶
- func VisitDocument(v *Visitor, d *jsonapi.Document) error
- type DocumentVisitor
- type ErrorVisitor
- type LinksVisitor
- type MetaVisitor
- type RelationshipVisitor
- type ResourceVisitor
- type SectionVisitor
- func (v SectionVisitor) VisitDocument(obj *jsonapi.Document) error
- func (v SectionVisitor) VisitError(obj *jsonapi.Error) error
- func (v SectionVisitor) VisitLink(obj *jsonapi.Link) error
- func (v SectionVisitor) VisitLinks(obj jsonapi.Links) error
- func (v SectionVisitor) VisitMeta(obj jsonapi.Meta) error
- func (v SectionVisitor) VisitRef(obj *jsonapi.Resource) error
- func (v SectionVisitor) VisitRelationship(obj *jsonapi.Relationship) error
- func (v SectionVisitor) VisitRelationships(obj jsonapi.RelationshipsNode) error
- func (v SectionVisitor) VisitResource(obj *jsonapi.Resource) error
- func (v *SectionVisitor) Visitor() *Visitor
- type Visitor
- type VisitorFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func VisitDocument ¶
VisitDocument allows the provided visitor to traverse this document.
Types ¶
type DocumentVisitor ¶
type DocumentVisitor interface {
// VisitDocument visits the document. Return an error to stop visiting.
VisitDocument(obj *jsonapi.Document) error
}
DocumentVisitor visits JSON:API document nodes.
type ErrorVisitor ¶
type ErrorVisitor interface {
// VisitError visits the error node. Return an error to stop visiting.
VisitError(obj *jsonapi.Error) error
}
ErrorVisitor visits JSON:API error nodes.
type LinksVisitor ¶
type LinksVisitor interface {
// VisitLinks visits the links. Return an error to stop visiting.
VisitLinks(obj jsonapi.Links) error
// VisitLink visits a link. Return an error to stop visiting.
VisitLink(obj *jsonapi.Link) error
}
LinksVisitor visits JSON:API link nodes.
type MetaVisitor ¶
type MetaVisitor interface {
// VisitMeta visits the meta node. Return an error to stop visiting.
VisitMeta(obj jsonapi.Meta) error
}
MetaVisitor visits JSON:API meta nodes.
type RelationshipVisitor ¶
type RelationshipVisitor interface {
// VisitRelationship visits the relationship node. Return an error to stop visiting.
VisitRelationships(obj jsonapi.RelationshipsNode) error
// VisitRelationship visits the relationship node. Return an error to stop visiting.
VisitRelationship(obj *jsonapi.Relationship) error
// VisitRelationship visits the resource node referenced in a relationship.
// Return an error to stop visiting.
VisitRef(obj *jsonapi.Resource) error
}
RelationshipVisitor visits JSON:API relationship nodes.
type ResourceVisitor ¶
type ResourceVisitor interface {
// VisitResource visits the resource node. Return an error to stop visiting.
VisitResource(obj *jsonapi.Resource) error
}
ResourceVisitor visits JSON:API resource nodes.
type SectionVisitor ¶
type SectionVisitor struct {
Document VisitorFunc[*jsonapi.Document] // Function for visiting document nodes.
Links VisitorFunc[jsonapi.Links] // Function for visiting links nodes.
Link VisitorFunc[*jsonapi.Link] // Function for visiting link nodes.
Meta VisitorFunc[jsonapi.Meta] // Function for visiting meta nodes.
Resource VisitorFunc[*jsonapi.Resource] // Function for visiting resource nodes.
Relationship VisitorFunc[*jsonapi.Relationship] // Function for visiting relationship nodes.
Relationships VisitorFunc[jsonapi.RelationshipsNode] // Function for visiting relationships nodes.
Ref VisitorFunc[*jsonapi.Resource] // Function for visiting resource nodes referenced in relationships.
Error VisitorFunc[*jsonapi.Error] // Function for visiting error nodes.
}
SectionVisitor can visit chosen nodes while ignoring others. For example, if you only want to visit the document node and its top links, you can use this to create a visitor that only visits the document node. If you want to visit all link nodes, add link visitor instead.
func (SectionVisitor) VisitDocument ¶
func (v SectionVisitor) VisitDocument(obj *jsonapi.Document) error
VisitDocument visits the document.
func (SectionVisitor) VisitError ¶
func (v SectionVisitor) VisitError(obj *jsonapi.Error) error
VisitError visits the error node.
func (SectionVisitor) VisitLink ¶
func (v SectionVisitor) VisitLink(obj *jsonapi.Link) error
VisitLink visits a link.
func (SectionVisitor) VisitLinks ¶
func (v SectionVisitor) VisitLinks(obj jsonapi.Links) error
VisitLinks visits the links.
func (SectionVisitor) VisitMeta ¶
func (v SectionVisitor) VisitMeta(obj jsonapi.Meta) error
VisitMeta visits the meta node.
func (SectionVisitor) VisitRef ¶
func (v SectionVisitor) VisitRef(obj *jsonapi.Resource) error
VisitRef visits the resource node referenced in a relationship.
func (SectionVisitor) VisitRelationship ¶
func (v SectionVisitor) VisitRelationship(obj *jsonapi.Relationship) error
VisitRelationship visits the relationship node.
func (SectionVisitor) VisitRelationships ¶
func (v SectionVisitor) VisitRelationships(obj jsonapi.RelationshipsNode) error
VisitRelationships visits the relationships node.
func (SectionVisitor) VisitResource ¶
func (v SectionVisitor) VisitResource(obj *jsonapi.Resource) error
VisitResource visits the resource node.
func (*SectionVisitor) Visitor ¶
func (v *SectionVisitor) Visitor() *Visitor
Visitor creates a visitor instance that can traverse a document.
type Visitor ¶
type Visitor struct {
DocumentVisitor
LinksVisitor
MetaVisitor
ResourceVisitor
RelationshipVisitor
ErrorVisitor
}
Visitor can traverse a JSON:API document tree. Use the subvisitors to inspect or modify the document in place.
type VisitorFunc ¶
VisitorFunc can visit a node of the specified type.