| 400 | // append string/raw |
| 401 | |
| 402 | inline void add_binary_internal(OutputStream* stream, |
| 403 | Serializer::GroupInfo & group_info, |
| 404 | const butil::StringPiece& value, |
| 405 | FieldType type) { |
| 406 | if (!stream->good()) { |
| 407 | return; |
| 408 | } |
| 409 | if (!array_add_item(stream, group_info, type, 1)) { |
| 410 | return stream->set_bad(); |
| 411 | } |
| 412 | if (value.size() <= 255) { |
| 413 | FieldShortHead shead; |
| 414 | shead.set_type(type | FIELD_SHORT_MASK); |
| 415 | shead.set_name_size(0); |
| 416 | shead.set_value_size(value.size()); |
| 417 | stream->append_packed_pod(shead); |
| 418 | stream->append(value.data(), value.size()); |
| 419 | } else { |
| 420 | FieldLongHead lhead; |
| 421 | lhead.set_type(type); |
| 422 | lhead.set_name_size(0); |
| 423 | lhead.set_value_size(value.size()); |
| 424 | stream->append_packed_pod(lhead); |
| 425 | stream->append(value.data(), value.size()); |
| 426 | } |
| 427 | } |
| 428 | |
| 429 | inline void add_binary_internal(OutputStream* stream, |
| 430 | Serializer::GroupInfo & group_info, |
no test coverage detected