github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/exttinygo/impl.go (about) 1 /* 2 * Copyright (c) 2023-present unTill Pro, Ltd. 3 * @author Michael Saigachenko 4 */ 5 6 package exttinygo 7 8 import ( 9 "github.com/voedger/voedger/pkg/exttinygo/internal" 10 safe "github.com/voedger/voedger/pkg/state/isafestateapi" 11 ) 12 13 func Assert(condition bool, msg string) { 14 if !condition { 15 panic("assertion failed: " + msg) 16 } 17 } 18 19 func keyBuilderImpl(storage, entity string) (b TKeyBuilder) { 20 return TKeyBuilder(internal.SafeStateAPI.KeyBuilder(storage, entity)) 21 } 22 23 func queryValueImpl(key TKeyBuilder) (value TValue, exists bool) { 24 v, exsts := internal.SafeStateAPI.QueryValue(safe.TKeyBuilder(key)) 25 return TValue(v), exsts 26 } 27 28 func mustGetValueImpl(key TKeyBuilder) TValue { 29 return TValue(internal.SafeStateAPI.MustGetValue(safe.TKeyBuilder(key))) 30 } 31 32 var readCallback func(key TKey, value TValue) 33 34 var safeReadCallback = func(key safe.TKey, value safe.TValue) { 35 readCallback(TKey(key), TValue(value)) 36 } 37 38 func readValuesImpl(key TKeyBuilder, cb func(key TKey, value TValue)) { 39 readCallback = cb 40 internal.SafeStateAPI.ReadValues(safe.TKeyBuilder(key), safeReadCallback) 41 } 42 43 func updateValueImpl(key TKeyBuilder, existingValue TValue) TIntent { 44 return TIntent(internal.SafeStateAPI.UpdateValue(safe.TKeyBuilder(key), safe.TValue(existingValue))) 45 } 46 47 func newValueImpl(key TKeyBuilder) TIntent { 48 return TIntent(internal.SafeStateAPI.NewValue(safe.TKeyBuilder(key))) 49 }