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
- type Attr
- type AttrKind
- type Decimal
- type KeyValue
- type PkgInfo
Constants ¶
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 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.
Types ¶
type Attr ¶
type Attr struct { Name string // e.g. "json" or "protobuf" Body string Kind AttrKind Fields []KeyValue Err error }
Attr holds positional information for a single Attr.
func NewNonExisting ¶
NewNonExisting creates a non-existing attribute.
func (*Attr) Flag ¶
Flag reports whether an entry with the given name exists at position pos or onwards or an error if the attribute is invalid or if the first pos-1 entries are not defined.
func (*Attr) Int ¶
Int reports the integer at the given position or an error if the attribute is invalid, the position does not exist, or the value at the given position is not an integer.
type AttrKind ¶
type AttrKind uint8
AttrKind indicates the location of an attribute within CUE source.
type Decimal ¶
type Decimal = apd.Decimal
A Decimal is an arbitrary-precision binary-coded decimal number.
Right now Decimal is aliased to apd.Decimal. This may change in the future.