xmlser

package
v0.7.0 Latest Latest
Warning

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

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

Documentation

Overview

Package xmlser provides types to read and write XML archives from the C++ Boost Serialization library.

Writing values to an output binary archive can be done like so:

enc := xmlser.NewEncoder(w)
err := enc.Encode("hello")

And reading values from an input binary archive:

dec := xmlser.NewDecoder(r)
str := ""
err := dec.Decode(&str)

For more informations, look at the examples for Encoder, Decoder and read/write Buffer.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotBoost         = errors.New("xmlser: not a Boost XML archive")
	ErrInvalidHeader    = errors.New("xmlser: invalid Boost XML archive header")
	ErrInvalidTypeDescr = errors.New("xmlser: invalid Boost XML archive type descriptor")
	ErrTypeNotSupported = errors.New("xmlser: type not supported")
	ErrInvalidArrayLen  = errors.New("xmlser: invalid array type")
)

Functions

This section is empty.

Types

type Decoder

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

A Decoder reads and decodes values from a Boost binary serialization stream.

func NewDecoder

func NewDecoder(r io.Reader) *Decoder

NewDecoder returns a new decoder that reads from r.

The decoder checks the stream has a correct Boost XML header.

func (*Decoder) Decode

func (dec *Decoder) Decode(ptr interface{}) error

Decode reads the next value from its input and stores it in the value pointed to by ptr.

type Header struct {
	Version uint16
}

Header describes a boost XML archive.

func (Header) MarshalBoostXML

func (hdr Header) MarshalBoostXML(w *WBuffer) error

func (*Header) UnmarshalBoostXML

func (hdr *Header) UnmarshalBoostXML(r *RBuffer) error

type Marshaler

type Marshaler interface {
	MarshalBoostXML(w *WBuffer) error
}

Marshaler is the interface implemented by types that can marshal themselves into a valid Boost serialization XML archive.

type RBuffer

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

A RBuffer reads values from a Boost binary serialization stream.

func NewRBuffer

func NewRBuffer(r io.Reader) *RBuffer

NewRBuffer returns a new read-only buffer that reads from r.

func (*RBuffer) Err

func (r *RBuffer) Err() error

func (*RBuffer) Read

func (r *RBuffer) Read(p []byte) (int, error)

func (*RBuffer) ReadBool

func (r *RBuffer) ReadBool() bool

func (*RBuffer) ReadC128

func (r *RBuffer) ReadC128() complex128

func (*RBuffer) ReadC64

func (r *RBuffer) ReadC64() complex64

func (*RBuffer) ReadF32

func (r *RBuffer) ReadF32() float32

func (*RBuffer) ReadF64

func (r *RBuffer) ReadF64() float64

func (*RBuffer) ReadHeader

func (r *RBuffer) ReadHeader() Header

func (*RBuffer) ReadI16

func (r *RBuffer) ReadI16() int16

func (*RBuffer) ReadI32

func (r *RBuffer) ReadI32() int32

func (*RBuffer) ReadI64

func (r *RBuffer) ReadI64() int64

func (*RBuffer) ReadI8

func (r *RBuffer) ReadI8() int8

func (*RBuffer) ReadString

func (r *RBuffer) ReadString() string

func (*RBuffer) ReadTypeDescr

func (r *RBuffer) ReadTypeDescr(typ reflect.Type) TypeDescr

func (*RBuffer) ReadU16

func (r *RBuffer) ReadU16() uint16

func (*RBuffer) ReadU32

func (r *RBuffer) ReadU32() uint32

func (*RBuffer) ReadU64

func (r *RBuffer) ReadU64() uint64

func (*RBuffer) ReadU8

func (r *RBuffer) ReadU8() uint8

type TypeDescr

type TypeDescr struct {
	Version uint32
	ID      int64
	Level   int64
}

TypeDescr describes an on-disk boost XML archive type.

func (TypeDescr) MarshalBoostXML

func (dt TypeDescr) MarshalBoostXML(w *WBuffer) error

func (*TypeDescr) UnmarshalBoostXML

func (dt *TypeDescr) UnmarshalBoostXML(r *RBuffer) error

type Unmarshaler

type Unmarshaler interface {
	UnmarshalBoostXML(r *RBuffer) error
}

Unmarshaler is the interface implemented by types that can unmarshal a Boost XML description of themselves.

type WBuffer

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

func NewWBuffer

func NewWBuffer(w io.Writer) *WBuffer

func (*WBuffer) Err

func (w *WBuffer) Err() error

func (*WBuffer) Write

func (w *WBuffer) Write(p []byte) (int, error)

func (*WBuffer) WriteBool

func (w *WBuffer) WriteBool(name string, v bool) error

func (*WBuffer) WriteC128

func (w *WBuffer) WriteC128(name string, v complex128) error

func (*WBuffer) WriteC64

func (w *WBuffer) WriteC64(name string, v complex64) error

func (*WBuffer) WriteF32

func (w *WBuffer) WriteF32(name string, v float32) error

func (*WBuffer) WriteF64

func (w *WBuffer) WriteF64(name string, v float64) error

func (*WBuffer) WriteHeader

func (w *WBuffer) WriteHeader(hdr Header) error

func (*WBuffer) WriteI16

func (w *WBuffer) WriteI16(name string, v int16) error

func (*WBuffer) WriteI32

func (w *WBuffer) WriteI32(name string, v int32) error

func (*WBuffer) WriteI64

func (w *WBuffer) WriteI64(name string, v int64) error

func (*WBuffer) WriteI8

func (w *WBuffer) WriteI8(name string, v int8) error

func (*WBuffer) WriteString

func (w *WBuffer) WriteString(n, v string) error

func (*WBuffer) WriteTypeDescr

func (w *WBuffer) WriteTypeDescr(rt reflect.Type) error

func (*WBuffer) WriteU16

func (w *WBuffer) WriteU16(name string, v uint16) error

func (*WBuffer) WriteU32

func (w *WBuffer) WriteU32(name string, v uint32) error

func (*WBuffer) WriteU64

func (w *WBuffer) WriteU64(name string, v uint64) error

func (*WBuffer) WriteU8

func (w *WBuffer) WriteU8(name string, v uint8) error

Jump to

Keyboard shortcuts

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