v2 – github.com/pelletier/go-toml/v2 Index | Files | Directories

package toml

import "github.com/pelletier/go-toml/v2"

Package civil implements types for civil time, a time-zone-independent representation of time that follows the rules of the proleptic Gregorian calendar with exactly 24-hour days, 60-minute hours, and 60-second minutes.

Because they lack location information, these types do not represent unique moments or intervals of time. Use time.Time for that purpose.

Index

Functions

func Marshal

func Marshal(v interface{}) ([]byte, error)

Marshal serializes a Go value as a TOML document.

It is a shortcut for Encoder.Encode() with the default options.

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

Types

type DecodeError

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

DecodeError represents an error encountered during the parsing or decoding of a TOML document.

In addition to the error message, it contains the position in the document where it happened, as well as a human-readable representation that shows where the error occurred in the document.

func (*DecodeError) Error

func (e *DecodeError) Error() string

Error returns the error message contained in the DecodeError.

func (*DecodeError) Position

func (e *DecodeError) Position() (row int, column int)

Position returns the (line, column) pair indicating where the error occurred in the document. Positions are 1-indexed.

func (*DecodeError) String

func (e *DecodeError) String() string

String returns the human-readable contextualized error. This string is multi-line.

type Decoder

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

Decoder reads and decode a TOML document from an input stream.

func NewDecoder

func NewDecoder(r io.Reader) *Decoder

NewDecoder creates a new Decoder that will read from r.

func (*Decoder) Decode

func (d *Decoder) Decode(v interface{}) error

Decode the whole content of r into v.

When a TOML local date is decoded into a time.Time, its value is represented in time.Local timezone.

Empty tables decoded in an interface{} create an empty initialized map[string]interface{}.

type Encoder

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

Encoder writes a TOML document to an output stream.

func NewEncoder

func NewEncoder(w io.Writer) *Encoder

NewEncoder returns a new Encoder that writes to w.

func (*Encoder) Encode

func (enc *Encoder) Encode(v interface{}) error

Encode writes a TOML representation of v to the stream.

If v cannot be represented to TOML it returns an error.

Encoding rules:

1. A top level slice containing only maps or structs is encoded as [[table array]].

2. All slices not matching rule 1 are encoded as [array]. As a result, any map or struct they contain is encoded as an {inline table}.

3. Nil interfaces and nil pointers are not supported.

4. Keys in key-values always have one part.

5. Intermediate tables are always printed.

By default, strings are encoded as literal string, unless they contain either a newline character or a single quote. In that case they are emited as quoted strings.

When encoding structs, fields are encoded in order of definition, with their exact name. The following struct tags are available:

`toml:"foo"`: changes the name of the key to use for the field to foo.

`multiline:"true"`: when the field contains a string, it will be emitted as
a quoted multi-line TOML string.

type LocalDate

type LocalDate struct {
	Year  int        // Year (e.g., 2014).
	Month time.Month // Month of the year (January = 1, ...).
	Day   int        // Day of the month, starting at 1.
}

A LocalDate represents a date (year, month, day).

This type does not include location information, and therefore does not describe a unique 24-hour timespan.

func LocalDateOf

func LocalDateOf(t time.Time) LocalDate

LocalDateOf returns the LocalDate in which a time occurs in that time's location.

func ParseLocalDate

func ParseLocalDate(s string) (LocalDate, error)

ParseLocalDate parses a string in RFC3339 full-date format and returns the date value it represents.

func (LocalDate) AddDays

func (d LocalDate) AddDays(n int) LocalDate

AddDays returns the date that is n days in the future. n can also be negative to go into the past.

func (LocalDate) After

func (d1 LocalDate) After(d2 LocalDate) bool

After reports whether d1 occurs after d2.

func (LocalDate) Before

func (d1 LocalDate) Before(d2 LocalDate) bool

Before reports whether d1 occurs before d2.

func (LocalDate) DaysSince

func (d LocalDate) DaysSince(s LocalDate) (days int)

DaysSince returns the signed number of days between the date and s, not including the end day. This is the inverse operation to AddDays.

func (LocalDate) In

func (d LocalDate) In(loc *time.Location) time.Time

In returns the time corresponding to time 00:00:00 of the date in the location.

In is always consistent with time.LocalDate, even when time.LocalDate returns a time on a different day. For example, if loc is America/Indiana/Vincennes, then both

time.LocalDate(1955, time.May, 1, 0, 0, 0, 0, loc)

and

civil.LocalDate{Year: 1955, Month: time.May, Day: 1}.In(loc)

return 23:00:00 on April 30, 1955.

In panics if loc is nil.

func (LocalDate) IsValid

func (d LocalDate) IsValid() bool

IsValid reports whether the date is valid.

func (LocalDate) MarshalText

func (d LocalDate) MarshalText() ([]byte, error)

MarshalText implements the encoding.TextMarshaler interface. The output is the result of d.String().

func (LocalDate) String

func (d LocalDate) String() string

String returns the date in RFC3339 full-date format.

