github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/state/isafestateapi/interface.go (about)

     1  /*
     2   * Copyright (c) 2024-present unTill Software Development Group B. V.
     3   * @author Michael Saigachenko
     4   */
     5  
     6  package isafestateapi
     7  
     8  type TKeyBuilder int64
     9  type TKey int64
    10  type TValue int64
    11  type TIntent int64
    12  type QName struct {
    13  	FullPkgName string
    14  	Entity      string
    15  }
    16  
    17  type IStateSafeAPI interface {
    18  	// Basic functions
    19  	KeyBuilder(storage, entityFullQname string) TKeyBuilder
    20  	MustGetValue(key TKeyBuilder) TValue
    21  	QueryValue(key TKeyBuilder) (value TValue, ok bool)
    22  	NewValue(key TKeyBuilder) (v TIntent)
    23  	UpdateValue(key TKeyBuilder, existingValue TValue) (v TIntent)
    24  	ReadValues(key TKeyBuilder, callback func(key TKey, value TValue))
    25  
    26  	// Key Builder
    27  	KeyBuilderPutInt32(key TKeyBuilder, name string, value int32)
    28  	KeyBuilderPutInt64(key TKeyBuilder, name string, value int64)
    29  	KeyBuilderPutFloat32(key TKeyBuilder, name string, value float32)
    30  	KeyBuilderPutFloat64(key TKeyBuilder, name string, value float64)
    31  	KeyBuilderPutString(key TKeyBuilder, name string, value string)
    32  	KeyBuilderPutBytes(key TKeyBuilder, name string, value []byte)
    33  	KeyBuilderPutQName(key TKeyBuilder, name string, value QName)
    34  	KeyBuilderPutBool(key TKeyBuilder, name string, value bool)
    35  
    36  	// Key
    37  	KeyAsInt32(k TKey, name string) int32
    38  	KeyAsInt64(k TKey, name string) int64
    39  	KeyAsFloat32(k TKey, name string) float32
    40  	KeyAsFloat64(k TKey, name string) float64
    41  	KeyAsBytes(k TKey, name string) []byte
    42  	KeyAsString(k TKey, name string) string
    43  	KeyAsQName(k TKey, name string) QName
    44  	KeyAsBool(k TKey, name string) bool
    45  
    46  	// Value
    47  	ValueAsValue(v TValue, name string) (result TValue)
    48  	ValueAsInt32(v TValue, name string) int32
    49  	ValueAsInt64(v TValue, name string) int64
    50  	ValueAsFloat32(v TValue, name string) float32
    51  	ValueAsFloat64(v TValue, name string) float64
    52  	ValueAsBytes(v TValue, name string) []byte
    53  	ValueAsQName(v TValue, name string) QName
    54  	ValueAsBool(v TValue, name string) bool
    55  	ValueAsString(v TValue, name string) string
    56  
    57  	ValueLen(v TValue) int
    58  	ValueGetAsValue(v TValue, index int) (result TValue)
    59  	ValueGetAsInt32(v TValue, index int) int32
    60  	ValueGetAsInt64(v TValue, index int) int64
    61  	ValueGetAsFloat32(v TValue, index int) float32
    62  	ValueGetAsFloat64(v TValue, index int) float64
    63  	ValueGetAsBytes(v TValue, index int) []byte
    64  	ValueGetAsQName(v TValue, index int) QName
    65  	ValueGetAsBool(v TValue, index int) bool
    66  	ValueGetAsString(v TValue, index int) string
    67  
    68  	// Intent
    69  	IntentPutInt64(v TIntent, name string, value int64)
    70  	IntentPutInt32(v TIntent, name string, value int32)
    71  	IntentPutFloat32(v TIntent, name string, value float32)
    72  	IntentPutFloat64(v TIntent, name string, value float64)
    73  	IntentPutString(v TIntent, name string, value string)
    74  	IntentPutBytes(v TIntent, name string, value []byte)
    75  	IntentPutQName(v TIntent, name string, value QName)
    76  	IntentPutBool(v TIntent, name string, value bool)
    77  }