markers

package
Version: v0.7.4 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2021 License: Apache-2.0, BSD-2-Clause Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// PrefixSequence defines the storage prefix for the Sequence object storage.
	PrefixSequence byte = iota

	// PrefixSequenceAliasMapping defines the storage prefix for the SequenceAliasMapping object storage.
	PrefixSequenceAliasMapping
)
View Source
const IndexLength = marshalutil.Uint64Size

IndexLength represents the amount of bytes of a marshaled Index.

View Source
const MarkerLength = SequenceIDLength + IndexLength

MarkerLength represents the amount of bytes of a marshaled Marker.

View Source
const SequenceAliasLength = 32

SequenceAliasLength contains the amount of bytes that a marshaled version of the SequenceAlias contains.

View Source
const SequenceIDLength = marshalutil.Uint64Size

SequenceIDLength represents the amount of bytes of a marshaled SequenceID.

Variables

This section is empty.

Functions

func SequenceAliasMappingFromObjectStorage

func SequenceAliasMappingFromObjectStorage(key, data []byte) (mapping objectstorage.StorableObject, err error)

SequenceAliasMappingFromObjectStorage restores a SequenceAlias that was stored in the object storage.

func SequenceFromObjectStorage

func SequenceFromObjectStorage(key, data []byte) (sequence objectstorage.StorableObject, err error)

SequenceFromObjectStorage restores an Sequence that was stored in the object storage.

Types

type CachedSequence

type CachedSequence struct {
	objectstorage.CachedObject
}

CachedSequence is a wrapper for the generic CachedObject returned by the object storage that overrides the accessor methods with a type-casted one.

func (*CachedSequence) Consume

func (c *CachedSequence) Consume(consumer func(sequence *Sequence), forceRelease ...bool) (consumed bool)

Consume unwraps the CachedObject and passes a type-casted version to the consumer. It automatically releases the object when the consumer finishes and returns true of there was at least one object that was consumed.

func (*CachedSequence) Retain

func (c *CachedSequence) Retain() *CachedSequence

Retain marks this CachedObject to still be in use by the program.

func (*CachedSequence) Unwrap

func (c *CachedSequence) Unwrap() *Sequence

Unwrap is the type-casted equivalent of Get. It returns nil if the object does not exist.

type CachedSequenceAliasMapping

type CachedSequenceAliasMapping struct {
	objectstorage.CachedObject
}

CachedSequenceAliasMapping is a wrapper for the generic CachedObject returned by the object storage that overrides the accessor methods with a type-casted one.

func (*CachedSequenceAliasMapping) Consume

func (c *CachedSequenceAliasMapping) Consume(consumer func(sequenceAliasMapping *SequenceAliasMapping), forceRelease ...bool) (consumed bool)

Consume unwraps the CachedObject and passes a type-casted version to the consumer. It automatically releases the object when the consumer finishes and returns true of there was at least one object that was consumed.

func (*CachedSequenceAliasMapping) Retain

Retain marks this CachedObject to still be in use by the program.

func (*CachedSequenceAliasMapping) String added in v0.4.1

func (c *CachedSequenceAliasMapping) String() string

String returns a human readable version of the CachedSequenceAliasMapping.

func (*CachedSequenceAliasMapping) Unwrap

Unwrap is the type-casted equivalent of Get. It returns nil if the object does not exist.

type IncreaseIndexCallback

type IncreaseIndexCallback func(sequenceID SequenceID, currentHighestIndex Index) bool

IncreaseIndexCallback is the type of the callback function that is used to determine if a new Index is supposed to be assigned in a given Sequence.

type Index

type Index uint64

Index represents the ever increasing number of the Markers in a Sequence.

func IndexFromBytes

func IndexFromBytes(sequenceBytes []byte) (index Index, consumedBytes int, err error)

IndexFromBytes unmarshals an Index from a sequence of bytes.

func IndexFromMarshalUtil

func IndexFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (index Index, err error)

IndexFromMarshalUtil unmarshals an Index using a MarshalUtil (for easier unmarshaling).

func (Index) Bytes

func (i Index) Bytes() (marshaledIndex []byte)

Bytes returns a marshaled version of the Index.

func (Index) String

func (i Index) String() (humanReadableIndex string)

String returns a human readable version of the Index.

type Manager

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

Manager is the managing entity for the Marker related business logic. It is stateful and automatically stores its state in an underlying KVStore.

func NewManager

func NewManager(store kvstore.KVStore, cacheProvider *database.CacheTimeProvider) (newManager *Manager)

NewManager is the constructor of the Manager that takes a KVStore to persist its state.

func (*Manager) InheritStructureDetails

func (m *Manager) InheritStructureDetails(referencedStructureDetails []*StructureDetails, increaseIndexCallback IncreaseIndexCallback, sequenceAlias SequenceAlias) (inheritedStructureDetails *StructureDetails, newSequenceCreated bool)

InheritStructureDetails takes the StructureDetails of the referenced parents and returns new StructureDetails for the message that was just added to the DAG. It automatically creates a new Sequence and Index if necessary and returns an additional flag that indicates if a new Sequence was created.

func (*Manager) IsInPastCone

func (m *Manager) IsInPastCone(earlierStructureDetails, laterStructureDetails *StructureDetails) (isInPastCone types.TriBool)

IsInPastCone checks if the earlier node is directly or indirectly referenced by the later node in the DAG.

func (*Manager) RegisterSequenceAliasMapping added in v0.5.8

func (m *Manager) RegisterSequenceAliasMapping(sequenceAlias SequenceAlias, sequenceID SequenceID) (updated bool)

RegisterSequenceAliasMapping adds a mapping from a SequenceAlias to a Sequence.

func (*Manager) Sequence added in v0.5.4

func (m *Manager) Sequence(sequenceID SequenceID) *CachedSequence

Sequence retrieves a Sequence from the object storage.

func (*Manager) SequenceAliasMapping added in v0.5.8

func (m *Manager) SequenceAliasMapping(sequenceAlias SequenceAlias, computeIfAbsentCallback ...func(sequenceAlias SequenceAlias) *SequenceAliasMapping) (sequenceAliasMapping *CachedSequenceAliasMapping)

SequenceAliasMapping retrieves the SequenceAliasMapping from the object storage. It accepts an optional computeIfAbsentCallback that is executed to determine the value if it is missing.

func (*Manager) Shutdown

func (m *Manager) Shutdown()

Shutdown shuts down the Manager and persists its state.

func (*Manager) UnregisterSequenceAliasMapping added in v0.5.8

func (m *Manager) UnregisterSequenceAliasMapping(sequenceAlias SequenceAlias, sequenceID SequenceID) (updated, emptied bool)

UnregisterSequenceAliasMapping removes the mapping of the given SequenceAlias to its corresponding Sequence.

func (*Manager) UpdateStructureDetails

func (m *Manager) UpdateStructureDetails(structureDetailsToUpdate *StructureDetails, markerToInherit *Marker) (futureMarkersUpdated, inheritFutureMarkerFurther bool)

UpdateStructureDetails updates the StructureDetails of an existing node in the DAG by propagating new Markers of its children into its future Markers. It returns two boolean flags that indicate if the future Markers were updated and if the new Marker should be propagated further to the parents of the given node.

type Marker

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

Marker represents a coordinate in a Sequence that is identified by an ever increasing Index.

func MarkerFromBytes

func MarkerFromBytes(markerBytes []byte) (marker *Marker, consumedBytes int, err error)

MarkerFromBytes unmarshals a Marker from a sequence of bytes.

func MarkerFromMarshalUtil

func MarkerFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (marker *Marker, err error)

MarkerFromMarshalUtil unmarshals a Marker using a MarshalUtil (for easier unmarshaling).

