BloombergLP::baljsn::EncodeImplUtil::encodeMember

encodeMember overloads

Synopses

Declared in <baljsn_encodeimplutil.h>

Encode the JSON representation of the specified object member having the specified memberName to the specified JSON formatter, according to the specified formattingMode. If the representation contains no text, load the value true to isMemberEmpty and the value false otherwise. If the specified isFirstMember option is true, then the representation of the member contains no leading sequence delimiter, and does contain such a delimiter otherwise. Use the specified options to configure aspects of the JSON representation of the member. If this operation is not successful, load an unspecified, human-readable description of the error condition to the specified logStream. Return 0 on success, and a non-zero value otherwise. The behavior is undefined unless the specified TYPE satisfies both the static and dynamic requirements of the specified category bdlat type-category concept. See baljsn_encoderoptions for a description of the effects, if any, of each option in the options on the JSON representation of the selection. See the package-level documentation of bdlat for an introduction to the requirements of bdlat type-category concepts.

static
int
encodeMember(
    bool* isMemberEmpty,
    FORMATTER* formatter,
    std::ostream* logStream,
    std::string_view const& memberName,
    bsl::vector<char> const& member,
    FormattingMode formattingMode,
    EncoderOptions const& options,
    bool isFirstMember,
    bdlat_TypeCategory::Array category);
» more...

## Implementation Note This function purposefully ignores the EncodeEmptyArrays option in the specified options and always encodes the value of the specified member array. The caller is responsible for checking the value of this option and deciding whether to obey the option or not. Callers that encode array-valued attributes of sequences must always obey the option. Callers that encode array-valued selections of choices must never obey the option, and must always encode the array value.

template<class TYPE>
static
int
encodeMember(
    bool* isMemberEmpty,
    FORMATTER* formatter,
    std::ostream* logStream,
    std::string_view const& memberName,
    TYPE const& member,
    FormattingMode formattingMode,
    EncoderOptions const& options,
    bool isFirstMember,
    bdlat_TypeCategory::Array category);
» more...

Same as the preceding encodeMember overload for the specified category.

template<
    class TYPE,
    class OTHER_CATEGORY>
static
int
encodeMember(
    bool* isMemberEmpty,
    FORMATTER* formatter,
    std::ostream* logStream,
    std::string_view const& memberName,
    TYPE const& member,
    FormattingMode formattingMode,
    EncoderOptions const& options,
    bool isFirstMember,
    OTHER_CATEGORY category);
» more...