@@ -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,16 @@ 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+ parameters := make (map [string ]* Ydb.TypedValue , len (* p ))
72+ for _ , param := range * p {
73+ parameters [param .name ] = value .ToYDB (param .value , a )
74+ }
75+
76+ return parameters , nil
77+ }
78+
79+ func (p * Params ) toYDB (a * allocator.Allocator ) map [string ]* Ydb.TypedValue {
6680 if p == nil {
6781 return nil
6882 }
@@ -74,7 +88,7 @@ func (p *Parameters) ToYDB(a *allocator.Allocator) map[string]*Ydb.TypedValue {
7488 return parameters
7589}
7690
77- func (p * Parameters ) Each (it func (name string , v value.Value )) {
91+ func (p * Params ) Each (it func (name string , v value.Value )) {
7892 if p == nil {
7993 return
8094 }
@@ -83,15 +97,15 @@ func (p *Parameters) Each(it func(name string, v value.Value)) {
8397 }
8498}
8599
86- func (p * Parameters ) Count () int {
100+ func (p * Params ) Count () int {
87101 if p == nil {
88102 return 0
89103 }
90104
91105 return len (* p )
92106}
93107
94- func (p * Parameters ) Add (params ... NamedValue ) {
108+ func (p * Params ) Add (params ... NamedValue ) {
95109 for _ , param := range params {
96110 * p = append (* p , Named (param .Name (), param .Value ()))
97111 }
0 commit comments