inline void SimpleBinaryWriter::WriteFieldOmitted()

in cpp/inc/bond/protocol/simple_binary_impl.h [24:82]


inline void SimpleBinaryWriter<BufferT>::WriteFieldOmitted(BondDataType type, uint16_t /*id*/, const Metadata& metadata)
{
    // Simple doesn't support omitting fields so instead we write a default value
    BOOST_ASSERT(!metadata.default_value.nothing);

    switch (type)
    {
        case BT_BOOL:
            Write(!!metadata.default_value.uint_value);
            break;
        case BT_UINT8:
            Write(static_cast<uint8_t>(metadata.default_value.uint_value));
            break;
        case BT_UINT16:
            Write(static_cast<uint16_t>(metadata.default_value.uint_value));
            break;
        case BT_UINT32:
            Write(static_cast<uint32_t>(metadata.default_value.uint_value));
            break;
        case BT_UINT64:
            Write(static_cast<uint64_t>(metadata.default_value.uint_value));
            break;
        case BT_FLOAT:
            Write(static_cast<float>(metadata.default_value.double_value));
            break;
        case BT_DOUBLE:
            Write(metadata.default_value.double_value);
            break;
        case BT_STRING:
            Write(metadata.default_value.string_value);
            break;
        case BT_STRUCT:
            BOOST_ASSERT(false);
            break;
        case BT_LIST:
        case BT_SET:
        case BT_MAP:
            WriteContainerBegin(0, type);
            break;
        case BT_INT8:
            Write(static_cast<int8_t>(metadata.default_value.int_value));
            break;
        case BT_INT16:
            Write(static_cast<int16_t>(metadata.default_value.int_value));
            break;
        case BT_INT32:
            Write(static_cast<int32_t>(metadata.default_value.int_value));
            break;
        case BT_INT64:
            Write(static_cast<int64_t>(metadata.default_value.int_value));
            break;
        case BT_WSTRING:
            Write(metadata.default_value.wstring_value);
            break;
        default:
            BOOST_ASSERT(false);
            break;
    }
}