func NewMarker added in v0.4.0

func NewMarker(sequenceID SequenceID, index Index) *Marker

NewMarker returns a new marker.

func (Marker) Bytes

func (m Marker) Bytes() (marshaledMarker []byte)

Bytes returns a marshaled version of the Marker.

func (*Marker) Index

func (m *Marker) Index() (index Index)

Index returns the coordinate of the Marker in a Sequence.

func (*Marker) SequenceID

func (m *Marker) SequenceID() (sequenceID SequenceID)

SequenceID returns the identifier of the Sequence of the Marker.

func (*Marker) String

func (m *Marker) String() (humanReadableMarker string)

String returns a human readable version of the Marker.

type Markers

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

Markers represents a collection of Markers that can contain exactly one Index per SequenceID.

func FromBytes

func FromBytes(markersBytes []byte) (markers *Markers, consumedBytes int, err error)

FromBytes unmarshals a collection of Markers from a sequence of bytes.

func FromMarshalUtil

func FromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (markers *Markers, err error)

FromMarshalUtil unmarshals a collection of Markers using a MarshalUtil (for easier unmarshaling).

func NewMarkers

func NewMarkers(optionalMarkers ...*Marker) (markers *Markers)

NewMarkers creates a new collection of Markers.

func (*Markers) Bytes

func (m *Markers) Bytes() (marshalMarkers []byte)

Bytes returns the Markers in serialized byte form.

func (*Markers) Clone

func (m *Markers) Clone() (clonedMarkers *Markers)

Clone creates a deep copy of the Markers.

func (*Markers) Delete

func (m *Markers) Delete(sequenceID SequenceID) (existed bool)

Delete removes the Marker with the given SequenceID from the collection and returns a boolean flag that indicates if the element existed.

func (*Markers) Equals added in v0.5.2

func (m *Markers) Equals(other *Markers) (equals bool)

Equals is a comparator for two Markers.

func (*Markers) ForEach

func (m *Markers) ForEach(iterator func(sequenceID SequenceID, index Index) bool) (success bool)

ForEach calls the iterator for each of the contained Markers. The iteration is aborted if the iterator returns false. The method returns false if the iteration was aborted.

func (*Markers) ForEachSorted added in v0.5.7

func (m *Markers) ForEachSorted(iterator func(sequenceID SequenceID, index Index) bool) (success bool)

ForEachSorted calls the iterator for each of the contained Markers in increasing order. The iteration is aborted if the iterator returns false. The method returns false if the iteration was aborted.

func (*Markers) Get

func (m *Markers) Get(sequenceID SequenceID) (index Index, exists bool)

Get returns the Index of the Marker with the given Sequence and a flag that indicates if the Marker exists.

func (*Markers) HighestIndex

func (m *Markers) HighestIndex() (highestIndex Index)

HighestIndex returns the the highest Index of all Markers in the collection.

func (*Markers) LowestIndex

func (m *Markers) LowestIndex() (lowestIndex Index)

LowestIndex returns the the lowest Index of all Markers in the collection.

func (*Markers) Marker added in v0.5.7

func (m *Markers) Marker() (marker *Marker)

Marker type casts the Markers to a Marker if it contains only 1 element.

func (*Markers) Merge

func (m *Markers) Merge(markers *Markers)

Merge takes the given Markers and adds them to the collection (overwriting Markers with a lower Index if there are existing Markers with the same SequenceID).

func (*Markers) SequenceIDs

func (m *Markers) SequenceIDs() (sequenceIDs SequenceIDs)

SequenceIDs returns the SequenceIDs that are having Markers in this collection.

func (*Markers) SequenceToString added in v0.5.3

func (m *Markers) SequenceToString() (s string)

SequenceToString returns a string in the form sequenceID:index;.

func (*Markers) Set

func (m *Markers) Set(sequenceID SequenceID, index Index) (updated, added bool)

