resolver

package
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultRetryMaxRetryCount = uint64(5)

	DefaultRetryConstantInterval = time.Second

	DefaultRetryExponentialInitialInterval     = 500 * time.Millisecond
	DefaultRetryExponentialRandomizationFactor = float64(0.5)
	DefaultRetryExponentialMultiplier          = float64(1.5)
	DefaultRetryExponentialMaxInterval         = 60 * time.Second
)
View Source
var (
	DoubleType           = &Type{Type: types.Double}
	FloatType            = &Type{Type: types.Float}
	Int32Type            = &Type{Type: types.Int32}
	Int64Type            = &Type{Type: types.Int64}
	Uint32Type           = &Type{Type: types.Uint32}
	Uint64Type           = &Type{Type: types.Uint64}
	Sint32Type           = &Type{Type: types.Sint32}
	Sint64Type           = &Type{Type: types.Sint64}
	Fixed32Type          = &Type{Type: types.Fixed32}
	Fixed64Type          = &Type{Type: types.Fixed64}
	Sfixed32Type         = &Type{Type: types.Sfixed32}
	Sfixed64Type         = &Type{Type: types.Sfixed64}
	BoolType             = &Type{Type: types.Bool}
	StringType           = &Type{Type: types.String}
	BytesType            = &Type{Type: types.Bytes}
	EnumType             = &Type{Type: types.Enum}
	EnvType              = &Type{Type: types.String}
	DoubleRepeatedType   = &Type{Type: types.Double, Repeated: true}
	FloatRepeatedType    = &Type{Type: types.Float, Repeated: true}
	Int32RepeatedType    = &Type{Type: types.Int32, Repeated: true}
	Int64RepeatedType    = &Type{Type: types.Int64, Repeated: true}
	Uint32RepeatedType   = &Type{Type: types.Uint32, Repeated: true}
	Uint64RepeatedType   = &Type{Type: types.Uint64, Repeated: true}
	Sint32RepeatedType   = &Type{Type: types.Sint32, Repeated: true}
	Sint64RepeatedType   = &Type{Type: types.Sint64, Repeated: true}
	Fixed32RepeatedType  = &Type{Type: types.Fixed32, Repeated: true}
	Fixed64RepeatedType  = &Type{Type: types.Fixed64, Repeated: true}
	Sfixed32RepeatedType = &Type{Type: types.Sfixed32, Repeated: true}
	Sfixed64RepeatedType = &Type{Type: types.Sfixed64, Repeated: true}
	BoolRepeatedType     = &Type{Type: types.Bool, Repeated: true}
	StringRepeatedType   = &Type{Type: types.String, Repeated: true}
	BytesRepeatedType    = &Type{Type: types.Bytes, Repeated: true}
	EnumRepeatedType     = &Type{Type: types.Enum, Repeated: true}
	EnvRepeatedType      = &Type{Type: types.String, Repeated: true}
)
View Source
var DefaultProtoFormatOption = &ProtoFormatOption{IndentSpaceNum: 2}

Functions

func DependencyGraphTreeFormat

func DependencyGraphTreeFormat(groups []MessageResolverGroup) string

func ExtractIndividualErrors

func ExtractIndividualErrors(err error) []error

ExtractIndividualErrors extracts all error instances from Error type.

func ToCELType added in v0.2.0

func ToCELType(typ *Type) *cel.Type

Types

type AllMessageDependencyGraph added in v0.3.0

type AllMessageDependencyGraph struct {
	Roots []*AllMessageDependencyGraphNode
}

func CreateAllMessageDependencyGraph added in v0.3.0

func CreateAllMessageDependencyGraph(ctx *context, msgs []*Message) *AllMessageDependencyGraph

CreateAllMessageDependencyGraph creates a dependency graph for all messages with message options defined.

type AllMessageDependencyGraphNode added in v0.3.0

type AllMessageDependencyGraphNode struct {
	Parent   []*AllMessageDependencyGraphNode
	Children []*AllMessageDependencyGraphNode
	Message  *Message
}

type Argument

type Argument struct {
	Name  string
	Type  *Type
	Value *Value
}

func (*Argument) ProtoFormat

func (a *Argument) ProtoFormat(opt *ProtoFormatOption, isRequestArg bool) string

type AutoBindField

type AutoBindField struct {
	ResponseField     *ResponseField
	MessageDependency *MessageDependency
	Field             *Field
}

func (*AutoBindField) ProtoFormat

func (f *AutoBindField) ProtoFormat(opt *ProtoFormatOption) string

type CELRegistry added in v0.2.0

type CELRegistry struct {
	*celtypes.Registry
	// contains filtered or unexported fields
}

func (*CELRegistry) FindStructFieldType added in v0.2.0

func (r *CELRegistry) FindStructFieldType(structType, fieldName string) (*celtypes.FieldType, bool)

func (*CELRegistry) LookupEnum added in v0.2.0

func (r *CELRegistry) LookupEnum(t *celtypes.Type) (*Enum, bool)

func (*CELRegistry) RegisterFiles added in v0.2.0

func (r *CELRegistry) RegisterFiles(files ...*descriptorpb.FileDescriptorProto) error

type CELValue added in v0.2.0

type CELValue struct {
	Expr        string
	Inline      bool
	Out         *Type
	CheckedExpr *exprv1.CheckedExpr
}

func (*CELValue) ReferenceNames added in v0.3.0

func (v *CELValue) ReferenceNames() []string

type ConcurrentMessageResolverGroup

type ConcurrentMessageResolverGroup struct {
	Starts []MessageResolverGroup
	End    *MessageResolver
}

func (*ConcurrentMessageResolverGroup) Resolvers

func (*ConcurrentMessageResolverGroup) Type

type ConstValue added in v0.2.0

type ConstValue struct {
	Type  *Type
	Value interface{}
}

func (*ConstValue) ProtoFormat added in v0.2.0

func (c *ConstValue) ProtoFormat(opt *ProtoFormatOption) string

type CustomResolver

type CustomResolver struct {
	Message *Message
	Field   *Field
}

func (*CustomResolver) FQDN added in v0.1.1

func (r *CustomResolver) FQDN() string

type Enum

type Enum struct {
	File    *File
	Name    string
	Values  []*EnumValue
	Message *Message
	Rule    *EnumRule
}

func (*Enum) FQDN

func (e *Enum) FQDN() string

func (*Enum) GoPackage

func (e *Enum) GoPackage() *GoPackage

func (*Enum) HasValue

func (e *Enum) HasValue(name string) bool

func (*Enum) Package

func (e *Enum) Package() *Package

func (*Enum) PackageName

func (e *Enum) PackageName() string

func (*Enum) Value

func (e *Enum) Value(name string) *EnumValue

type EnumRule

type EnumRule struct {
	Alias *Enum
}

type EnumValue

type EnumValue struct {
	Value string
	Enum  *Enum
	Rule  *EnumValueRule
}

func (*EnumValue) FQDN

func (v *EnumValue) FQDN() string

type EnumValueRule

type EnumValueRule struct {
	Default bool
	Aliases []*EnumValue
}

type EnvKey

type EnvKey string

type Error

type Error struct {
	Errs []error
}

Error represents resolver package's error. this has multiple error instances from resolver.

func (*Error) Error

func (e *Error) Error() string

type Field

type Field struct {
	Name  string
	Type  *Type
	Oneof *Oneof
	Rule  *FieldRule
}

func (*Field) HasCustomResolver

func (f *Field) HasCustomResolver() bool

func (*Field) HasMessageCustomResolver

func (f *Field) HasMessageCustomResolver() bool

func (*Field) HasRule

func (f *Field) HasRule() bool

func (*Field) RequiredTypeConversion

func (f *Field) RequiredTypeConversion() bool

func (*Field) SourceType

func (f *Field) SourceType() *Type

func (*Field) TypeConversionDecls

func (f *Field) TypeConversionDecls() []*TypeConversionDecl

type FieldOneofRule added in v0.3.0

type FieldOneofRule struct {
	Expr                *CELValue
	Default             bool
	MessageDependencies MessageDependencies
	By                  *CELValue
	DependencyGraph     *MessageDependencyGraph
	Resolvers           []MessageResolverGroup
}

FieldOneofRule represents grpc.federation.field.oneof.

type FieldRule

