visitor

package
v2.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func VisitDocument

func VisitDocument(v *Visitor, d *jsonapi.Document) error

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 (v SectionVisitor) VisitLink(obj *jsonapi.Link) error

VisitLink visits a link.

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

Visitor can traverse a JSON:API document tree. Use the subvisitors to inspect or modify the document in place.

type VisitorFunc

type VisitorFunc[Node any] func(Node) error

VisitorFunc can visit a node of the specified type.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL