github.com/safing/portbase@v0.19.5/formats/dsd/gencode_test.go (about)

     1  //nolint:nakedret,unconvert,gocognit,wastedassign,gofumpt
     2  package dsd
     3  
     4  func (d *SimpleTestStruct) Size() (s uint64) {
     5  
     6  	{
     7  		l := uint64(len(d.S))
     8  
     9  		{
    10  
    11  			t := l
    12  			for t >= 0x80 {
    13  				t >>= 7
    14  				s++
    15  			}
    16  			s++
    17  
    18  		}
    19  		s += l
    20  	}
    21  	s++
    22  	return
    23  }
    24  
    25  func (d *SimpleTestStruct) GenCodeMarshal(buf []byte) ([]byte, error) {
    26  	size := d.Size()
    27  	{
    28  		if uint64(cap(buf)) >= size {
    29  			buf = buf[:size]
    30  		} else {
    31  			buf = make([]byte, size)
    32  		}
    33  	}
    34  	i := uint64(0)
    35  
    36  	{
    37  		l := uint64(len(d.S))
    38  
    39  		{
    40  
    41  			t := uint64(l)
    42  
    43  			for t >= 0x80 {
    44  				buf[i+0] = byte(t) | 0x80
    45  				t >>= 7
    46  				i++
    47  			}
    48  			buf[i+0] = byte(t)
    49  			i++
    50  
    51  		}
    52  		copy(buf[i+0:], d.S)
    53  		i += l
    54  	}
    55  	{
    56  		buf[i+0] = d.B
    57  	}
    58  	return buf[:i+1], nil
    59  }
    60  
    61  func (d *SimpleTestStruct) GenCodeUnmarshal(buf []byte) (uint64, error) {
    62  	i := uint64(0)
    63  
    64  	{
    65  		l := uint64(0)
    66  
    67  		{
    68  
    69  			bs := uint8(7)
    70  			t := uint64(buf[i+0] & 0x7F)
    71  			for buf[i+0]&0x80 == 0x80 {
    72  				i++
    73  				t |= uint64(buf[i+0]&0x7F) << bs
    74  				bs += 7
    75  			}
    76  			i++
    77  
    78  			l = t
    79  
    80  		}
    81  		d.S = string(buf[i+0 : i+0+l])
    82  		i += l
    83  	}
    84  	{
    85  		d.B = buf[i+0]
    86  	}
    87  	return i + 1, nil
    88  }
    89  
    90  func (d *GenCodeTestStruct) Size() (s uint64) {
    91  
    92  	{
    93  		l := uint64(len(d.S))
    94  
    95  		{
    96  
    97  			t := l
    98  			for t >= 0x80 {
    99  				t >>= 7
   100  				s++
   101  			}
   102  			s++
   103  
   104  		}
   105  		s += l
   106  	}
   107  	{
   108  		if d.Sp != nil {
   109  
   110  			{
   111  				l := uint64(len((*d.Sp)))
   112  
   113  				{
   114  
   115  					t := l
   116  					for t >= 0x80 {
   117  						t >>= 7
   118  						s++
   119  					}
   120  					s++
   121  
   122  				}
   123  				s += l
   124  			}
   125  			s += 0
   126  		}
   127  	}
   128  	{
   129  		l := uint64(len(d.Sa))
   130  
   131  		{
   132  
   133  			t := l
   134  			for t >= 0x80 {
   135  				t >>= 7
   136  				s++
   137  			}
   138  			s++
   139  
   140  		}
   141  
   142  		for k0 := range d.Sa {
   143  
   144  			{
   145  				l := uint64(len(d.Sa[k0]))
   146  
   147  				{
   148  
   149  					t := l
   150  					for t >= 0x80 {
   151  						t >>= 7
   152  						s++
   153  					}
   154  					s++
   155  
   156  				}
   157  				s += l
   158  			}
   159  
   160  		}
   161  
   162  	}
   163  	{
   164  		if d.Sap != nil {
   165  
   166  			{
   167  				l := uint64(len((*d.Sap)))
   168  
   169  				{
   170  
   171  					t := l
   172  					for t >= 0x80 {
   173  						t >>= 7
   174  						s++
   175  					}
   176  					s++
   177  
   178  				}
   179  
   180  				for k0 := range *d.Sap {
   181  
   182  					{
   183  						l := uint64(len((*d.Sap)[k0]))
   184  
   185  						{
   186  
   187  							t := l
   188  							for t >= 0x80 {
   189  								t >>= 7
   190  								s++
   191  							}
   192  							s++
   193  
   194  						}
   195  						s += l
   196  					}
   197  
   198  				}
   199  
   200  			}
   201  			s += 0
   202  		}
   203  	}
   204  	{
   205  		if d.Bp != nil {
   206  
   207  			s++
   208  		}
   209  	}
   210  	{
   211  		l := uint64(len(d.Ba))
   212  
   213  		{
   214  
   215  			t := l
   216  			for t >= 0x80 {
   217  				t >>= 7
   218  				s++
   219  			}
   220  			s++
   221  
   222  		}
   223  		s += l
   224  	}
   225  	{
   226  		if d.Bap != nil {
   227  
   228  			{
   229  				l := uint64(len((*d.Bap)))
   230  
   231  				{
   232  
   233  					t := l
   234  					for t >= 0x80 {
   235  						t >>= 7
   236  						s++
   237  					}
   238  					s++
   239  
   240  				}
   241  				s += l
   242  			}
   243  			s += 0
   244  		}
   245  	}
   246  	s += 35
   247  	return
   248  }
   249  
   250  func (d *GenCodeTestStruct) GenCodeMarshal(buf []byte) ([]byte, error) { //nolint:maintidx
   251  	size := d.Size()
   252  	{
   253  		if uint64(cap(buf)) >= size {
   254  			buf = buf[:size]
   255  		} else {
   256  			buf = make([]byte, size)
   257  		}
   258  	}
   259  	i := uint64(0)
   260  
   261  	{
   262  
   263  		buf[0+0] = byte(d.I8 >> 0)
   264  
   265  	}
   266  	{
   267  
   268  		buf[0+1] = byte(d.I16 >> 0)
   269  
   270  		buf[1+1] = byte(d.I16 >> 8)
   271  
   272  	}
   273  	{
   274  
   275  		buf[0+3] = byte(d.I32 >> 0)
   276  
   277  		buf[1+3] = byte(d.I32 >> 8)
   278  
   279  		buf[2+3] = byte(d.I32 >> 16)
   280  
   281  		buf[3+3] = byte(d.I32 >> 24)
   282  
   283  	}
   284  	{
   285  
   286  		buf[0+7] = byte(d.I64 >> 0)
   287  
   288  		buf[1+7] = byte(d.I64 >> 8)
   289  
   290  		buf[2+7] = byte(d.I64 >> 16)
   291  
   292  		buf[3+7] = byte(d.I64 >> 24)
   293  
   294  		buf[4+7] = byte(d.I64 >> 32)
   295  
   296  		buf[5+7] = byte(d.I64 >> 40)
   297  
   298  		buf[6+7] = byte(d.I64 >> 48)
   299  
   300  		buf[7+7] = byte(d.I64 >> 56)
   301  
   302  	}
   303  	{
   304  
   305  		buf[0+15] = byte(d.UI8 >> 0)
   306  
   307  	}
   308  	{
   309  
   310  		buf[0+16] = byte(d.UI16 >> 0)
   311  
   312  		buf[1+16] = byte(d.UI16 >> 8)
   313  
   314  	}
   315  	{
   316  
   317  		buf[0+18] = byte(d.UI32 >> 0)
   318  
   319  		buf[1+18] = byte(d.UI32 >> 8)
   320  
   321  		buf[2+18] = byte(d.UI32 >> 16)
   322  
   323  		buf[3+18] = byte(d.UI32 >> 24)
   324  
   325  	}
   326  	{
   327  
   328  		buf[0+22] = byte(d.UI64 >> 0)
   329  
   330  		buf[1+22] = byte(d.UI64 >> 8)
   331  
   332  		buf[2+22] = byte(d.UI64 >> 16)
   333  
   334  		buf[3+22] = byte(d.UI64 >> 24)
   335  
   336  		buf[4+22] = byte(d.UI64 >> 32)
   337  
   338  		buf[5+22] = byte(d.UI64 >> 40)
   339  
   340  		buf[6+22] = byte(d.UI64 >> 48)
   341  
   342  		buf[7+22] = byte(d.UI64 >> 56)
   343  
   344  	}
   345  	{
   346  		l := uint64(len(d.S))
   347  
   348  		{
   349  
   350  			t := uint64(l)
   351  
   352  			for t >= 0x80 {
   353  				buf[i+30] = byte(t) | 0x80
   354  				t >>= 7
   355  				i++
   356  			}
   357  			buf[i+30] = byte(t)
   358  			i++
   359  
   360  		}
   361  		copy(buf[i+30:], d.S)
   362  		i += l
   363  	}
   364  	{
   365  		if d.Sp == nil {
   366  			buf[i+30] = 0
   367  		} else {
   368  			buf[i+30] = 1
   369  
   370  			{
   371  				l := uint64(len((*d.Sp)))
   372  
   373  				{
   374  
   375  					t := uint64(l)
   376  
   377  					for t >= 0x80 {
   378  						buf[i+31] = byte(t) | 0x80
   379  						t >>= 7
   380  						i++
   381  					}
   382  					buf[i+31] = byte(t)
   383  					i++
   384  
   385  				}
   386  				copy(buf[i+31:], (*d.Sp))
   387  				i += l
   388  			}
   389  			i += 0
   390  		}
   391  	}
   392  	{
   393  		l := uint64(len(d.Sa))
   394  
   395  		{
   396  
   397  			t := uint64(l)
   398  
   399  			for t >= 0x80 {
   400  				buf[i+31] = byte(t) | 0x80
   401  				t >>= 7
   402  				i++
   403  			}
   404  			buf[i+31] = byte(t)
   405  			i++
   406  
   407  		}
   408  		for k0 := range d.Sa {
   409  
   410  			{
   411  				l := uint64(len(d.Sa[k0]))
   412  
   413  				{
   414  
   415  					t := uint64(l)
   416  
   417  					for t >= 0x80 {
   418  						buf[i+31] = byte(t) | 0x80
   419  						t >>= 7
   420  						i++
   421  					}
   422  					buf[i+31] = byte(t)
   423  					i++
   424  
   425  				}
   426  				copy(buf[i+31:], d.Sa[k0])
   427  				i += l
   428  			}
   429  
   430  		}
   431  	}
   432  	{
   433  		if d.Sap == nil {
   434  			buf[i+31] = 0
   435  		} else {
   436  			buf[i+31] = 1
   437  
   438  			{
   439  				l := uint64(len((*d.Sap)))
   440  
   441  				{
   442  
   443  					t := uint64(l)
   444  
   445  					for t >= 0x80 {
   446  						buf[i+32] = byte(t) | 0x80
   447  						t >>= 7
   448  						i++
   449  					}
   450  					buf[i+32] = byte(t)
   451  					i++
   452  
   453  				}
   454  				for k0 := range *d.Sap {
   455  
   456  					{
   457  						l := uint64(len((*d.Sap)[k0]))
   458  
   459  						{
   460  
   461  							t := uint64(l)
   462  
   463  							for t >= 0x80 {
   464  								buf[i+32] = byte(t) | 0x80
   465  								t >>= 7
   466  								i++
   467  							}
   468  							buf[i+32] = byte(t)
   469  							i++
   470  
   471  						}
   472  						copy(buf[i+32:], (*d.Sap)[k0])
   473  						i += l
   474  					}
   475  
   476  				}
   477  			}
   478  			i += 0
   479  		}
   480  	}
   481  	{
   482  		buf[i+32] = d.B
   483  	}
   484  	{
   485  		if d.Bp == nil {
   486  			buf[i+33] = 0
   487  		} else {
   488  			buf[i+33] = 1
   489  
   490  			{
   491  				buf[i+34] = (*d.Bp)
   492  			}
   493  			i++
   494  		}
   495  	}
   496  	{
   497  		l := uint64(len(d.Ba))
   498  
   499  		{
   500  
   501  			t := uint64(l)
   502  
   503  			for t >= 0x80 {
   504  				buf[i+34] = byte(t) | 0x80
   505  				t >>= 7
   506  				i++
   507  			}
   508  			buf[i+34] = byte(t)
   509  			i++
   510  
   511  		}
   512  		copy(buf[i+34:], d.Ba)
   513  		i += l
   514  	}
   515  	{
   516  		if d.Bap == nil {
   517  			buf[i+34] = 0
   518  		} else {
   519  			buf[i+34] = 1
   520  
   521  			{
   522  				l := uint64(len((*d.Bap)))
   523  
   524  				{
   525  
   526  					t := uint64(l)
   527  
   528  					for t >= 0x80 {
   529  						buf[i+35] = byte(t) | 0x80
   530  						t >>= 7
   531  						i++
   532  					}
   533  					buf[i+35] = byte(t)
   534  					i++
   535  
   536  				}
   537  				copy(buf[i+35:], (*d.Bap))
   538  				i += l
   539  			}
   540  			i += 0
   541  		}
   542  	}
   543  	return buf[:i+35], nil
   544  }
   545  
   546  func (d *GenCodeTestStruct) GenCodeUnmarshal(buf []byte) (uint64, error) { //nolint:maintidx
   547  	i := uint64(0)
   548  
   549  	{
   550  
   551  		d.I8 = 0 | (int8(buf[i+0+0]) << 0)
   552  
   553  	}
   554  	{
   555  
   556  		d.I16 = 0 | (int16(buf[i+0+1]) << 0) | (int16(buf[i+1+1]) << 8)
   557  
   558  	}
   559  	{
   560  
   561  		d.I32 = 0 | (int32(buf[i+0+3]) << 0) | (int32(buf[i+1+3]) << 8) | (int32(buf[i+2+3]) << 16) | (int32(buf[i+3+3]) << 24)
   562  
   563  	}
   564  	{
   565  
   566  		d.I64 = 0 | (int64(buf[i+0+7]) << 0) | (int64(buf[i+1+7]) << 8) | (int64(buf[i+2+7]) << 16) | (int64(buf[i+3+7]) << 24) | (int64(buf[i+4+7]) << 32) | (int64(buf[i+5+7]) << 40) | (int64(buf[i+6+7]) << 48) | (int64(buf[i+7+7]) << 56)
   567  
   568  	}
   569  	{
   570  
   571  		d.UI8 = 0 | (uint8(buf[i+0+15]) << 0)
   572  
   573  	}
   574  	{
   575  
   576  		d.UI16 = 0 | (uint16(buf[i+0+16]) << 0) | (uint16(buf[i+1+16]) << 8)
   577  
   578  	}
   579  	{
   580  
   581  		d.UI32 = 0 | (uint32(buf[i+0+18]) << 0) | (uint32(buf[i+1+18]) << 8) | (uint32(buf[i+2+18]) << 16) | (uint32(buf[i+3+18]) << 24)
   582  
   583  	}
   584  	{
   585  
   586  		d.UI64 = 0 | (uint64(buf[i+0+22]) << 0) | (uint64(buf[i+1+22]) << 8) | (uint64(buf[i+2+22]) << 16) | (uint64(buf[i+3+22]) << 24) | (uint64(buf[i+4+22]) << 32) | (uint64(buf[i+5+22]) << 40) | (uint64(buf[i+6+22]) << 48) | (uint64(buf[i+7+22]) << 56)
   587  
   588  	}
   589  	{
   590  		l := uint64(0)
   591  
   592  		{
   593  
   594  			bs := uint8(7)
   595  			t := uint64(buf[i+30] & 0x7F)
   596  			for buf[i+30]&0x80 == 0x80 {
   597  				i++
   598  				t |= uint64(buf[i+30]&0x7F) << bs
   599  				bs += 7
   600  			}
   601  			i++
   602  
   603  			l = t
   604  
   605  		}
   606  		d.S = string(buf[i+30 : i+30+l])
   607  		i += l
   608  	}
   609  	{
   610  		if buf[i+30] == 1 {
   611  			if d.Sp == nil {
   612  				d.Sp = new(string)
   613  			}
   614  
   615  			{
   616  				l := uint64(0)
   617  
   618  				{
   619  
   620  					bs := uint8(7)
   621  					t := uint64(buf[i+31] & 0x7F)
   622  					for buf[i+31]&0x80 == 0x80 {
   623  						i++
   624  						t |= uint64(buf[i+31]&0x7F) << bs
   625  						bs += 7
   626  					}
   627  					i++
   628  
   629  					l = t
   630  
   631  				}
   632  				(*d.Sp) = string(buf[i+31 : i+31+l])
   633  				i += l
   634  			}
   635  			i += 0
   636  		} else {
   637  			d.Sp = nil
   638  		}
   639  	}
   640  	{
   641  		l := uint64(0)
   642  
   643  		{
   644  
   645  			bs := uint8(7)
   646  			t := uint64(buf[i+31] & 0x7F)
   647  			for buf[i+31]&0x80 == 0x80 {
   648  				i++
   649  				t |= uint64(buf[i+31]&0x7F) << bs
   650  				bs += 7
   651  			}
   652  			i++
   653  
   654  			l = t
   655  
   656  		}
   657  		if uint64(cap(d.Sa)) >= l {
   658  			d.Sa = d.Sa[:l]
   659  		} else {
   660  			d.Sa = make([]string, l)
   661  		}
   662  		for k0 := range d.Sa {
   663  
   664  			{
   665  				l := uint64(0)
   666  
   667  				{
   668  
   669  					bs := uint8(7)
   670  					t := uint64(buf[i+31] & 0x7F)
   671  					for buf[i+31]&0x80 == 0x80 {
   672  						i++
   673  						t |= uint64(buf[i+31]&0x7F) << bs
   674  						bs += 7
   675  					}
   676  					i++
   677  
   678  					l = t
   679  
   680  				}
   681  				d.Sa[k0] = string(buf[i+31 : i+31+l])
   682  				i += l
   683  			}
   684  
   685  		}
   686  	}
   687  	{
   688  		if buf[i+31] == 1 {
   689  			if d.Sap == nil {
   690  				d.Sap = new([]string)
   691  			}
   692  
   693  			{
   694  				l := uint64(0)
   695  
   696  				{
   697  
   698  					bs := uint8(7)
   699  					t := uint64(buf[i+32] & 0x7F)
   700  					for buf[i+32]&0x80 == 0x80 {
   701  						i++
   702  						t |= uint64(buf[i+32]&0x7F) << bs
   703  						bs += 7
   704  					}
   705  					i++
   706  
   707  					l = t
   708  
   709  				}
   710  				if uint64(cap((*d.Sap))) >= l {
   711  					(*d.Sap) = (*d.Sap)[:l]
   712  				} else {
   713  					(*d.Sap) = make([]string, l)
   714  				}
   715  				for k0 := range *d.Sap {
   716  
   717  					{
   718  						l := uint64(0)
   719  
   720  						{
   721  
   722  							bs := uint8(7)
   723  							t := uint64(buf[i+32] & 0x7F)
   724  							for buf[i+32]&0x80 == 0x80 {
   725  								i++
   726  								t |= uint64(buf[i+32]&0x7F) << bs
   727  								bs += 7
   728  							}
   729  							i++
   730  
   731  							l = t
   732  
   733  						}
   734  						(*d.Sap)[k0] = string(buf[i+32 : i+32+l])
   735  						i += l
   736  					}
   737  
   738  				}
   739  			}
   740  			i += 0
   741  		} else {
   742  			d.Sap = nil
   743  		}
   744  	}
   745  	{
   746  		d.B = buf[i+32]
   747  	}
   748  	{
   749  		if buf[i+33] == 1 {
   750  			if d.Bp == nil {
   751  				d.Bp = new(byte)
   752  			}
   753  
   754  			{
   755  				(*d.Bp) = buf[i+34]
   756  			}
   757  			i++
   758  		} else {
   759  			d.Bp = nil
   760  		}
   761  	}
   762  	{
   763  		l := uint64(0)
   764  
   765  		{
   766  
   767  			bs := uint8(7)
   768  			t := uint64(buf[i+34] & 0x7F)
   769  			for buf[i+34]&0x80 == 0x80 {
   770  				i++
   771  				t |= uint64(buf[i+34]&0x7F) << bs
   772  				bs += 7
   773  			}
   774  			i++
   775  
   776  			l = t
   777  
   778  		}
   779  		if uint64(cap(d.Ba)) >= l {
   780  			d.Ba = d.Ba[:l]
   781  		} else {
   782  			d.Ba = make([]byte, l)
   783  		}
   784  		copy(d.Ba, buf[i+34:])
   785  		i += l
   786  	}
   787  	{
   788  		if buf[i+34] == 1 {
   789  			if d.Bap == nil {
   790  				d.Bap = new([]byte)
   791  			}
   792  
   793  			{
   794  				l := uint64(0)
   795  
   796  				{
   797  
   798  					bs := uint8(7)
   799  					t := uint64(buf[i+35] & 0x7F)
   800  					for buf[i+35]&0x80 == 0x80 {
   801  						i++
   802  						t |= uint64(buf[i+35]&0x7F) << bs
   803  						bs += 7
   804  					}
   805  					i++
   806  
   807  					l = t
   808  
   809  				}
   810  				if uint64(cap((*d.Bap))) >= l {
   811  					(*d.Bap) = (*d.Bap)[:l]
   812  				} else {
   813  					(*d.Bap) = make([]byte, l)
   814  				}
   815  				copy((*d.Bap), buf[i+35:])
   816  				i += l
   817  			}
   818  			i += 0
   819  		} else {
   820  			d.Bap = nil
   821  		}
   822  	}
   823  	return i + 35, nil
   824  }