gitlab.com/evatix-go/core@v1.3.55/coredata/coredynamic/BytesConverter.go (about) 1 package coredynamic 2 3 import ( 4 "errors" 5 6 "gitlab.com/evatix-go/core/coredata/corejson" 7 "gitlab.com/evatix-go/core/coredata/corestr" 8 "gitlab.com/evatix-go/core/errcore" 9 ) 10 11 type BytesConverter struct { 12 rawBytes []byte 13 } 14 15 func NewBytesConverter( 16 rawBytes []byte, 17 ) *BytesConverter { 18 return &BytesConverter{ 19 rawBytes: rawBytes, 20 } 21 } 22 23 func NewBytesConverterUsingJsonResult( 24 jsonResult *corejson.Result, 25 ) (*BytesConverter, error) { 26 if jsonResult.HasIssuesOrEmpty() { 27 return nil, jsonResult.MeaningfulError() 28 } 29 30 return NewBytesConverter(jsonResult.Bytes), nil 31 } 32 33 func (it BytesConverter) Deserialize( 34 deserializePointer interface{}, 35 ) error { 36 return corejson. 37 Deserialize. 38 UsingBytes(it.rawBytes, deserializePointer) 39 } 40 41 func (it BytesConverter) DeserializeMust( 42 deserializePointer interface{}, 43 ) { 44 corejson. 45 Deserialize. 46 UsingBytesMust(it.rawBytes, deserializePointer) 47 } 48 49 func (it BytesConverter) ToBool() (isResult bool, err error) { 50 return corejson. 51 Deserialize. 52 BytesTo. 53 Bool(it.rawBytes) 54 } 55 56 func (it BytesConverter) ToBoolMust() (isResult bool) { 57 return corejson. 58 Deserialize. 59 BytesTo. 60 BoolMust(it.rawBytes) 61 } 62 63 func (it BytesConverter) SafeCastString() (line string) { 64 if len(it.rawBytes) == 0 { 65 return "" 66 } 67 68 return string(it.rawBytes) 69 } 70 71 func (it BytesConverter) CastString() (line string, err error) { 72 if len(it.rawBytes) == 0 { 73 return "", errors.New("cast failed for empty bytes") 74 } 75 76 return string(it.rawBytes), nil 77 } 78 79 func (it BytesConverter) ToString() (line string, err error) { 80 return corejson. 81 Deserialize. 82 BytesTo. 83 String(it.rawBytes) 84 } 85 86 func (it BytesConverter) ToStringMust() (line string) { 87 line, err := corejson. 88 Deserialize. 89 BytesTo. 90 String(it.rawBytes) 91 errcore.HandleErr(err) 92 93 return line 94 } 95 96 func (it BytesConverter) ToStrings() (lines []string, err error) { 97 return corejson. 98 Deserialize. 99 BytesTo. 100 Strings(it.rawBytes) 101 } 102 103 func (it BytesConverter) ToStringsMust() (lines []string) { 104 return corejson. 105 Deserialize. 106 BytesTo. 107 StringsMust(it.rawBytes) 108 } 109 110 func (it BytesConverter) ToInt64() (integer64 int64, err error) { 111 err = corejson. 112 Deserialize. 113 UsingBytes(it.rawBytes, &integer64) 114 115 return integer64, err 116 } 117 118 func (it BytesConverter) ToInt64Must() (integer64 int64) { 119 corejson. 120 Deserialize. 121 UsingBytesMust(it.rawBytes, &integer64) 122 123 return integer64 124 } 125 126 func (it BytesConverter) ToHashmap() (hashmap *corestr.Hashmap, err error) { 127 hashmap = corestr.Empty.Hashmap() 128 129 err = corejson. 130 Deserialize. 131 UsingBytes(it.rawBytes, hashmap) 132 133 if err == nil { 134 return hashmap, nil 135 } 136 137 return nil, err 138 } 139 140 func (it BytesConverter) ToHashmapMust() (hashmap *corestr.Hashmap) { 141 hashmap, err := it.ToHashmap() 142 errcore.HandleErr(err) 143 144 return hashmap 145 } 146 147 func (it BytesConverter) ToHashset() (hashset *corestr.Hashset, err error) { 148 hashset = corestr.Empty.Hashset() 149 150 err = corejson. 151 Deserialize. 152 UsingBytes(it.rawBytes, hashset) 153 154 if err == nil { 155 return hashset, nil 156 } 157 158 return nil, err 159 } 160 161 func (it BytesConverter) ToHashsetMust() (hashset *corestr.Hashset) { 162 hashset, err := it.ToHashset() 163 errcore.HandleErr(err) 164 165 return hashset 166 } 167 168 func (it BytesConverter) ToCollection() (collection *corestr.Collection, err error) { 169 collection = corestr.Empty.Collection() 170 171 err = corejson. 172 Deserialize. 173 UsingBytes(it.rawBytes, collection) 174 175 if err == nil { 176 return collection, nil 177 } 178 179 return nil, err 180 } 181 182 func (it BytesConverter) ToCollectionMust() (collection *corestr.Collection) { 183 collection, err := it.ToCollection() 184 errcore.HandleErr(err) 185 186 return collection 187 } 188 189 func (it BytesConverter) ToSimpleSlice() (simpleSlice *corestr.SimpleSlice, err error) { 190 simpleSlice = corestr.Empty.SimpleSlice() 191 192 err = corejson. 193 Deserialize. 194 UsingBytes(it.rawBytes, simpleSlice) 195 196 if err == nil { 197 return simpleSlice, nil 198 } 199 200 return nil, err 201 } 202 203 func (it BytesConverter) ToSimpleSliceMust() (simpleSlice *corestr.SimpleSlice) { 204 simpleSlice, err := it.ToSimpleSlice() 205 errcore.HandleErr(err) 206 207 return simpleSlice 208 } 209 210 func (it BytesConverter) ToKeyValCollection() (keyValCollection *KeyValCollection, err error) { 211 keyValCollection = EmptyKeyValCollection() 212 213 err = corejson. 214 Deserialize. 215 UsingBytes(it.rawBytes, keyValCollection) 216 217 if err == nil { 218 return keyValCollection, nil 219 } 220 221 return nil, err 222 } 223 224 func (it BytesConverter) ToAnyCollection() (anyCollection *AnyCollection, err error) { 225 anyCollection = EmptyAnyCollection() 226 227 err = corejson. 228 Deserialize. 229 UsingBytes(it.rawBytes, anyCollection) 230 231 if err == nil { 232 return anyCollection, nil 233 } 234 235 return nil, err 236 } 237 238 func (it BytesConverter) ToMapAnyItems() (mapAnyItems *MapAnyItems, err error) { 239 mapAnyItems = EmptyMapAnyItems() 240 241 err = corejson. 242 Deserialize. 243 UsingBytes(it.rawBytes, mapAnyItems) 244 245 if err == nil { 246 return mapAnyItems, nil 247 } 248 249 return nil, err 250 } 251 252 func (it BytesConverter) ToDynamicCollection() (dynamicCollection *DynamicCollection, err error) { 253 dynamicCollection = EmptyDynamicCollection() 254 255 err = corejson. 256 Deserialize. 257 UsingBytes(it.rawBytes, dynamicCollection) 258 259 if err == nil { 260 return dynamicCollection, nil 261 } 262 263 return nil, err 264 } 265 266 func (it BytesConverter) ToJsonResultCollection() ( 267 jsonResultCollection *corejson.ResultsCollection, err error, 268 ) { 269 jsonResultCollection = corejson.Empty.ResultsCollection() 270 271 err = corejson. 272 Deserialize. 273 UsingBytes(it.rawBytes, jsonResultCollection) 274 275 if err == nil { 276 return jsonResultCollection, nil 277 } 278 279 return nil, err 280 } 281 282 func (it BytesConverter) ToJsonMapResults() ( 283 jsonMapResults *corejson.MapResults, err error, 284 ) { 285 jsonMapResults = corejson.Empty.MapResults() 286 287 err = corejson. 288 Deserialize. 289 UsingBytes(it.rawBytes, jsonMapResults) 290 291 if err == nil { 292 return jsonMapResults, nil 293 } 294 295 return nil, err 296 } 297 298 func (it BytesConverter) ToBytesCollection() ( 299 bytesCollection *corejson.BytesCollection, err error, 300 ) { 301 bytesCollection = corejson.Empty.BytesCollectionPtr() 302 303 err = corejson. 304 Deserialize. 305 UsingBytes(it.rawBytes, bytesCollection) 306 307 if err == nil { 308 return bytesCollection, nil 309 } 310 311 return nil, err 312 }