type FieldRule struct {
	// Value value to bind to field.
	Value *Value
	// CustomResolver whether `custom_resolver = true` is set in grpc.federation.field option.
	CustomResolver bool
	// MessageCustomResolver whether `custom_resolver = true` is set in grpc.federation.message option.
	MessageCustomResolver bool
	// Alias valid if `alias` is specified in grpc.federation.field option.
	Alias *Field
	// AutoBindField valid if `autobind = true` is specified in resolver.response of grpc.federation.message option.
	AutoBindField *AutoBindField
	// Oneof represents oneof for field option.
	Oneof *FieldOneofRule
}

func (*FieldRule) ProtoFormat

func (r *FieldRule) ProtoFormat(opt *ProtoFormatOption) string

type File

type File struct {
	Package   *Package
	GoPackage *GoPackage
	Name      string
	Desc      *descriptorpb.FileDescriptorProto
	Services  []*Service
	Messages  []*Message
	Enums     []*Enum
}

func (*File) Message

func (f *File) Message(name string) *Message

func (*File) PackageName

func (f *File) PackageName() string

type Files

type Files []*File

func (Files) FindByPackageName

func (f Files) FindByPackageName(pkg string) Files

type GoPackage

type GoPackage struct {
	Name       string
	ImportPath string
	AliasName  string
}

func ResolveGoPackage

func ResolveGoPackage(def *descriptorpb.FileDescriptorProto) (*GoPackage, error)

type LocationError

type LocationError struct {
	Location *source.Location
	Message  string
}

LocationError holds error message with location.

func ErrWithLocation

func ErrWithLocation(msg string, loc *source.Location) *LocationError

ErrWithLocation creates LocationError instance from message and location.

func ToLocationError

func ToLocationError(err error) *LocationError

ToLocationError convert err into LocationError if error instances the one.

func (*LocationError) Error

func (e *LocationError) Error() string

type Message

type Message struct {
	File           *File
	Name           string
	IsMapEntry     bool
	ParentMessage  *Message
	NestedMessages []*Message
	Enums          []*Enum
	Fields         []*Field
	Oneofs         []*Oneof
	Rule           *MessageRule
}

func NewMessage

func NewMessage(name string, fields []*Field) *Message

func (*Message) CustomResolverFields

func (m *Message) CustomResolverFields() []*Field

func (*Message) DependencyGraphTreeFormat

func (m *Message) DependencyGraphTreeFormat() string

func (*Message) FQDN

func (m *Message) FQDN() string

func (*Message) Field

func (m *Message) Field(name string) *Field

func (*Message) FileName

func (m *Message) FileName() string

func (*Message) GoPackage

func (m *Message) GoPackage() *GoPackage

func (*Message) HasCELValue added in v0.2.0

func (m *Message) HasCELValue() bool

func (*Message) HasCustomResolver

func (m *Message) HasCustomResolver() bool

func (*Message) HasCustomResolverFields

func (m *Message) HasCustomResolverFields() bool

func (*Message) HasField

func (m *Message) HasField(name string) bool

func (*Message) HasFieldRule

func (m *Message) HasFieldRule() bool

func (*Message) HasRule

func (m *Message) HasRule() bool

func (*Message) HasRuleEveryFields

func (m *Message) HasRuleEveryFields() bool

func (*Message) Oneof added in v0.3.0

func (m *Message) Oneof(name string) *Oneof

func (*Message) Package

func (m *Message) Package() *Package

func (*Message) PackageName

func (m *Message) PackageName() string

func (*Message) ParentMessageNames

func (m *Message) ParentMessageNames() []string

func (*Message) ReferenceNames added in v0.2.0

func (m *Message) ReferenceNames() []string

func (*Message) TypeConversionDecls

func (m *Message) TypeConversionDecls() []*TypeConversionDecl

func (*Message) UseAllNameReference

func (m *Message) UseAllNameReference()

type MessageDependencies

type MessageDependencies []*MessageDependency

func (MessageDependencies) ProtoFormat

func (deps MessageDependencies) ProtoFormat(opt *ProtoFormatOption) string

type MessageDependency

type MessageDependency struct {
	Name     string
	Message  *Message
	Args     []*Argument
	AutoBind bool
	Used     bool
	Owner    *MessageDependencyOwner
}

func (*MessageDependency) ProtoFormat

func (d *MessageDependency) ProtoFormat(opt *ProtoFormatOption) string

type MessageDependencyGraph

type MessageDependencyGraph struct {
	MessageRule    *MessageRule
	FieldOneofRule *FieldOneofRule
	Roots          []*MessageDependencyGraphNode
}