Set adds a new Marker to the collection and updates the Index of an existing entry if it is higher than a possible previously stored one. The method returns two boolean flags that indicate if an entry was updated and/or added.

func (*Markers) Size

func (m *Markers) Size() (size int)

Size returns the amount of Markers in the collection.

func (*Markers) String

func (m *Markers) String() (humanReadableMarkers string)

String returns a human readable version of the Markers.

type ReferencedMarkers added in v0.5.4

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

ReferencedMarkers is a data structure that allows to denote which Marker of a Sequence references which other Markers of its parent Sequences in the Sequence DAG.

func NewReferencedMarkers added in v0.5.4

func NewReferencedMarkers(markers *Markers) (referencedMarkers *ReferencedMarkers)

NewReferencedMarkers is the constructor for the ReferencedMarkers.

func ReferencedMarkersFromBytes added in v0.5.4

func ReferencedMarkersFromBytes(parentReferencesBytes []byte) (referencedMarkers *ReferencedMarkers, consumedBytes int, err error)

ReferencedMarkersFromBytes unmarshals ReferencedMarkers from a sequence of bytes.

func ReferencedMarkersFromMarshalUtil added in v0.5.4

func ReferencedMarkersFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (referencedMarkers *ReferencedMarkers, err error)

ReferencedMarkersFromMarshalUtil unmarshals ReferencedMarkers using a MarshalUtil (for easier unmarshaling).

func (*ReferencedMarkers) Add added in v0.5.4

func (r *ReferencedMarkers) Add(index Index, referencedMarkers *Markers)

Add adds new referenced Markers to the ReferencedMarkers.

func (*ReferencedMarkers) Bytes added in v0.5.4

func (r *ReferencedMarkers) Bytes() (marshaledReferencedMarkers []byte)

Bytes returns a marshaled version of the ReferencedMarkers.

func (*ReferencedMarkers) Get added in v0.5.4

func (r *ReferencedMarkers) Get(index Index) (referencedMarkers *Markers)

Get returns the Markers of parent Sequences that were referenced by the given Index.

func (*ReferencedMarkers) String added in v0.5.4

func (r *ReferencedMarkers) String() (humanReadableReferencedMarkers string)

String returns a human readable version of the ReferencedMarkers.

type ReferencingMarkers added in v0.5.4

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

ReferencingMarkers is a data structure that allows to denote which Markers of child Sequences in the Sequence DAG reference a given Marker in a Sequence.

func NewReferencingMarkers added in v0.5.4

func NewReferencingMarkers() (referencingMarkers *ReferencingMarkers)

NewReferencingMarkers is the constructor for the ReferencingMarkers.

func ReferencingMarkersFromBytes added in v0.5.4

func ReferencingMarkersFromBytes(referencingMarkersBytes []byte) (referencingMarkers *ReferencingMarkers, consumedBytes int, err error)

ReferencingMarkersFromBytes unmarshals ReferencingMarkers from a sequence of bytes.

func ReferencingMarkersFromMarshalUtil added in v0.5.4

func ReferencingMarkersFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (referencingMarkers *ReferencingMarkers, err error)

ReferencingMarkersFromMarshalUtil unmarshals ReferencingMarkers using a MarshalUtil (for easier unmarshaling).

func (*ReferencingMarkers) Add added in v0.5.4

func (r *ReferencingMarkers) Add(index Index, referencingMarker *Marker)

Add adds a new referencing Marker to the ReferencingMarkers.

func (*ReferencingMarkers) Bytes added in v0.5.4

func (r *ReferencingMarkers) Bytes() (marshaledReferencingMarkers []byte)

Bytes returns a marshaled version of the ReferencingMarkers.

func (*ReferencingMarkers) Get added in v0.5.4

func (r *ReferencingMarkers) Get(index Index) (referencingMarkers *Markers)

Get returns the Markers of child Sequences that reference the given Index.

