reftypes

package
v0.0.0-...-05bc493 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Zero           RefType = 0
	Invalid        RefType = 1
	PackagePrivate RefType = 2

	Jet       = RefType(pulse.Jet)
	JetRecord = Jet + subType
	JetLeg    = Jet + subType*2
	JetDrop   = Jet + subType*3

	BuiltinContract = RefType(pulse.BuiltinContract)

	Node         = RefType(pulse.Node)
	NodeContract = Node + subType

	RecordPayload = RefType(pulse.RecordPayload)

	APICall       = RefType(pulse.ExternalCall)
	APISession128 = APICall + subType
	APISession384 = APICall + subType*2

	APIEndpoint = RefType(pulse.EndpointAddress)

	Object RefType = pulse.MinTimePulse
)

Variables

View Source
var (
	ErrInvalidJetDropRef   = throw.W(ErrIllegalRefValue, "jet drop/leg id is invalid")
	ErrUnexpectedJetRef    = throw.W(ErrIllegalRefValue, "unexpected jet drop/leg ref")
	ErrInvalidJetRecordRef = throw.W(ErrIllegalRefValue, "invalid jet record base")
)
View Source
var (
	ErrTimePulseRequired        = throw.W(ErrIllegalRefValue, "time-pulse required")
	ErrScopeNotImplemented      = throw.W(ErrIllegalRefValue, "scopes are not implemented")
	ErrTimePulseNoScopeRequired = throw.W(ErrIllegalRefValue, "time-pulse with lifeline scope is required")
	ErrLocalBeforeBase          = throw.W(ErrIllegalRefValue, "local pulse is before base pulse")
)
View Source
var ErrEmptyRef = throw.E("empty reference")
View Source
var ErrIllegalRefValue = throw.E("illegal reference value")
View Source
var ErrIllegalSelfRefValue = throw.W(ErrIllegalRefValue, "self-reference expected")
View Source
var ErrInvalidRef = throw.W(ErrIllegalRefValue, "invalid reference")
View Source
var ErrNotEmptyRef = throw.E("not empty reference")

Functions

func APICallRef

func APICallRef(nodeRef reference.Holder, sidPN pulse.Number, reqHash reference.LocalHash) reference.Global

func BuiltinContractLocalRef

func BuiltinContractLocalRef(t BuiltinContractType, primaryID BuiltinContractID) reference.Local

func BuiltinContractRef

func BuiltinContractRef(t BuiltinContractType, primaryID BuiltinContractID) reference.Global

func DecodeJetData

func DecodeJetData(b reference.LocalHash, checkTailingZeros bool) (pulse.Number, jet.ExactID, error)

func DecodeJetPayloadPosition

func DecodeJetPayloadPosition(b reference.LocalHash, checkTailingZeros bool) (offset, length, extID uint32, err error)

func EncodeJetData

func EncodeJetData(b *reference.LocalHash, pn pulse.Number, id jet.ExactID)

func EncodeJetPayloadPosition

func EncodeJetPayloadPosition(b *reference.LocalHash, offset, length, extID uint32)

func JetDropLocalRef

func JetDropLocalRef(id jet.DropID) reference.Local

func JetDropLocalRefOf

func JetDropLocalRefOf(ref reference.Holder) reference.Local

func JetDropRef

func JetDropRef(id jet.DropID) reference.Global

func JetLegLocalRef

func JetLegLocalRef(id jet.LegID) reference.Local

func JetLegRef

func JetLegRef(id jet.LegID) reference.Global

func JetLocalRef

func JetLocalRef(id jet.ID) reference.Local

func JetLocalRefOf

func JetLocalRefOf(ref reference.Holder) reference.Local

func JetRecordOf

func JetRecordOf(ref reference.Holder) reference.Global

func JetRecordRef

func JetRecordRef(id jet.ID, recordRef reference.LocalHolder) reference.Global

func JetRecordRefByDrop

func JetRecordRefByDrop(id jet.DropID, recordRef reference.LocalHolder) reference.Global

func JetRef

func JetRef(id jet.ID) reference.Global

func LifelineLocalRefOf

func LifelineLocalRefOf(ref reference.Holder) reference.Local

func LifelineRef

func LifelineRef(base reference.Local) reference.Global

func LifelineRefOf

func LifelineRefOf(ref reference.Holder) reference.Global

func NodeContractRef

func NodeContractRef(nodeHash reference.LocalHash, locContract reference.LocalHolder) reference.Global

func NodeLocalRef

func NodeLocalRef(nodeHash reference.LocalHash) reference.Local

func NodeLocalRefOf

func NodeLocalRefOf(ref reference.Holder) reference.Local

func NodeRef

func NodeRef(nodeHash reference.LocalHash) reference.Global

func PartialUnpackJetLocalRef

func PartialUnpackJetLocalRef(ref reference.LocalHolder) (jet.ID, error)

func RecordPayloadRef

