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 }