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.
Index ¶
- Constants
- Variables
- func ConstraintToken(f *ast.Field) (t token.Token, ok bool)
- 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)
- func SetConstraint(f *ast.Field, t token.Token)
- 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 Attr
- func NewNonExisting(key string) Attr
- func ParseAttrBody(pos token.Pos, s string) (a Attr)
- func (a *Attr) Flag(pos int, key string) (bool, error)
- func (a *Attr) Int(pos int) (int64, error)
- func (a *Attr) Lookup(pos int, key string) (val string, found bool, err error)
- func (a *Attr) String(pos int) (string, error)
- type AttrKind
- type Context
- func (c Context) Quo(d, x, y *apd.Decimal) (apd.Condition, error)
- func (c Context) Sqrt(d, x *apd.Decimal) (apd.Condition, error)
- func (c Context) WithPrecision(p uint32) Context
- type Decimal
- type KeyValue
- func (kv *KeyValue) Key() string
- func (kv *KeyValue) Text() string
- func (kv *KeyValue) Value() string
- 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 = Context{*apd.BaseContext.WithPrecision(34)}
BaseContext is used as CUE's default context for arbitrary-precision decimals.
ErrIncomplete can be used by builtins to signal the evaluation was incomplete.
var MakeInstance func(value interface{}) (instance interface{})
MakeInstance makes a new instance from a value.
Functions ¶
func ConstraintToken ¶
ConstraintToken reports which constraint token (? or !) is associated with a field (if any), taking into account compatibility of deprecated fields.
func DecorateError ¶
func EmbedStruct ¶
func FileComment ¶
func FileComment(f *ast.File) *ast.CommentGroup
func GenPath ¶
GenPath reports the directory in which to store generated files.
func IsBulkField ¶
func IsDef ¶
func IsDefOrHidden ¶
func IsDefinition ¶
func IsEllipsis ¶
IsEllipsis reports whether the declaration can be represented as an ellipsis.
func IsHidden ¶
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 NewAttr ¶
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 ¶
Deprecated: use GetPackageInfo
func SetConstraint ¶
SetConstraints sets both the main and deprecated fields of f according to the given constraint token.
func SetPackage ¶
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.
func ToFile ¶
ToFile converts an expression to a file.
Adjusts the spacing of x when needed.
func ToStruct ¶
ToStruct gets the non-preamble declarations of a file and puts them in a struct.
func Version ¶
Types ¶
type Attr ¶
type Attr struct { Name string // e.g. "json" or "protobuf" Body string Kind AttrKind Fields []KeyValue Err errors.Error }
Attr holds positional information for a single Attr.
func NewNonExisting ¶
NewNonExisting creates a non-existing attribute.
func ParseAttrBody ¶
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.
func (*Attr) Lookup ¶
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 ¶
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 AttrKind ¶
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 Context ¶
type Context struct { apd.Context }
Context wraps apd.Context for CUE's custom logic.
Note that it avoids pointers to make it easier to make copies.
func (Context) Quo ¶
func (Context) Sqrt ¶
func (Context) WithPrecision ¶
WithPrecision mirrors upstream, but returning our type without a pointer.
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.
type KeyValue ¶
type KeyValue struct {
// contains filtered or unexported fields
}
func (*KeyValue) Key ¶
func (*KeyValue) Text ¶
func (*KeyValue) Value ¶
type PkgInfo ¶
func GetPackageInfo ¶
func (*PkgInfo) IsAnonymous ¶
IsAnonymous reports whether the package is anonymous.
Source Files ¶
attrs.go internal.go
Directories ¶
Path | Synopsis |
---|---|
internal/astinternal | |
internal/ci | |
internal/cli | |
internal/copy | Package copy provides utilities to copy files and directories. |
internal/core | |
internal/core/adt | Package adt represents partially and fully evaluated CUE types. |
internal/core/compile | |
internal/core/convert | Package convert allows converting to and from Go values and Types. |
internal/core/debug | Package debug prints a given ADT node. |
internal/core/dep | Package dep analyzes dependencies between values. |
internal/core/eval | |
internal/core/export | |
internal/core/path | Package path provides utilities for converting cue.Selectors and cue.Paths to internal equivalents. |
internal/core/runtime | |
internal/core/subsume | Package subsume defines various subsumption relations. |
internal/core/validate | Package validate collects errors from an evaluated Vertex. |
internal/core/walk | walk provides functions for visiting the nodes of an ADT tree. |
internal/cuetest | Package testing is a helper package for test packages in the CUE project. |
internal/cuetxtar | |
internal/diff | |
internal/encoding | |
internal/encoding/json | |
internal/encoding/yaml | |
internal/filetypes | |
internal/pkg | |
internal/source | Package source contains utility functions that standardize reading source bytes across cue packages. |
internal/str | Package str provides string manipulation utilities. |
internal/task | Package task provides a registry for tasks to be used by commands. |
internal/tdtest | Package tdtest provides support for table-driven testing. |
internal/third_party | |
internal/third_party/yaml | Package yaml implements YAML support for the Go language. |
internal/types | |
internal/value | Package value contains functions for converting values to internal types and various other Value-related utilities. |
- Version
- v0.6.0-alpha.2
- Published
- Jun 28, 2023
- Platform
- linux/amd64
- Imports
- 13 packages
- Last checked
- 2 hours ago –
Tools for package owners.