func CreateMessageDependencyGraph

func CreateMessageDependencyGraph(ctx *context, baseMsg *Message) *MessageDependencyGraph

CreateMessageRuleDependencyGraph construct a dependency graph using the name-based reference dependencies used in the method calls and the arguments used to retrieve the dependency messages. Requires reference resolution for arguments that use prior name-based references. If a circular reference occurs, add an error to context.

func CreateMessageDependencyGraphByFieldOneof added in v0.3.0

func CreateMessageDependencyGraphByFieldOneof(ctx *context, baseMsg *Message, field *Field) *MessageDependencyGraph

func (*MessageDependencyGraph) MessageResolverGroups added in v0.3.0

func (g *MessageDependencyGraph) MessageResolverGroups(ctx *context) []MessageResolverGroup

type MessageDependencyGraphNode

type MessageDependencyGraphNode struct {
	Parent            []*MessageDependencyGraphNode
	Children          []*MessageDependencyGraphNode
	ParentMap         map[*MessageDependencyGraphNode]struct{}
	ChildrenMap       map[*MessageDependencyGraphNode]struct{}
	BaseMessage       *Message
	Message           *Message
	Response          *Response
	MessageDependency *MessageDependency
}

func (*MessageDependencyGraphNode) FQDN added in v0.3.0

type MessageDependencyOwner added in v0.3.0

type MessageDependencyOwner struct {
	Type    MessageDependencyOwnerType
	Message *Message
	Field   *Field
}

type MessageDependencyOwnerType added in v0.3.0

type MessageDependencyOwnerType int
const (
	MessageDependencyOwnerUnknown    MessageDependencyOwnerType = 0
	MessageDependencyOwnerMessage    MessageDependencyOwnerType = 1
	MessageDependencyOwnerOneofField MessageDependencyOwnerType = 2
)

type MessageResolver

type MessageResolver struct {
	Name              string
	MethodCall        *MethodCall
	MessageDependency *MessageDependency
}

type MessageResolverGroup

type MessageResolverGroup interface {
	Type() MessageResolverGroupType
	Resolvers() []*MessageResolver
	// contains filtered or unexported methods
}

type MessageResolverGroupType

type MessageResolverGroupType string
const (
	SequentialMessageResolverGroupType MessageResolverGroupType = "sequential"
	ConcurrentMessageResolverGroupType MessageResolverGroupType = "concurrent"
)

type MessageRule

type MessageRule struct {
	MethodCall          *MethodCall
	MessageDependencies MessageDependencies
	MessageArgument     *Message
	DependencyGraph     *MessageDependencyGraph
	Resolvers           []MessageResolverGroup
	CustomResolver      bool
	Alias               *Message
}

func (*MessageRule) ProtoFormat

func (r *MessageRule) ProtoFormat(opt *ProtoFormatOption) string

type Method

type Method struct {
	Service  *Service
	Name     string
	Request  *Message
	Response *Message
	Rule     *MethodRule
}

func (*Method) FQDN

func (m *Method) FQDN() string

func (*Method) ProtoFormat

func (m *Method) ProtoFormat(opt *ProtoFormatOption) string

type MethodCall

type MethodCall struct {
	Method   *Method
	Request  *Request
	Response *Response
	Timeout  *time.Duration
	Retry    *RetryPolicy
}

func (*MethodCall) ProtoFormat

func (c *MethodCall) ProtoFormat(opt *ProtoFormatOption) string

type MethodRule

type MethodRule struct {
	Timeout *time.Duration
}

type Oneof

type Oneof struct {
	Name    string
	Message *Message
	Fields  []*Field
}

func (*Oneof) IsSameType added in v0.3.0

func (oneof *Oneof) IsSameType() bool

type OneofField

type OneofField struct {
	*Field
}

func (*OneofField) FQDN

func (f *OneofField) FQDN() string

func (*OneofField) IsConflict

func (f *OneofField) IsConflict() bool

type OutputFilePathConfig

type OutputFilePathConfig struct {
	// Mode for file output ( default: ImportMode ).
	Mode OutputFilePathMode
	// Prefix used in ModulePrefixMode.
	Prefix string
	// FilePath specify if you know the file path specified at compile time.
	FilePath string
	// ImportPaths list of import paths used during compile.
	ImportPaths []string
}

