literal

package
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 29, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package literal implements conversions to and from string representations of basic data types.

Index

Constants

View Source
const (
	K = mulDec | mul1
	M = mulDec | mul2
	G = mulDec | mul3
	T = mulDec | mul4
	P = mulDec | mul5
	E = mulDec | mul6
	Z = mulDec | mul7
	Y = mulDec | mul8

	Ki = mulBin | mul1
	Mi = mulBin | mul2
	Gi = mulBin | mul3
	Ti = mulBin | mul4
	Pi = mulBin | mul5
	Ei = mulBin | mul6
	Zi = mulBin | mul7
	Yi = mulBin | mul8
)

Variables

This section is empty.

Functions

func IndentTabs

func IndentTabs(s string, n int) string

IndentTabs takes a quoted string and reindents it for the given indentation. If a string is not a multiline string it will return the string as is.

func ParseNum

func ParseNum(s string, n *NumInfo) error

ParseNum parses s and populates NumInfo with the result.

func Unquote

func Unquote(s string) (string, error)

Unquote interprets s as a single- or double-quoted, single- or multi-line string, possibly with custom escape delimiters, returning the string value that s quotes.

Types

type Form

type Form struct {
	// contains filtered or unexported fields
}

Form defines how to quote a string or bytes literal.

var (
	// String defines the format of a CUE string. Conversions may be lossy.
	String Form = stringForm

	// Label is like Text, but optimized for labels.
	Label Form = stringForm

	// Bytes defines the format of bytes literal.
	Bytes Form = bytesForm
)

func (Form) Append

func (f Form) Append(buf []byte, s string) []byte

Append appends a CUE string literal representing s, as generated by Quote, to buf and returns the extended buffer.

func (Form) AppendEscaped

func (f Form) AppendEscaped(buf []byte, s string) []byte

AppendEscaped appends a CUE string literal representing s, as generated by Quote but without the quotes, to buf and returns the extended buffer.

It does not include the last indentation.

func (Form) Quote

func (f Form) Quote(s string) string

Quote returns CUE string literal representing s. The returned string uses CUE escape sequences (\t, \n, \u00FF, \u0100) for control characters and non-printable characters as defined by strconv.IsPrint.

It reports an error if the string cannot be converted to the desired form.

func (Form) WithASCIIOnly

func (f Form) WithASCIIOnly() Form

WithASCIIOnly ensures the quoted strings consists solely of valid ASCII characters.

func (Form) WithGraphicOnly

func (f Form) WithGraphicOnly() Form

WithGraphicOnly ensures the quoted strings consists solely of printable characters.

func (Form) WithOptionalTabIndent

func (f Form) WithOptionalTabIndent(tabs int) Form

WithOptionalIndent is like WithTabIndent, but only returns a multiline strings if it doesn't contain any newline characters.

func (Form) WithTabIndent

func (f Form) WithTabIndent(n int) Form

WithTabIndent returns a new Form with indentation set to the given number of tabs. The result will be a multiline string.

type Multiplier

type Multiplier byte

A Multiplier indicates a multiplier indicator used in the literal.

type NumInfo

type NumInfo struct {
	UseSep bool
	// contains filtered or unexported fields
}

NumInfo contains information about a parsed numbers.

Reusing a NumInfo across parses may avoid memory allocations.

func (*NumInfo) Decimal

func (p *NumInfo) Decimal(v *decimal) error

Decimal is for internal use.

func (*NumInfo) IsInt

func (p *NumInfo) IsInt() bool

IsInt reports whether the number is an integral number.

func (*NumInfo) Multiplier

func (p *NumInfo) Multiplier() Multiplier

Multiplier reports which multiplier was used in an integral number.

func (*NumInfo) String

func (p *NumInfo) String() string

String returns a canonical string representation of the number so that it can be parsed with math.Float.Parse.

type QuoteInfo

type QuoteInfo struct {
	// contains filtered or unexported fields
}

QuoteInfo describes the type of quotes used for a string.

func ParseQuotes

func ParseQuotes(start, end string) (q QuoteInfo, nStart, nEnd int, err error)

ParseQuotes checks if the opening quotes in start matches the ending quotes in end and reports its type as q or an error if they do not matching or are invalid. nStart indicates the number of bytes used for the opening quote.

func (QuoteInfo) IsDouble

func (q QuoteInfo) IsDouble() bool

IsDouble reports whether the literal uses double quotes.

func (QuoteInfo) IsMulti

func (q QuoteInfo) IsMulti() bool

IsMulti reports whether a multi-line string was parsed.

func (QuoteInfo) Unquote

func (q QuoteInfo) Unquote(s string) (string, error)

Unquote unquotes the given string. It must be terminated with a quote or an interpolation start. Escape sequences are expanded and surrogates are replaced with the corresponding non-surrogate code points.

func (QuoteInfo) Whitespace

func (q QuoteInfo) Whitespace() string

Whitespace returns prefix whitespace for multiline strings.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL