@@ -23,9 +23,14 @@ type (
2323 name string
2424 value value.Value
2525 }
26- Parameters []* Parameter
26+ Parameters interface {
27+ ToYDB (a * allocator.Allocator ) (map [string ]* Ydb.TypedValue , error )
28+ }
29+ Params []* Parameter
2730)
2831
32+ var _ Parameters = (* Params )(nil )
33+
2934func Named (name string , value value.Value ) * Parameter {
3035 return & Parameter {
3136 name : name ,
@@ -41,7 +46,7 @@ func (p *Parameter) Value() value.Value {
4146 return p .value
4247}
4348
44- func (p * Parameters ) String () string {
49+ func (p * Params ) String () string {
4550 buffer := xstring .Buffer ()
4651 defer buffer .Free ()
4752
@@ -62,7 +67,20 @@ func (p *Parameters) String() string {
6267 return buffer .String ()
6368}
6469
65- func (p * Parameters ) ToYDB (a * allocator.Allocator ) map [string ]* Ydb.TypedValue {
70+ func (p * Params ) ToYDB (a * allocator.Allocator ) (map [string ]* Ydb.TypedValue , error ) {
71+ if p == nil {
72+ return nil , nil //nolint:nilnil
73+ }
74+
75+ parameters := make (map [string ]* Ydb.TypedValue , len (* p ))
76+ for _ , param := range * p {
77+ parameters [param .name ] = value .ToYDB (param .value , a )
78+ }
79+
80+ return parameters , nil
81+ }
82+
83+ func (p * Params ) toYDB (a * allocator.Allocator ) map [string ]* Ydb.TypedValue {
6684 if p == nil {
6785 return nil
6886 }
@@ -74,7 +92,7 @@ func (p *Parameters) ToYDB(a *allocator.Allocator) map[string]*Ydb.TypedValue {
7492 return parameters
7593}
7694
77- func (p * Parameters ) Each (it func (name string , v value.Value )) {
95+ func (p * Params ) Each (it func (name string , v value.Value )) {
7896 if p == nil {
7997 return
8098 }
@@ -83,15 +101,15 @@ func (p *Parameters) Each(it func(name string, v value.Value)) {
83101 }
84102}
85103
86- func (p * Parameters ) Count () int {
104+ func (p * Params ) Count () int {
87105 if p == nil {
88106 return 0
89107 }
90108
91109 return len (* p )
92110}
93111
94- func (p * Parameters ) Add (params ... NamedValue ) {
112+ func (p * Params ) Add (params ... NamedValue ) {
95113 for _ , param := range params {
96114 * p = append (* p , Named (param .Name (), param .Value ()))
97115 }
0 commit comments