(fieldSpecifierLen uint16, t FieldType)
| 480 | } |
| 481 | |
| 482 | func (d *Decoder) getDataLength(fieldSpecifierLen uint16, t FieldType) (uint16, error) { |
| 483 | var ( |
| 484 | err error |
| 485 | readLength uint16 |
| 486 | ) |
| 487 | |
| 488 | r := d.reader |
| 489 | |
| 490 | if (t == String || t == OctetArray) && (fieldSpecifierLen == 65535) { |
| 491 | var len8 uint8 |
| 492 | if len8, err = r.Uint8(); err != nil { |
| 493 | return 0, err |
| 494 | } else if len8 == 255 { |
| 495 | if readLength, err = r.Uint16(); err != nil { |
| 496 | return 0, err |
| 497 | } |
| 498 | } else { |
| 499 | readLength = uint16(len8) |
| 500 | } |
| 501 | } else { |
| 502 | readLength = fieldSpecifierLen |
| 503 | } |
| 504 | |
| 505 | return readLength, nil |
| 506 | } |
| 507 | |
| 508 | func (d *Decoder) decodeData(tr TemplateRecord) ([]DecodedField, error) { |
| 509 | var ( |
no test coverage detected