types

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2020 License: MIT Imports: 3 Imported by: 0

README

Run go generate to generate codes for Items

go generate

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EncodeItem

func EncodeItem(item Item) ([]byte, error)

EncodeItem convert Item to Row then encode row

func EncodeRow

func EncodeRow(row Row) ([]byte, error)

EncodeRow encode row

Types

type Item

type Item interface {
	Type() ItemType
	Clone() Item
	AsRow() (Row, error)
	Time() time.Time
	SetTime(t time.Time)
}

type ItemType

type ItemType int
const (
	TypeMapRecord ItemType = iota
	TypeTupleRecord
	TypeWatermark
)

func (*ItemType) DecodeMsg

func (z *ItemType) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (ItemType) EncodeMsg

func (z ItemType) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (ItemType) MarshalMsg

func (z ItemType) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (ItemType) Msgsize

func (z ItemType) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*ItemType) UnmarshalMsg

func (z *ItemType) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type MapRecord

type MapRecord struct {
	T time.Time
	K []interface{}
	V map[string]interface{}
}

func NewMapRecord

func NewMapRecord(t time.Time, v map[string]interface{}) *MapRecord

func NewRawMapRecord

func NewRawMapRecord(v map[string]interface{}) *MapRecord

func (*MapRecord) AsRow

func (m *MapRecord) AsRow() (Row, error)

func (*MapRecord) Clone

func (m *MapRecord) Clone() Item

func (*MapRecord) DecodeMsg

func (z *MapRecord) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*MapRecord) EncodeMsg

func (z *MapRecord) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*MapRecord) Get

func (m *MapRecord) Get(index interface{}) interface{}

func (*MapRecord) GetMany

func (m *MapRecord) GetMany(indexes ...interface{}) []interface{}

func (*MapRecord) Inherit

func (m *MapRecord) Inherit(record Record) Record

Inherit inherit T and K from another record

func (*MapRecord) Key

func (m *MapRecord) Key() []interface{}

func (*MapRecord) MarshalMsg

func (z *MapRecord) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*MapRecord) Msgsize

func (z *MapRecord) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*MapRecord) Set

func (m *MapRecord) Set(index, value interface{}) error

func (*MapRecord) SetKey

func (m *MapRecord) SetKey(k []interface{})

func (*MapRecord) SetTime

func (m *MapRecord) SetTime(t time.Time)

func (*MapRecord) Time

func (m *MapRecord) Time() time.Time

func (*MapRecord) Type

func (m *MapRecord) Type() ItemType

func (*MapRecord) UnmarshalMsg

func (z *MapRecord) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

func (*MapRecord) UseKeys

func (m *MapRecord) UseKeys(indexes ...interface{}) []interface{}

type Record

type Record interface {
	Item
	Get(index interface{}) interface{}
	GetMany(indexes ...interface{}) []interface{}
	Set(index, value interface{}) error
	UseKeys(indexes ...interface{}) []interface{}
	Key() []interface{}

	SetKey([]interface{})
	// Inherit inherit T and K from another record
	Inherit(Record) Record
}

Record is kind of item

type Row

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

Row is used to transport in Piper

func DecodeRow

func DecodeRow(encodedBytes []byte) (Row, error)

DecodeRow decode row

func (Row) AsMapRecord

func (r Row) AsMapRecord() (MapRecord, error)

func (Row) AsTupleRecord

func (r Row) AsTupleRecord() (TupleRecord, error)

func (Row) AsWatermark

func (r Row) AsWatermark() (Watermark, error)

func (*Row) DecodeMsg

func (z *Row) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (Row) EncodeMsg

func (z Row) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (Row) MarshalMsg

func (z Row) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (Row) Msgsize

func (z Row) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (Row) Type

func (r Row) Type() ItemType

func (*Row) UnmarshalMsg

func (z *Row) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type TupleRecord

type TupleRecord struct {
	T time.Time
	K []interface{}
	V []interface{}
}

func NewTupleRecord

func NewTupleRecord(t time.Time, v ...interface{}) *TupleRecord

func (*TupleRecord) AsRow

func (tuple *TupleRecord) AsRow() (Row, error)

func (*TupleRecord) Clone

func (tuple *TupleRecord) Clone() Item

func (*TupleRecord) DecodeMsg

func (z *TupleRecord) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*TupleRecord) EncodeMsg

func (z *TupleRecord) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*TupleRecord) Get

func (tuple *TupleRecord) Get(index interface{}) interface{}

func (*TupleRecord) GetMany

func (tuple *TupleRecord) GetMany(indexes ...interface{}) []interface{}

func (*TupleRecord) Inherit

func (tuple *TupleRecord) Inherit(record Record) Record

func (*TupleRecord) Key

func (tuple *TupleRecord) Key() []interface{}

func (*TupleRecord) MarshalMsg

func (z *TupleRecord) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*TupleRecord) Msgsize

func (z *TupleRecord) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*TupleRecord) Set

func (tuple *TupleRecord) Set(index, value interface{}) error

func (*TupleRecord) SetKey

func (tuple *TupleRecord) SetKey(k []interface{})

func (*TupleRecord) SetTime

func (tuple *TupleRecord) SetTime(t time.Time)

func (*TupleRecord) Time

func (tuple *TupleRecord) Time() time.Time

func (*TupleRecord) Type

func (tuple *TupleRecord) Type() ItemType

func (*TupleRecord) UnmarshalMsg

func (z *TupleRecord) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

func (*TupleRecord) UseKeys

func (tuple *TupleRecord) UseKeys(indexes ...interface{}) []interface{}

UseKeys use indexes key's values as record's key

type Watermark

type Watermark struct {
	T time.Time

	IsChock bool
}

Watermark is kind of item

func NewChockWatermark added in v0.3.1

func NewChockWatermark(t time.Time) *Watermark

func NewWatermark

func NewWatermark(t time.Time) *Watermark

func (*Watermark) After

func (wm *Watermark) After(x *Watermark) bool

func (*Watermark) AsRow

func (wm *Watermark) AsRow() (Row, error)

func (*Watermark) Clone

func (wm *Watermark) Clone() Item

func (*Watermark) DecodeMsg

func (z *Watermark) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (Watermark) EncodeMsg

func (z Watermark) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (Watermark) MarshalMsg

func (z Watermark) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (Watermark) Msgsize

func (z Watermark) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*Watermark) SetTime

func (wm *Watermark) SetTime(t time.Time)

func (*Watermark) Time

func (wm *Watermark) Time() time.Time

func (*Watermark) Type

func (wm *Watermark) Type() ItemType

func (*Watermark) UnmarshalMsg

func (z *Watermark) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

Jump to

Keyboard shortcuts

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