func (*ReferencingMarkers) String added in v0.5.4

func (r *ReferencingMarkers) String() (humanReadableReferencingMarkers string)

String returns a human readable version of the ReferencingMarkers.

type Sequence

type Sequence struct {
	objectstorage.StorableObjectFlags
	// contains filtered or unexported fields
}

Sequence represents a set of ever increasing Indexes that are encapsulating a certain part of the DAG.

func NewSequence

func NewSequence(id SequenceID, referencedMarkers *Markers, rank uint64) *Sequence

NewSequence creates a new Sequence from the given details.

func SequenceFromBytes

func SequenceFromBytes(sequenceBytes []byte) (sequence *Sequence, consumedBytes int, err error)

SequenceFromBytes unmarshals a Sequence from a sequence of bytes.

func SequenceFromMarshalUtil

func SequenceFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (sequence *Sequence, err error)

SequenceFromMarshalUtil unmarshals a Sequence using a MarshalUtil (for easier unmarshaling).

func (*Sequence) AddReferencingMarker added in v0.5.4

func (s *Sequence) AddReferencingMarker(index Index, referencingMarker *Marker)

AddReferencingMarker register a Marker that referenced the given Index of this Sequence.

func (*Sequence) Bytes

func (s *Sequence) Bytes() []byte

Bytes returns a marshaled version of the Sequence.

func (*Sequence) HighestIndex

func (s *Sequence) HighestIndex() Index

HighestIndex returns the Index of the latest Marker in the Sequence.

func (*Sequence) ID

func (s *Sequence) ID() SequenceID

ID returns the identifier of the Sequence.

func (*Sequence) IncreaseHighestIndex

func (s *Sequence) IncreaseHighestIndex(referencedMarkers *Markers) (index Index, increased bool)

IncreaseHighestIndex increases the highest Index of the Sequence if the referencedMarkers directly reference the Marker with the currently highest Index. It returns the new Index and a boolean flag that indicates if the value was increased.

func (*Sequence) LowestIndex

func (s *Sequence) LowestIndex() Index

LowestIndex returns the Index of the very first Marker in the Sequence.

func (*Sequence) ObjectStorageKey

func (s *Sequence) ObjectStorageKey() []byte

ObjectStorageKey returns the key that is used to store the object in the database. It is required to match the StorableObject interface.

func (*Sequence) ObjectStorageValue

func (s *Sequence) ObjectStorageValue() []byte

ObjectStorageValue marshals the Sequence into a sequence of bytes. The ID is not serialized here as it is only used as a key in the object storage.

func (*Sequence) Rank

func (s *Sequence) Rank() uint64

Rank returns the rank of the Sequence (maximum distance from the root of the Sequence DAG).

func (*Sequence) ReferencedMarkers added in v0.5.4

func (s *Sequence) ReferencedMarkers(index Index) *Markers

ReferencedMarkers returns a collection of Markers that were referenced by the given Index.

func (*Sequence) ReferencingMarkers added in v0.5.4

func (s *Sequence) ReferencingMarkers(index Index) *Markers

ReferencingMarkers returns a collection of Markers that reference the given Index.

func (*Sequence) String added in v0.5.1

func (s *Sequence) String() string

String returns a human readable version of the Sequence.

func (*Sequence) Update

Update is required to match the StorableObject interface but updates of the object are disabled.

type SequenceAlias

type SequenceAlias [SequenceAliasLength]byte

SequenceAlias represents an alternative identifier for a Sequence that is used to look up the SequenceID.

func NewSequenceAlias

func NewSequenceAlias(bytes []byte) SequenceAlias

NewSequenceAlias creates a new custom identifier from a sequence of bytes.

func SequenceAliasFromBase58

func SequenceAliasFromBase58(base58String string) (aggregatedSequencesID SequenceAlias, err error)

SequenceAliasFromBase58 creates a SequenceAlias from a base58 encoded string.

