Documentation

Overview

    Package internal exposes some cue internals to other packages.

    A better name for this package would be technicaldebt.

    Index

    Constants

    View Source
    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

      View Source
      var BaseContext = apd.BaseContext.WithPrecision(24)

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

        View Source
        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.

          View Source
          var DebugStr func(x interface{}) string

            DebugStr prints a syntax node.

            View Source
            var ErrIncomplete = errors.New("incomplete value")

              ErrIncomplete can be used by builtins to signal the evaluation was incomplete.

              View Source
              var ErrInexact = errors.New("inexact subsumption")
              View Source
              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

              View Source
              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.

                View Source
                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.

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

                    GetRuntime reports the runtime for an Instance or Value.

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

                      MakeInstance makes a new instance from a value.

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

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

                        Functions

                        func DecorateError

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

                        func EmbedStruct

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

                        func FileComment

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

                        func GenPath

                        func GenPath(root string) string

                          GenPath reports the directory in which to store generated files.

                          func Imports

                          func Imports(f *ast.File) (a []ast.Decl)

                          func IsBulkField

                          func IsBulkField(d ast.Decl) bool

                          func IsDef

                          func IsDef(s string) bool

                          func IsDefOrHidden

                          func IsDefOrHidden(s string) bool

                          func IsDefinition

                          func IsDefinition(label ast.Label) bool

                          func IsEllipsis

                          func IsEllipsis(x ast.Decl) bool

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

                            func IsHidden

                            func IsHidden(s string) bool

                            func IsRegularField

                            func IsRegularField(f *ast.Field) bool

                            func ListEllipsis

                            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

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

                              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 PackageInfo

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

                                func SetPackage

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

                                func ToExpr

                                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

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

                                    ToFile converts an expression to a file.

                                    Adjusts the spacing of x when needed.

                                    func ToStruct

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

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

                                      Types

                                      type Attr

                                      type Attr struct {
                                      	Fields []keyValue
                                      	Err    error
                                      }

                                        Attr holds positional information for a single Attr.

                                        func NewNonExisting

                                        func NewNonExisting(key string) Attr

                                          NewNonExisting creates a non-existing attribute.

                                          func ParseAttrBody

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

                                          func (*Attr) Flag

                                          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

                                            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

                                              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

                                                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

                                                  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.

                                                    Directories

                                                    Path Synopsis
                                                    cmd
                                                    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.
                                                    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 walk allows walking over CUE values.
                                                    Package walk allows walking over CUE values.