emitter

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2023 License: MIT Imports: 6 Imported by: 0

README

go-emitter

Alternative Go library for streaming generation of JSON

Documentation

Overview

Package emitter is a library for generating byte streams of JSON and similar data formats.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Appender

type Appender = appenders.Appender

type Emitter

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

func New

func New(w io.Writer, g Generator) *Emitter

func (*Emitter) BytesWritten

func (e *Emitter) BytesWritten() int64

func (*Emitter) Close

func (e *Emitter) Close() error

func (*Emitter) Emit

func (e *Emitter) Emit(value any)

func (*Emitter) EmitBigFloat

func (e *Emitter) EmitBigFloat(value *big.Float)

func (*Emitter) EmitBigInt

func (e *Emitter) EmitBigInt(value *big.Int)

func (*Emitter) EmitBool

func (e *Emitter) EmitBool(value bool)

func (*Emitter) EmitByte

func (e *Emitter) EmitByte(value byte)

func (*Emitter) EmitBytes

func (e *Emitter) EmitBytes(value []byte)

func (*Emitter) EmitFloat32

func (e *Emitter) EmitFloat32(value float32)

func (*Emitter) EmitFloat64

func (e *Emitter) EmitFloat64(value float64)

func (*Emitter) EmitInt

func (e *Emitter) EmitInt(value int)

func (*Emitter) EmitInt16

func (e *Emitter) EmitInt16(value int16)

func (*Emitter) EmitInt32

func (e *Emitter) EmitInt32(value int32)

func (*Emitter) EmitInt64

func (e *Emitter) EmitInt64(value int64)

func (*Emitter) EmitInt8

func (e *Emitter) EmitInt8(value int8)

func (*Emitter) EmitKey

func (e *Emitter) EmitKey(key string)

func (*Emitter) EmitNull

func (e *Emitter) EmitNull()

func (*Emitter) EmitReflected

func (e *Emitter) EmitReflected(value reflect.Value)

func (*Emitter) EmitRune

func (e *Emitter) EmitRune(value rune)

func (*Emitter) EmitString

func (e *Emitter) EmitString(value string)

func (*Emitter) EmitUint

func (e *Emitter) EmitUint(value uint)

func (*Emitter) EmitUint16

func (e *Emitter) EmitUint16(value uint16)

func (*Emitter) EmitUint32

func (e *Emitter) EmitUint32(value uint32)

func (*Emitter) EmitUint64

func (e *Emitter) EmitUint64(value uint64)

func (*Emitter) EmitUint8

func (e *Emitter) EmitUint8(value uint8)

func (*Emitter) EmitValue

func (e *Emitter) EmitValue(value Value)

func (*Emitter) EndArray

func (e *Emitter) EndArray()

func (*Emitter) EndObject

func (e *Emitter) EndObject()

func (*Emitter) Flush

func (e *Emitter) Flush() error

func (*Emitter) Generator

func (e *Emitter) Generator() Generator

func (*Emitter) Reset

func (e *Emitter) Reset(w io.Writer, g Generator)

func (*Emitter) StartArray

func (e *Emitter) StartArray()

func (*Emitter) StartObject

func (e *Emitter) StartObject()

func (*Emitter) Writer

func (e *Emitter) Writer() io.Writer

type Generator

type Generator interface {
	Reset()
	Factory() GeneratorFactory

	Begin() []Appender
	End() []Appender

	StartObject() []Appender
	EndObject() []Appender

	StartArray() []Appender
	EndArray() []Appender

	Key(key string) []Appender

	NullValue() []Appender

	BoolValue(value bool) []Appender

	IntValue(value int64) []Appender
	UintValue(value uint64) []Appender
	BigIntValue(value *big.Int) []Appender

	NaNValue() []Appender
	InfValue(isNeg bool) []Appender
	FloatValue(value float64) []Appender
	BigFloatValue(value *big.Float) []Appender

	StringValue(value string) []Appender
	BytesValue(value []byte) []Appender
	ByteValue(value byte) []Appender
	RuneValue(value rune) []Appender
}

type GeneratorFactory

type GeneratorFactory interface {
	NewGenerator() Generator
}

type Value

type Value interface {
	EmitTo(*Emitter)
}

Directories

Path Synopsis
Package appenders contains stock Appender types for writing your own Generator.
Package appenders contains stock Appender types for writing your own Generator.
Package json implements the JSON format for Emitter.
Package json implements the JSON format for Emitter.
Package states contains a state machine for writing your own Generator.
Package states contains a state machine for writing your own Generator.
Package values provides simple Go types that implement Value.
Package values provides simple Go types that implement Value.

Jump to

Keyboard shortcuts

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