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  }