func (*LocalDate) UnmarshalText

func (d *LocalDate) UnmarshalText(data []byte) error

UnmarshalText implements the encoding.TextUnmarshaler interface. The date is expected to be a string in a format accepted by ParseLocalDate.

type LocalDateTime

type LocalDateTime struct {
	Date LocalDate
	Time LocalTime
}

A LocalDateTime represents a date and time.

This type does not include location information, and therefore does not describe a unique moment in time.

func LocalDateTimeOf

func LocalDateTimeOf(t time.Time) LocalDateTime

LocalDateTimeOf returns the LocalDateTime in which a time occurs in that time's location.

func ParseLocalDateTime

func ParseLocalDateTime(s string) (LocalDateTime, error)

ParseLocalDateTime parses a string and returns the LocalDateTime it represents. ParseLocalDateTime accepts a variant of the RFC3339 date-time format that omits the time offset but includes an optional fractional time, as described in ParseLocalTime. Informally, the accepted format is

YYYY-MM-DDTHH:MM:SS[.FFFFFFFFF]

where the 'T' may be a lower-case 't'.

func (LocalDateTime) After

func (dt1 LocalDateTime) After(dt2 LocalDateTime) bool

After reports whether dt1 occurs after dt2.

func (LocalDateTime) Before

func (dt1 LocalDateTime) Before(dt2 LocalDateTime) bool

Before reports whether dt1 occurs before dt2.

func (LocalDateTime) In

func (dt LocalDateTime) In(loc *time.Location) time.Time

In returns the time corresponding to the LocalDateTime in the given location.

If the time is missing or ambigous at the location, In returns the same result as time.LocalDate. For example, if loc is America/Indiana/Vincennes, then both

time.LocalDate(1955, time.May, 1, 0, 30, 0, 0, loc)

and

civil.LocalDateTime{
    civil.LocalDate{Year: 1955, Month: time.May, Day: 1}},
    civil.LocalTime{Minute: 30}}.In(loc)

return 23:30:00 on April 30, 1955.

In panics if loc is nil.

func (LocalDateTime) IsValid

func (dt LocalDateTime) IsValid() bool

IsValid reports whether the datetime is valid.

func (LocalDateTime) MarshalText

func (dt LocalDateTime) MarshalText() ([]byte, error)

MarshalText implements the encoding.TextMarshaler interface. The output is the result of dt.String().

func (LocalDateTime) String

func (dt LocalDateTime) String() string

String returns the date in the format described in ParseLocalDate.

func (*LocalDateTime) UnmarshalText

func (dt *LocalDateTime) UnmarshalText(data []byte) error

UnmarshalText implements the encoding.TextUnmarshaler interface. The datetime is expected to be a string in a format accepted by ParseLocalDateTime

type LocalTime

type LocalTime struct {
	Hour       int // The hour of the day in 24-hour format; range [0-23]
	Minute     int // The minute of the hour; range [0-59]
	Second     int // The second of the minute; range [0-59]
	Nanosecond int // The nanosecond of the second; range [0-999999999]
}

A LocalTime represents a time with nanosecond precision.

This type does not include location information, and therefore does not describe a unique moment in time.

This type exists to represent the TIME type in storage-based APIs like BigQuery. Most operations on Times are unlikely to be meaningful. Prefer the LocalDateTime type.

func LocalTimeOf

func LocalTimeOf(t time.Time) LocalTime

LocalTimeOf returns the LocalTime representing the time of day in which a time occurs in that time's location. It ignores the date.

func ParseLocalTime

func ParseLocalTime(s string) (LocalTime, error)

ParseLocalTime parses a string and returns the time value it represents. ParseLocalTime accepts an extended form of the RFC3339 partial-time format. After the HH:MM:SS part of the string, an optional fractional part may appear, consisting of a decimal point followed by one to nine decimal digits. (RFC3339 admits only one digit after the decimal point).

func (LocalTime) IsValid

func (t LocalTime) IsValid() bool

IsValid reports whether the time is valid.

func (LocalTime) MarshalText

func (t LocalTime) MarshalText() ([]byte, error)

MarshalText implements the encoding.TextMarshaler interface. The output is the result of t.String().

func (LocalTime) String

func (t LocalTime) String() string

String returns the date in the format described in ParseLocalTime. If Nanoseconds is zero, no fractional part will be generated. Otherwise, the result will end with a fractional part consisting of a decimal point and nine digits.

func (*LocalTime) UnmarshalText

func (t *LocalTime) UnmarshalText(data []byte) error

UnmarshalText implements the encoding.TextUnmarshaler interface. The time is expected to be a string in a format accepted by ParseLocalTime.

Source Files

decode.go errors.go localtime.go marshaler.go parser.go scanner.go targets.go unmarshaler.go

Directories

PathSynopsis
internal
Version
v2.0.0-alpha.1
Published
Apr 15, 2021
Platform
darwin/amd64
Imports
16 packages
Last checked
now

Tools for package owners.