| 405 | } |
| 406 | |
| 407 | func stringEncodeFuncOf(flexible bool, tag structTag) encodeFunc { |
| 408 | switch { |
| 409 | case flexible && tag.Nullable: |
| 410 | // In flexible messages, all strings are compact |
| 411 | return (*encoder).encodeCompactNullString |
| 412 | case flexible: |
| 413 | // In flexible messages, all strings are compact |
| 414 | return (*encoder).encodeCompactString |
| 415 | case tag.Nullable: |
| 416 | return (*encoder).encodeNullString |
| 417 | default: |
| 418 | return (*encoder).encodeString |
| 419 | } |
| 420 | } |
| 421 | |
| 422 | func bytesEncodeFuncOf(flexible bool, tag structTag) encodeFunc { |
| 423 | switch { |