json

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2023 License: MIT Imports: 9 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ToTypeInfo requests type information for a type.
	ToTypeInfo = miruken.To("type:info")

	// KnownTypeFields holds the list of json property names
	// that can contain type discriminators.
	KnownTypeFields = []string{"$type", "@type"}
)
View Source
var (
	// Polymorphic returns a miruken.Builder that enables polymorphic messaging.
	Polymorphic miruken.Builder = miruken.Options(api.PolymorphicOptions{
		PolymorphicHandling: miruken.Set(api.PolymorphicHandlingRoot),
	})
)

Functions

func Feature

func Feature(
	config ...func(installer *Installer),
) miruken.Feature

func StdFormat

func StdFormat(prefix, indent string) miruken.Builder

StdFormat returns a miruken.Builder for controlling indentation and formatting.

func StdTransform

func StdTransform(transformers ...transform.Transformer) miruken.Builder

StdTransform returns a miruken.Builder that applies all transformations.

func UseStandard

func UseStandard() func(installer *Installer)

func UseStandardWithOptions

func UseStandardWithOptions(options StdOptions) func(installer *Installer)

Types

type GoTypeFieldMapper

type GoTypeFieldMapper struct{}

GoTypeFieldMapper provides TypeFieldInfo from fully qualified package and name.

func (*GoTypeFieldMapper) GoTypeInfo

func (m *GoTypeFieldMapper) GoTypeInfo(
	_ *struct {
		miruken.Maps
		miruken.Format `to:"type:info"`
	}, maps *miruken.Maps,
) (TypeFieldInfo, error)

type Installer

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

Installer configure json support.

func (*Installer) Install

func (i *Installer) Install(setup *miruken.SetupBuilder) error

func (*Installer) UseStandard

func (i *Installer) UseStandard(options *StdOptions)

type StdMapper

type StdMapper struct{}

StdMapper formats to and from json using encoding/json.

func (*StdMapper) FromJson

func (m *StdMapper) FromJson(
	_ *struct {
		miruken.Maps
		miruken.Format `from:"application/json"`
	}, jsonString string,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, options StdOptions,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, polyOptions api.PolymorphicOptions,
	maps *miruken.Maps,
	ctx miruken.HandleContext,
) (any, error)

func (*StdMapper) FromJsonStream

func (m *StdMapper) FromJsonStream(
	_ *struct {
		miruken.Maps
		miruken.Format `from:"application/json"`
	}, stream io.Reader,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, options StdOptions,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, polyOptions api.PolymorphicOptions,
	maps *miruken.Maps,
	ctx miruken.HandleContext,
) (any, error)

func (*StdMapper) ToJson

func (m *StdMapper) ToJson(
	_ *struct {
		miruken.Maps
		miruken.Format `to:"application/json"`
	}, maps *miruken.Maps,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, options StdOptions,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, polyOptions api.PolymorphicOptions,
	ctx miruken.HandleContext,
) (js string, err error)

func (*StdMapper) ToJsonStream

func (m *StdMapper) ToJsonStream(
	_ *struct {
		miruken.Maps
		miruken.Format `to:"application/json"`
	}, maps *miruken.Maps,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, options StdOptions,
	_ *struct {
		miruken.Optional
		miruken.FromOptions
	}, polyOptions api.PolymorphicOptions,
	ctx miruken.HandleContext,
) (stream io.Writer, err error)

type StdOptions

type StdOptions struct {
	Prefix       string
	Indent       string
	EscapeHTML   miruken.Option[bool]
	Transformers []transform.Transformer
}

StdOptions provide options for controlling json encoding.

type TypeFieldInfo

type TypeFieldInfo struct {
	Field string
	Value string
}

TypeFieldInfo defines the metadata for describing polymorphic messages.

Jump to

Keyboard shortcuts

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