source

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2025 License: Unlicense Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBadUpgrade = errors.New("matt::chasm::source: bad upgrade")
	ErrBadRead    = errors.New("matt::chasm::source: bad read")
)

Functions

This section is empty.

Types

type BatchDecodeFunc added in v0.15.0

type BatchDecodeFunc[T core.Event] func(frame []byte, destination []T) (int, bool, error)

type BatchDecoder added in v0.15.0

type BatchDecoder[T core.Event] interface {
	Decode(frame []byte, destination []T) (int, bool, error)
}

type BookCodec added in v0.15.0

type BookCodec interface {
	Proto
	UnitDecoder[core.BookEvent]
}

func NewBookCodec added in v0.15.0

func NewBookCodec(
	endpoint endpoint,
	sub, unsub ProtoMsgFunc,
	decode LossyDecodeFunc[core.BookEvent, bookBase],
) BookCodec

func NewCoinbaseBookCodec added in v0.15.0

func NewCoinbaseBookCodec() BookCodec

func NewKrakenBookCodec added in v0.15.0

func NewKrakenBookCodec() BookCodec

type CandleCodec added in v0.15.0

type CandleCodec interface {
	Proto
	SinkDecoder[core.CandleEvent]
}

func NewCandleCodec added in v0.15.0

func NewCandleCodec(
	endpoint endpoint,
	sub, unsub ProtoMsgFunc,
	sink SinkFunc[core.CandleEvent, candleBase],
	try SinkTryFunc[core.CandleEvent, candleBase],
) CandleCodec

func NewCoinbaseCandleCodec added in v0.15.0

func NewCoinbaseCandleCodec() CandleCodec

func NewKrakenCandleCodec added in v0.15.0

func NewKrakenCandleCodec() CandleCodec

type DecodeKeyFunc

type DecodeKeyFunc func(raw []byte) []core.Key

TODO: we should be returning an error

type KeyGetter

type KeyGetter interface {
	Online() []core.Key
	Offline() []core.Key
	All() []core.Key
}

func NewKeyGetter

func NewKeyGetter(online, offline, all DecodeKeyFunc, req http.Request) KeyGetter

type LossyDecodeFunc added in v0.15.0

type LossyDecodeFunc[T core.Event, B codecBase] func(base *B, frame []byte) (T, bool, error)

type Proto

type Proto interface {
	Endpoint() string
	Subscribe(key core.Key) []byte
	Unsubscribe(key core.Key) []byte
}

type ProtoMsgFunc added in v0.15.0

type ProtoMsgFunc func(key core.Key) []byte

type Reader

type Reader[T core.Event] interface {
	Open() error
	Close() error
	Read() (T, bool)
	Next() error
}

type SinkDecoder added in v0.14.1

type SinkDecoder[T core.Event] interface {
	Sink(key core.Key, frame []byte) (T, bool, error)
	Try(key core.Key) (T, bool, error)
}

type SinkFunc added in v0.15.0

type SinkFunc[T core.Event, B codecBase] func(base *B, key core.Key, frame []byte) (T, bool, error)

type SinkTryFunc added in v0.15.0

type SinkTryFunc[T core.Event, B codecBase] func(base *B, key core.Key) (T, bool, error)

type Source

type Source interface {
	Symbol(key core.Key) Reader[core.SymbolEvent]
	Book(key core.Key) Reader[core.BookEvent]
	Candle(key core.Key) Reader[core.CandleEvent]
	Trade(key core.Key) Reader[core.TradeEvent]
	Get() KeyGetter
}

func NewSource

func NewSource(
	origin string,
	symbol SymbolCodec,
	book BookCodec,
	trade TradeCodec,
	candle CandleCodec,
	getter KeyGetter,
) Source

type SymbolCodec added in v0.15.0

type SymbolCodec interface {
	Proto
	BatchDecoder[core.SymbolEvent]
}

func NewCoinbaseSymbolCodec added in v0.15.0

func NewCoinbaseSymbolCodec() SymbolCodec

func NewKrakenSymbolCodec added in v0.15.0

func NewKrakenSymbolCodec() SymbolCodec

func NewSymbolCodec added in v0.15.0

func NewSymbolCodec(
	endpoint endpoint,
	sub, unsub ProtoMsgFunc,
	decode BatchDecodeFunc[core.SymbolEvent],
) SymbolCodec

type TradeCodec added in v0.15.0

type TradeCodec interface {
	Proto
	BatchDecoder[core.TradeEvent]
}

func NewCoinbaseTradeCodec added in v0.15.0

func NewCoinbaseTradeCodec() TradeCodec

func NewKrakenTradeCodec added in v0.15.0

func NewKrakenTradeCodec() TradeCodec

func NewTradeCodec added in v0.15.0

func NewTradeCodec(
	endpoint endpoint,
	sub, unsub ProtoMsgFunc,
	decode BatchDecodeFunc[core.TradeEvent],
) TradeCodec

type UnitDecoder added in v0.15.0

type UnitDecoder[T core.Event] interface {
	Decode(frame []byte) (T, bool, error)
}

Jump to

Keyboard shortcuts

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