type OutputFilePathMode

type OutputFilePathMode int
const (
	ImportMode         OutputFilePathMode = 0
	ModulePrefixMode   OutputFilePathMode = 1
	SourceRelativeMode OutputFilePathMode = 2
)

type OutputFilePathResolver

type OutputFilePathResolver struct {
	// contains filtered or unexported fields
}

func NewOutputFilePathResolver

func NewOutputFilePathResolver(cfg OutputFilePathConfig) *OutputFilePathResolver

func (*OutputFilePathResolver) FileName

func (r *OutputFilePathResolver) FileName(svc *Service) string

func (*OutputFilePathResolver) OutputDir

func (r *OutputFilePathResolver) OutputDir(fileName string, gopkg *GoPackage) (string, error)

func (*OutputFilePathResolver) OutputPath

func (r *OutputFilePathResolver) OutputPath(svc *Service) (string, error)

OutputPath returns the path to the output file. Three output mode supported by protoc-gen-go are available. FYI: https://protobuf.dev/reference/go/go-generated.

type Package

type Package struct {
	Name  string
	Files Files
}

type ProtoFormatOption

type ProtoFormatOption struct {
	IndentLevel    int
	Prefix         string
	IndentSpaceNum int
}

type Request

type Request struct {
	Args []*Argument
	Type *Message
}

func (*Request) ProtoFormat

func (r *Request) ProtoFormat(opt *ProtoFormatOption) string

type Resolver

type Resolver struct {
	// contains filtered or unexported fields
}

func New

func (*Resolver) Candidates

func (r *Resolver) Candidates(loc *source.Location) []string

func (*Resolver) Resolve

func (r *Resolver) Resolve() (*Result, error)

func (*Resolver) ResolveWellknownFiles

func (r *Resolver) ResolveWellknownFiles() (Files, error)

type Response

type Response struct {
	Fields []*ResponseField
	Type   *Message
}

func (*Response) ProtoFormat

func (r *Response) ProtoFormat(opt *ProtoFormatOption) string

type ResponseField

type ResponseField struct {
	Name      string
	FieldName string
	Type      *Type
	AutoBind  bool
	Used      bool
}

func (*ResponseField) ProtoFormat

func (f *ResponseField) ProtoFormat(opt *ProtoFormatOption) string

type Result

type Result struct {
	// Services list of services that specify the grpc.federation.service option.
	Services []*Service
	// Warnings all warnings occurred during the resolve process.
	Warnings []*Warning
}

Result of resolver processing.

type RetryPolicy

type RetryPolicy struct {
	Constant    *RetryPolicyConstant
	Exponential *RetryPolicyExponential
}

func (*RetryPolicy) MaxRetries

func (p *RetryPolicy) MaxRetries() uint64

type RetryPolicyConstant

type RetryPolicyConstant struct {
	Interval   time.Duration
	MaxRetries uint64
}

type RetryPolicyExponential

type RetryPolicyExponential struct {
	InitialInterval     time.Duration
	RandomizationFactor float64
	Multiplier          float64
	MaxInterval         time.Duration
	MaxRetries          uint64
	MaxElapsedTime      time.Duration
}

type SequentialMessageResolverGroup

type SequentialMessageResolverGroup struct {
	Start MessageResolverGroup
	End   *MessageResolver
}

func (*SequentialMessageResolverGroup) Resolvers

func (*SequentialMessageResolverGroup) Type

type Service

type Service struct {
	File        *File
	Name        string
	Methods     []*Method
	Rule        *ServiceRule
	Messages    []*Message
	MessageArgs []*Message
}

func (*Service) CustomResolvers

func (s *Service) CustomResolvers() []*CustomResolver

func (*Service) ExistsCustomResolver

func (s *Service) ExistsCustomResolver() bool

func (*Service) FQDN

func (s *Service) FQDN() string

func (*Service) GoPackage

func (s *Service) GoPackage() *GoPackage

func (*Service) GoPackageDependencies

func (s *Service) GoPackageDependencies() []*GoPackage

func (*Service) Method

func (s *Service) Method(name string) *Method

func (*Service) Package

func (s *Service) Package() *Package

func (*Service) PackageName

func (s *Service) PackageName() string

func (*Service) ServiceDependencies

func (s *Service) ServiceDependencies() []*ServiceDependency