func SequenceAliasFromBytes

func SequenceAliasFromBytes(aggregatedSequencesIDBytes []byte) (aggregatedSequencesID SequenceAlias, consumedBytes int, err error)

SequenceAliasFromBytes unmarshals a SequenceAlias from a sequence of bytes.

func SequenceAliasFromMarshalUtil

func SequenceAliasFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (aggregatedSequencesID SequenceAlias, err error)

SequenceAliasFromMarshalUtil unmarshals a SequenceAlias using a MarshalUtil (for easier unmarshaling).

func (SequenceAlias) Base58

func (a SequenceAlias) Base58() (base58EncodedSequenceAlias string)

Base58 returns a base58 encoded version of the SequenceAlias.

func (SequenceAlias) Bytes

func (a SequenceAlias) Bytes() (marshaledSequenceAlias []byte)

Bytes returns a marshaled version of the SequenceAlias.

func (SequenceAlias) Merge

func (a SequenceAlias) Merge(alias SequenceAlias) (mergedSequenceAlias SequenceAlias)

Merge generates a new unique SequenceAlias from the combination of two SequenceAliases.

func (SequenceAlias) String

func (a SequenceAlias) String() (humanReadableSequenceAlias string)

String returns a human readable version of the SequenceAlias.

type SequenceAliasMapping

type SequenceAliasMapping struct {
	objectstorage.StorableObjectFlags
	// contains filtered or unexported fields
}

SequenceAliasMapping represents the mapping between a SequenceAlias and its SequenceID.

func SequenceAliasMappingFromBytes

func SequenceAliasMappingFromBytes(mappingBytes []byte) (mapping *SequenceAliasMapping, consumedBytes int, err error)

SequenceAliasMappingFromBytes unmarshals a SequenceAliasMapping from a sequence of bytes.

func SequenceAliasMappingFromMarshalUtil

func SequenceAliasMappingFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (mapping *SequenceAliasMapping, err error)

SequenceAliasMappingFromMarshalUtil unmarshals a SequenceAliasMapping using a MarshalUtil (for easier unmarshaling).

func (*SequenceAliasMapping) Bytes

func (s *SequenceAliasMapping) Bytes() (marshaledSequenceAliasMapping []byte)

Bytes returns a marshaled version of the SequenceAliasMapping.

func (*SequenceAliasMapping) ObjectStorageKey

func (s *SequenceAliasMapping) ObjectStorageKey() (objectStorageKey []byte)

ObjectStorageKey returns the key that is used to store the object in the database. It is required to match the StorableObject interface.

func (*SequenceAliasMapping) ObjectStorageValue

func (s *SequenceAliasMapping) ObjectStorageValue() (objectStorageValue []byte)

ObjectStorageValue marshals the Transaction into a sequence of bytes. The ID is not serialized here as it is only used as a key in the object storage.

func (*SequenceAliasMapping) RegisterMapping added in v0.5.8

func (s *SequenceAliasMapping) RegisterMapping(sequenceID SequenceID) (updated bool)

RegisterMapping adds a mapping to a new SequenceID from the current SequenceAlias.

func (*SequenceAliasMapping) SequenceAlias

func (s *SequenceAliasMapping) SequenceAlias() (sequenceAlias SequenceAlias)

SequenceAlias returns the SequenceAlias of SequenceAliasMapping.

func (*SequenceAliasMapping) SequenceID

func (s *SequenceAliasMapping) SequenceID(referencedMarkers *Markers) (sequenceID SequenceID)

SequenceID returns the SequenceID of the SequenceAliasMapping.

func (*SequenceAliasMapping) String added in v0.4.1

func (s *SequenceAliasMapping) String() string

func (*SequenceAliasMapping) UnregisterMapping added in v0.5.8

func (s *SequenceAliasMapping) UnregisterMapping(sequenceID SequenceID) (updated, emptied bool)

