input

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 15, 2022 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Overview

package input handles parsing input data for later processing by Rego.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CSVHandler

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

CSVHandler implements a CSV input Handler.

The following options are supported:

csv:comma (rune) the comma-character to use (default: ,)

csv:comment (rune) the comment leader character to use (default: none)

csv:skip_lines (int) number of leading lines to skip, ignored if negative (default: 0)

csv:headers (bool) if true, the first row is treated as headers and used to generate object keys for the remaining rows (default: false)

csv:infer (bool) if true, attempt to convert boolean, integer, or floating point values in the CSV to those types before serialization, otherwise leave all values as strings (default: true)

func (*CSVHandler) Name

func (c *CSVHandler) Name() string

Name implements Handler.Name().

func (*CSVHandler) Parse

func (c *CSVHandler) Parse(reader io.Reader) (interface{}, error)

Parse implements Handler.Parse().

func (*CSVHandler) SetOption

func (c *CSVHandler) SetOption(name string, value interface{}) error

SetOption implements Handler.SetOption().

type Handler

type Handler interface {

	// Parse consumes input from a reader and unmarshals it into an
	// interface. This will later be passed to ast.InterfaceToValue()
	// for consumption by Rego.
	Parse(reader io.Reader) (interface{}, error)

	// SetOption specifies an option to control how the handler should
	// behave. Setting options that the handler does not implement should
	// cause SetOption to return nil, this way the CLI handling logic does
	// not have to determine which handler is being used before deciding
	// which options to try to set.
	SetOption(name string, value interface{}) error

	// Name should return the name of this handler, e.g. "json" or "csv".
	Name() string
}

Handler represents a handler for one type of input format, such as JSON or CSV.

func SelectHandler

func SelectHandler(name string) (Handler, error)

SelectHandler chooses a handler based on the name provided.

If name is the empty string, then it default to "yaml".

type JSONHandler

type JSONHandler struct{}

JSONHandler handles parsing JSON data.

func (*JSONHandler) Name

func (j *JSONHandler) Name() string

Name implements Handler.Name().

func (*JSONHandler) Parse

func (j *JSONHandler) Parse(reader io.Reader) (interface{}, error)

Parse implements Handler.Parse().

func (*JSONHandler) SetOption

func (j *JSONHandler) SetOption(name string, value interface{}) error

SetOption implements Handler.SetOption().

type YAMLHandler

type YAMLHandler struct{}

YAMLHandler handles parsing YAML data.

func (*YAMLHandler) Name

func (y *YAMLHandler) Name() string

Name implements Handler.Name().

func (*YAMLHandler) Parse

func (y *YAMLHandler) Parse(reader io.Reader) (interface{}, error)

Parse implements Handler.Parse().

func (*YAMLHandler) SetOption

func (y *YAMLHandler) SetOption(name string, value interface{}) error

SetOption implements Handler.SetOption().

Jump to

Keyboard shortcuts

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