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 }