func RecordPayloadRef(id jet.ID, recordRef reference.LocalHolder, offset, length, extID uint32) reference.Global

func RecordPayloadRefByDrop

func RecordPayloadRefByDrop(id jet.DropID, recordRef reference.LocalHolder, offset, length, extID uint32) reference.Global

func RecordRef

func RecordRef(line reference.Holder, loc reference.Local) reference.Global

func SidelineRef

func SidelineRef(lifeline reference.Holder, loc reference.Local) reference.Global

func UnpackAPICallRef

func UnpackAPICallRef(ref reference.Holder) (nodeRef reference.Global, sidPN pulse.Number, reqHash reference.LocalHash, err error)

func UnpackAsJetRecordOf

func UnpackAsJetRecordOf(ref reference.Holder) (jet.DropID, reference.Local, error)

func UnpackBuiltinContractRef

func UnpackBuiltinContractRef(ref reference.Holder) (t BuiltinContractType, primaryID BuiltinContractID, secondaryID reference.LocalHolder, err error)

func UnpackJetDropLocalRef

func UnpackJetDropLocalRef(ref reference.LocalHolder) (jet.DropID, error)

func UnpackJetDropRef

func UnpackJetDropRef(ref reference.Holder) (jet.DropID, error)

func UnpackJetLegLocalRef

func UnpackJetLegLocalRef(ref reference.LocalHolder) (jet.LegID, error)

func UnpackJetLegRef

func UnpackJetLegRef(ref reference.Holder) (jet.LegID, error)

func UnpackJetLocalRef

func UnpackJetLocalRef(ref reference.LocalHolder) (jet.ID, error)

func UnpackJetRecordRef

func UnpackJetRecordRef(ref reference.Holder) (jet.DropID, reference.Local, error)

func UnpackJetRef

func UnpackJetRef(ref reference.Holder) (jet.ID, error)

func UnpackNodeContractRef

func UnpackNodeContractRef(ref reference.Holder) (nodeRef reference.Global, contractRef reference.Local, err error)

func UnpackNodeLocalRef

func UnpackNodeLocalRef(ref reference.LocalHolder) (reference.Local, error)

func UnpackNodeRef

func UnpackNodeRef(ref reference.Holder) (reference.Global, error)

func UnpackNodeRefAsLocal

func UnpackNodeRefAsLocal(ref reference.Holder) (nodeRef reference.Local, err error)

func UnpackObjectLocalRef

func UnpackObjectLocalRef(ref reference.Local) (reference.Local, error)

func UnpackObjectRef

func UnpackObjectRef(ref reference.Holder) (base, local reference.Local, err error)

func UnpackRecordPayloadRef

func UnpackRecordPayloadRef(ref reference.Holder) (id jet.ID, local reference.Local, offset, length, extID uint32, err error)

Types

type BuiltinContractID

type BuiltinContractID [27]byte

type BuiltinContractType

type BuiltinContractType uint8
const (
	UnknownBuiltin  BuiltinContractType = 0
	ExternalNodeAPI BuiltinContractType = 0xC2 // This constant allows textual refs to start with: 0AAABApi[A..P]
)

type DetailErrRef

type DetailErrRef struct {
	Expected                RefType
	BaseHeader, LocalHeader reference.LocalHeader
}

type RefType

type RefType uint32

func TypeOf

func TypeOf(ref reference.Holder) RefType

func (RefType) BaseType

func (v RefType) BaseType() RefType

func (RefType) DeriveFrom

func (v RefType) DeriveFrom(ref reference.Holder, loc reference.LocalHolder) reference.Global

func (RefType) Ensure

func (v RefType) Ensure(ref reference.Holder) reference.Holder

func (RefType) Inspect

func (v RefType) Inspect(ref reference.Holder) (base, local reference.Local, err error)

func (RefType) Is

func (v RefType) Is(ref reference.Holder) bool

func (RefType) IsDerived

func (v RefType) IsDerived(ref reference.Holder) bool

func (RefType) IsDerivedType

func (v RefType) IsDerivedType() bool

func (RefType) Of

func (RefType) OfOrEmpty

func (v RefType) OfOrEmpty(ref reference.Holder) reference.Global

func (RefType) SPN

func (v RefType) SPN() pulse.Number

func (RefType) SubType

func (v RefType) SubType() uint32

func (RefType) Usage

func (v RefType) Usage() Usage

type RefTypeDef

type RefTypeDef interface {
	Usage() Usage
	VerifyGlobalRef(base, local reference.Local) error
	VerifyLocalRef(reference.Local) error
	DetectSubType(base, local reference.Local) RefType
	RefFrom(base, local reference.Local) (reference.Global, error)
	CanBeDerivedWith(base pulse.Number, local reference.Local) bool
}

type Usage

type Usage uint8
const (
	UseAsBase Usage = 1 << iota
	UseAsSelf
	UseAsLocal
	UseAsLocalValue
)

Jump to

Keyboard shortcuts

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