func (*Service) UseServices

func (s *Service) UseServices() []*Service

type ServiceDependency

type ServiceDependency struct {
	Name    string
	Service *Service
}

type ServiceRule

type ServiceRule struct {
	Dependencies []*ServiceDependency
}

type Type

type Type struct {
	Type       types.Type
	Repeated   bool
	Ref        *Message
	Enum       *Enum
	OneofField *OneofField
}
var (
	AnyType       *Type
	TimestampType *Type
	DurationType  *Type
	EmptyType     *Type
)

func NewMessageType

func NewMessageType(msg *Message, repeated bool) *Type

func (*Type) Clone

func (t *Type) Clone() *Type

func (*Type) FQDN

func (t *Type) FQDN() string

func (*Type) IsNumber

func (t *Type) IsNumber() bool

type TypeConversionDecl

type TypeConversionDecl struct {
	From *Type
	To   *Type
}

func (*TypeConversionDecl) FQDN

func (decl *TypeConversionDecl) FQDN() string

type Value

type Value struct {
	CEL   *CELValue
	Const *ConstValue
}

func NewBoolValue

func NewBoolValue(v bool) *Value

func NewBoolsValue

func NewBoolsValue(v ...bool) *Value

func NewByteStringValue

func NewByteStringValue(v []byte) *Value

func NewByteStringsValue

func NewByteStringsValue(v ...[]byte) *Value

func NewDoubleValue

func NewDoubleValue(v float64) *Value

func NewDoublesValue

func NewDoublesValue(v ...float64) *Value

func NewEnumValue

func NewEnumValue(v *EnumValue) *Value

func NewEnumsValue

func NewEnumsValue(v ...*EnumValue) *Value

func NewEnvValue

func NewEnvValue(v EnvKey) *Value

func NewEnvsValue

func NewEnvsValue(v ...EnvKey) *Value

func NewFixed32Value

func NewFixed32Value(v uint32) *Value

func NewFixed32sValue

func NewFixed32sValue(v ...uint32) *Value

func NewFixed64Value

func NewFixed64Value(v uint64) *Value

func NewFixed64sValue

func NewFixed64sValue(v ...uint64) *Value

func NewFloatValue

func NewFloatValue(v float32) *Value

func NewFloatsValue

func NewFloatsValue(v ...float32) *Value

func NewInt32Value

func NewInt32Value(v int32) *Value

func NewInt32sValue

func NewInt32sValue(v ...int32) *Value

func NewInt64Value

func NewInt64Value(v int64) *Value

func NewInt64sValue

func NewInt64sValue(v ...int64) *Value

func NewMessageValue

func NewMessageValue(typ *Type, v map[string]*Value) *Value

func NewMessagesValue

func NewMessagesValue(typ *Type, v ...map[string]*Value) *Value

func NewSfixed32Value

func NewSfixed32Value(v int32) *Value

func NewSfixed32sValue

func NewSfixed32sValue(v ...int32) *Value

func NewSfixed64Value

func NewSfixed64Value(v int64) *Value

func NewSfixed64sValue

func NewSfixed64sValue(v ...int64) *Value

func NewSint32Value

func NewSint32Value(v int32) *Value

func NewSint32sValue

func NewSint32sValue(v ...int32) *Value

func NewSint64Value

func NewSint64Value(v int64) *Value

func NewSint64sValue

func NewSint64sValue(v ...int64) *Value

func NewStringValue

func NewStringValue(v string) *Value

func NewStringsValue

func NewStringsValue(v ...string) *Value

func NewUint32Value

func NewUint32Value(v uint32) *Value

func NewUint32sValue

func NewUint32sValue(v ...uint32) *Value

func NewUint64Value

func NewUint64Value(v uint64) *Value

func NewUint64sValue

func NewUint64sValue(v ...uint64) *Value

func (*Value) ProtoFormat

func (v *Value) ProtoFormat(opt *ProtoFormatOption) string

func (*Value) ReferenceNames added in v0.2.0

func (v *Value) ReferenceNames() []string

func (*Value) Type added in v0.2.0

func (v *Value) Type() *Type

type Warning

type Warning struct {
	Location *source.Location
	Message  string
}

Warning represents what should be warned that is not an error that occurred during the Resolver.Resolve().

Jump to

Keyboard shortcuts

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