UnregisterMapping removed a mapping to a SequenceID from the current SequenceAlias.

func (*SequenceAliasMapping) Update

Update is required to match the StorableObject interface but updates of the object are disabled.

type SequenceID

type SequenceID uint64

SequenceID is the type of the identifier of a Sequence.

func SequenceIDFromBytes

func SequenceIDFromBytes(sequenceIDBytes []byte) (sequenceID SequenceID, consumedBytes int, err error)

SequenceIDFromBytes unmarshals a SequenceID from a sequence of bytes.

func SequenceIDFromMarshalUtil

func SequenceIDFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (sequenceID SequenceID, err error)

SequenceIDFromMarshalUtil unmarshals a SequenceIDs using a MarshalUtil (for easier unmarshaling).

func (SequenceID) Bytes

func (a SequenceID) Bytes() (marshaledSequenceID []byte)

Bytes returns a marshaled version of the SequenceID.

func (SequenceID) String

func (a SequenceID) String() (humanReadableSequenceID string)

String returns a human readable version of the SequenceID.

type SequenceIDs

type SequenceIDs map[SequenceID]types.Empty

SequenceIDs represents a collection of SequenceIDs.

func NewSequenceIDs

func NewSequenceIDs(sequenceIDs ...SequenceID) (result SequenceIDs)

NewSequenceIDs creates a new collection of SequenceIDs.

func SequenceIDsFromBytes

func SequenceIDsFromBytes(sequenceIDBytes []byte) (sequenceIDs SequenceIDs, consumedBytes int, err error)

SequenceIDsFromBytes unmarshals a collection of SequenceIDs from a sequence of bytes.

func SequenceIDsFromMarshalUtil

func SequenceIDsFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (sequenceIDs SequenceIDs, err error)

SequenceIDsFromMarshalUtil unmarshals a collection of SequenceIDs using a MarshalUtil (for easier unmarshaling).

func (SequenceIDs) Alias

func (s SequenceIDs) Alias() (aggregatedSequencesID SequenceAlias)

Alias returns the SequenceAlias of the SequenceIDs. The SequenceAlias is used to address the numerical Sequences in the object storage.

func (SequenceIDs) Bytes

func (s SequenceIDs) Bytes() (marshaledSequenceIDs []byte)

Bytes returns a marshaled version of the SequenceIDs.

func (SequenceIDs) String

func (s SequenceIDs) String() (humanReadableSequenceIDs string)

String returns a human readable version of the SequenceIDs.

type StructureDetails

type StructureDetails struct {
	Rank          uint64
	PastMarkerGap uint64
	IsPastMarker  bool
	SequenceID    SequenceID
	PastMarkers   *Markers
	FutureMarkers *Markers
	// contains filtered or unexported fields
}

StructureDetails represents a container for the complete Marker related information of a node in a DAG that are used to interact with the public API of this package.

func StructureDetailsFromBytes

func StructureDetailsFromBytes(markersBytes []byte) (markersPair *StructureDetails, consumedBytes int, err error)

StructureDetailsFromBytes unmarshals a StructureDetails object from a sequence of bytes.

func StructureDetailsFromMarshalUtil

func StructureDetailsFromMarshalUtil(marshalUtil *marshalutil.MarshalUtil) (structureDetails *StructureDetails, err error)

StructureDetailsFromMarshalUtil unmarshals a StructureDetails using a MarshalUtil (for easier unmarshaling).

func (*StructureDetails) Bytes

func (m *StructureDetails) Bytes() (marshaledStructureDetails []byte)

Bytes returns a marshaled version of the StructureDetails.

func (*StructureDetails) Clone

func (m *StructureDetails) Clone() (clone *StructureDetails)

Clone creates a deep copy of the StructureDetails.

func (*StructureDetails) String

func (m *StructureDetails) String() (humanReadableStructureDetails string)

String returns a human readable version of the StructureDetails.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL