static int struct_log_context_property_type_to_string()

in v2/src/log_context_property_type_struct.c [15:47]


static int struct_log_context_property_type_to_string(const void* property_value, char* buffer, size_t buffer_length)
{
    int result;

    /* Codes_SRS_LOG_CONTEXT_PROPERTY_TYPE_STRUCT_01_001: [ If property_value is NULL, LOG_CONTEXT_PROPERTY_TYPE_IF_IMPL(struct).to_string shall fail and return a negative value. ]*/
    if (property_value == NULL)
    {
        (void)printf("Invalid arguments: const void* property_value=%p, char* buffer=%p, size_t buffer_length=%zu\r\n",
            property_value, buffer, buffer_length);
        result = -1;
    }
    else
    {
        if (
            /* Codes_SRS_LOG_CONTEXT_PROPERTY_TYPE_STRUCT_01_003: [ If buffer is NULL, LOG_CONTEXT_PROPERTY_TYPE_IF_IMPL(struct).to_string shall return 0 (the length of an empty string). ]*/
            (buffer == NULL) ||
            /* Codes_SRS_LOG_CONTEXT_PROPERTY_TYPE_STRUCT_01_015: [ If buffer_length is 0, LOG_CONTEXT_PROPERTY_TYPE_IF_IMPL(struct).to_string shall return 0 (the length of an empty string). ]*/
            (buffer_length == 0)
            )
        {
            // return 0
        }
        else
        {
            /* Codes_SRS_LOG_CONTEXT_PROPERTY_TYPE_STRUCT_01_004: [ Otherwise, LOG_CONTEXT_PROPERTY_TYPE_IF_IMPL(struct).to_string shall write 0 as the first element in buffer. ]*/
            buffer[0] = '\0';
        }

        result = 0;
    }

    return result;
}