streaming

package
v0.0.0-...-d63e69c Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package streaming implements encoder and decoder for streams of runtime.Objects over io.Writer/Readers.

Index

Constants

This section is empty.

Variables

View Source
var ErrObjectTooLarge = fmt.Errorf("object to decode was longer than maximum allowed size")

Functions

This section is empty.

Types

type Decoder

type Decoder interface {
	// Decode will return io.EOF when no more objects are available.
	Decode(defaults *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error)
	// Close closes the underlying stream.
	Close() error
}

Decoder is a runtime.Decoder from a stream.

func NewDecoder

func NewDecoder(r io.ReadCloser, d runtime.Decoder) Decoder

NewDecoder creates a streaming decoder that reads object chunks from r and decodes them with d. The reader is expected to return ErrShortRead if the provided buffer is not large enough to read an entire object.

type Encoder

type Encoder interface {
	// Encode will write the provided object to the stream or return an error. It obeys the same
	// contract as runtime.VersionedEncoder.
	Encode(obj runtime.Object) error
}

Encoder is a runtime.Encoder on a stream.

func NewEncoder

func NewEncoder(w io.Writer, e runtime.Encoder) Encoder

NewEncoder returns a new streaming encoder.

func NewEncoderWithAllocator

func NewEncoderWithAllocator(w io.Writer, e runtime.EncoderWithAllocator, a runtime.MemoryAllocator) Encoder

NewEncoderWithAllocator returns a new streaming encoder

type Serializer

type Serializer interface {
	NewEncoder(w io.Writer) Encoder
	NewDecoder(r io.ReadCloser) Decoder
}

Serializer is a factory for creating encoders and decoders that work over streams.

Jump to

Keyboard shortcuts

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