go: cuelang.org/go/internal Index | Files | Directories

package internal

import "cuelang.org/go/internal"

Package internal exposes some cue internals to other packages.

A better name for this package would be technicaldebt.


Package Files

attrs.go internal.go


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.


var BaseContext = apd.BaseContext.WithPrecision(24)

BaseContext is used as CUEs default context for arbitrary-precision decimals

var CheckAndForkRuntime func(runtime, value interface{}) interface{}

CheckAndForkRuntime checks that value is created using runtime, panicking if it does not, and returns a forked runtime that will discard additional keys.

var CoreValue func(value interface{}) (runtime, vertex interface{})

CoreValue returns an *runtime.Index and *adt.Vertex for a cue.Value. It returns nil if value is not a cue.Value.

var DebugStr func(x interface{}) string

DebugStr prints a syntax node.

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 EvalExpr func(value, expr interface{}) (result interface{})

EvalExpr evaluates an expression within an existing struct value. Identifiers only resolve to values defined within the struct.

Expressions may refer to builtin packages if they can be uniquely identified

Both value and result are of type cue.Value, but are an interface to prevent cyclic dependencies.

TODO: extract interface

var FromGoType func(instance, x interface{}) interface{}

FromGoType converts an arbitrary Go type to the corresponding CUE value. instance must be of type *cue.Instance. The returned value is a cue.Value, which the caller must cast to.

var FromGoValue func(instance, x interface{}, allowDefault bool) interface{}

FromGoValue converts an arbitrary Go value to the corresponding CUE value. instance must be of type *cue.Instance. The returned value is a cue.Value, which the caller must cast to.

var GetRuntime func(instance interface{}) interface{}

GetRuntime reports the runtime for an Instance or Value.

var MakeInstance func(value interface{}) (instance interface{})

MakeInstance makes a new instance from a value.

var UnifyBuiltin func(v interface{}, kind string) interface{}

UnifyBuiltin returns the given Value unified with the given builtin template.

func DecorateError Uses

func DecorateError(info error, err errors.Error) errors.Error

func EmbedStruct Uses

func EmbedStruct(s *ast.StructLit) *ast.EmbedDecl

func FileComment Uses

func FileComment(f *ast.File) *ast.CommentGroup

func GenPath Uses

func GenPath(root string) string

GenPath reports the directory in which to store generated files.

func IsBulkField Uses

func IsBulkField(d ast.Decl) bool

func IsDef Uses

func IsDef(s string) bool

func IsDefOrHidden Uses

func IsDefOrHidden(s string) bool

func IsDefinition Uses

func IsDefinition(label ast.Label) bool

func IsEllipsis Uses

func IsEllipsis(x ast.Decl) bool

IsEllipsis reports whether the declaration can be represented as an ellipsis.

func IsHidden Uses

func IsHidden(s string) bool

func IsRegularField Uses

func IsRegularField(f *ast.Field) bool

func ListEllipsis Uses

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 NewAttr Uses

func NewAttr(name, str string) *ast.Attribute

func NewComment Uses

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 Uses

func PackageInfo(f *ast.File) (p *ast.Package, name string, tok token.Pos)

func SetPackage Uses

func SetPackage(f *ast.File, name string, overwrite bool)

func ToExpr Uses

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.

func ToFile Uses

func ToFile(n ast.Node) *ast.File

ToFile converts an expression to a file.

Adjusts the spacing of x when needed.

func ToStruct Uses

func ToStruct(f *ast.File) *ast.StructLit

ToStruct gets the non-preamble declarations of a file and puts them in a struct.

type Attr Uses

type Attr struct {
    Fields []keyValue
    Err    error

Attr holds positional information for a single Attr.

func NewNonExisting Uses

func NewNonExisting(key string) Attr

NewNonExisting creates a non-existing attribute.

func ParseAttrBody Uses

func ParseAttrBody(pos token.Pos, s string) (a Attr)

func (*Attr) Flag Uses

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 Uses

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 Uses

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.

func (*Attr) String Uses

func (a *Attr) String(pos int) (string, error)

String reports the possibly empty string value at the given position or an error the attribute is invalid or if the position does not exist.

type Decimal Uses

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.


copyPackage copy provides utilities to copy files and directories.
core/adtPackage adt represents partially and fully evaluated CUE types.
core/convertPackage convert allows converting to and from Go values and Types.
core/debugPackage debug prints a given ADT node.
core/depPackage dep analyzes dependencies between values.
core/evalPackage eval contains the high level CUE evaluation strategy.
core/subsumePackage subsume defines various subsumption relations.
core/validatePackage validate collects errors from an evaluated Vertex.
sourcePackage source contains utility functions that standardize reading source bytes across cue packages.
strPackage str provides string manipulation utilities.
taskPackage task provides a registry for tasks to be used by commands.
third_party/yamlPackage yaml implements YAML support for the Go language.
walkPackage walk allows walking over CUE values.

Package internal imports 12 packages (graph) and is imported by 40 packages. Updated 2020-12-01. Refresh now. Tools for package owners.