WriteString writes a messagepack string to the writer. (This is NOT an implementation of io.StringWriter)
(s string)
| 493 | // WriteString writes a messagepack string to the writer. |
| 494 | // (This is NOT an implementation of io.StringWriter) |
| 495 | func (mw *Writer) WriteString(s string) error { |
| 496 | if uint64(len(s)) > math.MaxUint32 { |
| 497 | return ErrLimitExceeded |
| 498 | } |
| 499 | |
| 500 | sz := uint32(len(s)) |
| 501 | var err error |
| 502 | switch { |
| 503 | case sz <= 31: |
| 504 | err = mw.push(wfixstr(uint8(sz))) |
| 505 | case sz <= math.MaxUint8: |
| 506 | err = mw.prefix8(mstr8, uint8(sz)) |
| 507 | case sz <= math.MaxUint16: |
| 508 | err = mw.prefix16(mstr16, uint16(sz)) |
| 509 | default: |
| 510 | err = mw.prefix32(mstr32, sz) |
| 511 | } |
| 512 | if err != nil { |
| 513 | return err |
| 514 | } |
| 515 | return mw.writeString(s) |
| 516 | } |
| 517 | |
| 518 | // WriteStringHeader writes just the string size |
| 519 | // header of a MessagePack 'str' object. The user |