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 DecorateError ¶ added in v0.1.0
func DecorateError(info error, err errors.Error) errors.Error
func EmbedStruct ¶ added in v0.2.0
func EmbedStruct(s *ast.StructLit) *ast.EmbedDecl
func FileComment ¶ added in v0.2.0
func FileComment(f *ast.File) *ast.CommentGroup
func GenPath ¶ added in v0.1.0
func GenPath(root string) string
GenPath reports the directory in which to store generated files.
func IsBulkField ¶ added in v0.2.0
func IsBulkField(d ast.Decl) bool
func IsDefOrHidden ¶ added in v0.2.0
func IsDefOrHidden(s string) bool
func IsDefinition ¶ added in v0.2.0
func IsDefinition(label ast.Label) bool
func IsEllipsis ¶ added in v0.1.0
func IsEllipsis(x ast.Decl) bool
IsEllipsis reports whether the declaration can be represented as an ellipsis.
func IsRegularField ¶ added in v0.2.0
func IsRegularField(f *ast.Field) bool
func ListEllipsis ¶ added in v0.0.6
func ListEllipsis(n *ast.ListLit) (elts []ast.Expr, e *ast.Ellipsis)
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 ¶ added in v0.1.0
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 PackageInfo
deprecated
added in
v0.0.6
func PackageInfo(f *ast.File) (p *ast.Package, name string, tok token.Pos)
Deprecated: use GetPackageInfo
func SetPackage ¶ added in v0.2.0
func SetPackage(f *ast.File, name string, overwrite bool)
func ToExpr ¶ added in v0.1.0
func ToExpr(n ast.Node) ast.Expr
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 ¶ added in v0.1.0
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 ¶ added in v0.1.0
func NewNonExisting(key string) Attr
NewNonExisting creates a non-existing attribute.
func ParseAttrBody ¶ added in v0.1.0
func ParseAttrBody(pos token.Pos, s string) (a Attr)
func (*Attr) Flag ¶ added in v0.1.0
func (a *Attr) Flag(pos int, key string) (bool, error)
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 ¶ added in v0.1.0
func (a *Attr) Int(pos int) (int64, error)
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.
func (*Attr) Lookup ¶ added in v0.1.0
func (a *Attr) Lookup(pos int, key string) (val string, found bool, err error)
Lookup searches for an entry of the form key=value from position pos onwards and reports the value if found. It reports an error if the attribute is invalid or if the first pos-1 entries are not defined.
type AttrKind ¶ added in v0.3.0
type AttrKind uint8
AttrKind indicates the location of an attribute within CUE source.
const (
// FieldAttr indicates an attribute is a field attribute.
// foo: bar @attr()
FieldAttr AttrKind = 1 << iota
// DeclAttr indicates an attribute was specified at a declaration position.
// foo: {
// @attr()
// }
DeclAttr
)
type Decimal ¶ added in v0.0.5
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.
type PkgInfo ¶ added in v0.3.0
type PkgInfo struct {
Package *ast.Package
Index int // position in File.Decls
Name string
}
func GetPackageInfo ¶ added in v0.3.0
func GetPackageInfo(f *ast.File) PkgInfo
func (*PkgInfo) IsAnonymous ¶ added in v0.3.1
func (p *PkgInfo) IsAnonymous() bool
IsAnonymous reports whether the package is anonymous.
Directories
¶
Path | Synopsis |
---|---|
cmd
|
|
embedpkg
embedpkg accepts a [packages] argument (see 'go help packages') and creates a map[string][]byte for each package argument, a map that represents the GoFiles for that package.
|
embedpkg accepts a [packages] argument (see 'go help packages') and creates a map[string][]byte for each package argument, a map that represents the GoFiles for that package. |
qgo
qgo builds CUE builtin packages from Go packages.
|
qgo builds CUE builtin packages from Go packages. |
Package copy provides utilities to copy files and directories.
|
Package copy provides utilities to copy files and directories. |
core
|
|
adt
Package adt represents partially and fully evaluated CUE types.
|
Package adt represents partially and fully evaluated CUE types. |
convert
Package convert allows converting to and from Go values and Types.
|
Package convert allows converting to and from Go values and Types. |
debug
Package debug prints a given ADT node.
|
Package debug prints a given ADT node. |
dep
Package dep analyzes dependencies between values.
|
Package dep analyzes dependencies between values. |
subsume
Package subsume defines various subsumption relations.
|
Package subsume defines various subsumption relations. |
validate
Package validate collects errors from an evaluated Vertex.
|
Package validate collects errors from an evaluated Vertex. |
walk
walk provides functions for visiting the nodes of an ADT tree.
|
walk provides functions for visiting the nodes of an ADT tree. |
Package testing is a helper package for test packages in the CUE project.
|
Package testing is a helper package for test packages in the CUE project. |
Package source contains utility functions that standardize reading source bytes across cue packages.
|
Package source contains utility functions that standardize reading source bytes across cue packages. |
Package str provides string manipulation utilities.
|
Package str provides string manipulation utilities. |
Package task provides a registry for tasks to be used by commands.
|
Package task provides a registry for tasks to be used by commands. |
third_party
|
|
yaml
Package yaml implements YAML support for the Go language.
|
Package yaml implements YAML support for the Go language. |
Package value contains functions for converting values to internal types and various other Value-related utilities.
|
Package value contains functions for converting values to internal types and various other Value-related utilities. |