package trim

import "cuelang.org/go/tools/trim"

Package trim removes some redundant values from CUE sources.

The most common use of trim is to remove duplicate values from data where a definition now provides the same value. For example:

servers: [
	{role: "web", cpus: 1},
	{role: "db", cpus: 1},
	{role: "proxy", cpus: 1},
]

#server: {
	role: string
	cpus: 1
}

servers: [...#server]

Trim will simplify this to:

servers: [
	{role: "web"},
	{role: "db"},
	{role: "proxy"},
]

#server: {
	role: string
	cpus: 1
}

servers: [...#server]

This works with defaults too. Given:

servers: [
	{role: "web", cpus: 1},
	{role: "db", cpus: 4},
	{role: "proxy", cpus: 1},
]

#server: {
	role: string
	cpus: *1 | int
}

servers: [...#server]

Trim will simplify this to:

servers: [
	{role: "web"},
	{role: "db", cpus: 4},
	{role: "proxy"},
]

#server: {
	role: string
	cpus: *1 | int
}

servers: [...#server]

Index

Variables

var Debug bool = false

Functions

func Files

func Files(files []*ast.File, inst cue.InstanceOrValue, cfg *Config) error

Types

type Config

type Config struct {
	Trace       bool
	TraceWriter io.Writer
}

Config configures trim options.

Source Files

debug.go doc.go trim.go trimv2.go trimv3.go

Version
v0.13.0-alpha.3
Published
Mar 31, 2025
Platform
linux/amd64
Imports
18 packages
Last checked
1 hour ago

Tools for package owners.