Documentation ¶
Overview ¶
Package internal exposes some cue internals to other packages.
A better name for this package would be technicaldebt.
Index ¶
- Constants
- Variables
- func DecorateError(info error, err errors.Error) errors.Error
- func EmbedStruct(s *ast.StructLit) *ast.EmbedDecl
- func FileComment(f *ast.File) *ast.CommentGroup
- func GenPath(root string) string
- func IsBulkField(d ast.Decl) bool
- func IsDef(s string) bool
- func IsDefOrHidden(s string) bool
- func IsDefinition(label ast.Label) bool
- func IsEllipsis(x ast.Decl) bool
- func IsHidden(s string) bool
- func IsRegularField(f *ast.Field) bool
- func ListEllipsis(n *ast.ListLit) (elts []ast.Expr, e *ast.Ellipsis)
- func NewAttr(name, str string) *ast.Attribute
- func NewComment(isDoc bool, s string) *ast.CommentGroup
- func PackageInfo(f *ast.File) (p *ast.Package, name string, tok token.Pos)deprecated
- func SetPackage(f *ast.File, name string, overwrite bool)
- func ToExpr(n ast.Node) ast.Expr
- func ToFile(n ast.Node) *ast.File
- func ToStruct(f *ast.File) *ast.StructLit
- func Version(minor, patch int) int
- type Decimal
- type PkgInfo
Constants ¶
const ( MinorCurrent = 5 MinorSupported = 4 PatchSupported = 0 )
const MaxDepth = 20
MaxDepth indicates the maximum evaluation depth. This is there to break cycles in the absence of cycle detection.
It is registered in a central place to make it easy to find all spots where cycles are broken in this brute-force manner.
TODO(eval): have cycle detection.
Variables ¶
var APIVersionSupported = Version(MinorSupported, PatchSupported)
APIVersionSupported is the back version until which deprecated features are still supported.
var BaseContext = apd.BaseContext.WithPrecision(24)
BaseContext is used as CUEs default context for arbitrary-precision decimals
var ErrIncomplete = errors.New("incomplete value")
ErrIncomplete can be used by builtins to signal the evaluation was incomplete.
var ErrInexact = errors.New("inexact subsumption")
var MakeInstance func(value interface{}) (instance interface{})
MakeInstance makes a new instance from a value.
Functions ¶
func FileComment ¶
func FileComment(f *ast.File) *ast.CommentGroup
func IsBulkField ¶
func IsDefOrHidden ¶
func IsDefinition ¶
func IsEllipsis ¶
IsEllipsis reports whether the declaration can be represented as an ellipsis.
func IsRegularField ¶
func ListEllipsis ¶
ListEllipsis reports the list type and remaining elements of a list. If we ever relax the usage of ellipsis, this function will likely change. Using this function will ensure keeping correct behavior or causing a compiler failure.
func NewComment ¶
func NewComment(isDoc bool, s string) *ast.CommentGroup
NewComment creates a new CommentGroup from the given text. Each line is prefixed with "//" and the last newline is removed. Useful for ASTs generated by code other than the CUE parser.
func ToExpr ¶
ToExpr converts a node to an expression. If it is a file, it will return it as a struct. If is an expression, it will return it as is. Otherwise it panics.