github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/params/list.go (about) 1 package params 2 3 import ( 4 "time" 5 6 "github.com/google/uuid" 7 8 "github.com/ydb-platform/ydb-go-sdk/v3/internal/value" 9 ) 10 11 type ( 12 list struct { 13 parent Builder 14 name string 15 values []value.Value 16 } 17 listItem struct { 18 parent *list 19 } 20 ) 21 22 func (l *list) Add() *listItem { 23 return &listItem{ 24 parent: l, 25 } 26 } 27 28 func (l *list) AddItems(items ...value.Value) *list { 29 l.values = append(l.values, items...) 30 31 return l 32 } 33 34 func (l *list) EndList() Builder { 35 l.parent.params = append(l.parent.params, &Parameter{ 36 parent: l.parent, 37 name: l.name, 38 value: value.ListValue(l.values...), 39 }) 40 41 return l.parent 42 } 43 44 func (l *listItem) Text(v string) *list { 45 l.parent.values = append(l.parent.values, value.TextValue(v)) 46 47 return l.parent 48 } 49 50 func (l *listItem) Bytes(v []byte) *list { 51 l.parent.values = append(l.parent.values, value.BytesValue(v)) 52 53 return l.parent 54 } 55 56 func (l *listItem) Bool(v bool) *list { 57 l.parent.values = append(l.parent.values, value.BoolValue(v)) 58 59 return l.parent 60 } 61 62 func (l *listItem) Uint64(v uint64) *list { 63 l.parent.values = append(l.parent.values, value.Uint64Value(v)) 64 65 return l.parent 66 } 67 68 func (l *listItem) Int64(v int64) *list { 69 l.parent.values = append(l.parent.values, value.Int64Value(v)) 70 71 return l.parent 72 } 73 74 func (l *listItem) Uint32(v uint32) *list { 75 l.parent.values = append(l.parent.values, value.Uint32Value(v)) 76 77 return l.parent 78 } 79 80 func (l *listItem) Int32(v int32) *list { 81 l.parent.values = append(l.parent.values, value.Int32Value(v)) 82 83 return l.parent 84 } 85 86 func (l *listItem) Uint16(v uint16) *list { 87 l.parent.values = append(l.parent.values, value.Uint16Value(v)) 88 89 return l.parent 90 } 91 92 func (l *listItem) Int16(v int16) *list { 93 l.parent.values = append(l.parent.values, value.Int16Value(v)) 94 95 return l.parent 96 } 97 98 func (l *listItem) Uint8(v uint8) *list { 99 l.parent.values = append(l.parent.values, value.Uint8Value(v)) 100 101 return l.parent 102 } 103 104 func (l *listItem) Int8(v int8) *list { 105 l.parent.values = append(l.parent.values, value.Int8Value(v)) 106 107 return l.parent 108 } 109 110 func (l *listItem) Float(v float32) *list { 111 l.parent.values = append(l.parent.values, value.FloatValue(v)) 112 113 return l.parent 114 } 115 116 func (l *listItem) Double(v float64) *list { 117 l.parent.values = append(l.parent.values, value.DoubleValue(v)) 118 119 return l.parent 120 } 121 122 func (l *listItem) Decimal(v [16]byte, precision, scale uint32) *list { 123 l.parent.values = append(l.parent.values, value.DecimalValue(v, precision, scale)) 124 125 return l.parent 126 } 127 128 func (l *listItem) Timestamp(v time.Time) *list { 129 l.parent.values = append(l.parent.values, value.TimestampValueFromTime(v)) 130 131 return l.parent 132 } 133 134 func (l *listItem) Date(v time.Time) *list { 135 l.parent.values = append(l.parent.values, value.DateValueFromTime(v)) 136 137 return l.parent 138 } 139 140 func (l *listItem) Datetime(v time.Time) *list { 141 l.parent.values = append(l.parent.values, value.DatetimeValueFromTime(v)) 142 143 return l.parent 144 } 145 146 func (l *listItem) Interval(v time.Duration) *list { 147 l.parent.values = append(l.parent.values, value.IntervalValueFromDuration(v)) 148 149 return l.parent 150 } 151 152 func (l *listItem) JSON(v string) *list { 153 l.parent.values = append(l.parent.values, value.JSONValue(v)) 154 155 return l.parent 156 } 157 158 func (l *listItem) JSONDocument(v string) *list { 159 l.parent.values = append(l.parent.values, value.JSONDocumentValue(v)) 160 161 return l.parent 162 } 163 164 func (l *listItem) YSON(v []byte) *list { 165 l.parent.values = append(l.parent.values, value.YSONValue(v)) 166 167 return l.parent 168 } 169 170 //// UUID has data corruption bug and will be removed in next version. 171 //// 172 //// Deprecated: Use Uuid (prefer) or UUIDWithIssue1501Value (for save old behavior) instead. 173 //// https://github.com/ydb-platform/ydb-go-sdk/issues/1501 174 //func (l *listItem) UUID(v [16]byte) *list { 175 // l.parent.values = append(l.parent.values, value.UUIDWithIssue1501Value(v)) 176 // 177 // return l.parent 178 //} 179 180 func (l *listItem) Uuid(v uuid.UUID) *list { //nolint:revive,stylecheck 181 l.parent.values = append(l.parent.values, value.Uuid(v)) 182 183 return l.parent 184 } 185 186 func (l *listItem) UUIDWithIssue1501Value(v [16]byte) *list { 187 l.parent.values = append(l.parent.values, value.UUIDWithIssue1501Value(v)) 188 189 return l.parent 190 } 191 192 func (l *listItem) TzDate(v time.Time) *list { 193 l.parent.values = append(l.parent.values, value.TzDateValueFromTime(v)) 194 195 return l.parent 196 } 197 198 func (l *listItem) TzTimestamp(v time.Time) *list { 199 l.parent.values = append(l.parent.values, value.TzTimestampValueFromTime(v)) 200 201 return l.parent 202 } 203 204 func (l *listItem) TzDatetime(v time.Time) *list { 205 l.parent.values = append(l.parent.values, value.TzDatetimeValueFromTime(v)) 206 207 return l.parent 208 }