xref: /openbmc/libpldm/bindings/cpp/utils.hpp (revision d6a957481638b00a49aed15d04b60d3d32fede54)
1*d6a95748SAlexander Hansen #pragma once
2*d6a95748SAlexander Hansen 
3*d6a95748SAlexander Hansen #include <expected>
4*d6a95748SAlexander Hansen #include <libpldm/base.h>
5*d6a95748SAlexander Hansen #include <libpldm/pldm_types.h>
6*d6a95748SAlexander Hansen 
7*d6a95748SAlexander Hansen #include <string>
8*d6a95748SAlexander Hansen 
9*d6a95748SAlexander Hansen namespace pldm
10*d6a95748SAlexander Hansen {
11*d6a95748SAlexander Hansen namespace utils
12*d6a95748SAlexander Hansen {
13*d6a95748SAlexander Hansen 	/** @brief Convert the buffer to std::string
14*d6a95748SAlexander Hansen 	 *
15*d6a95748SAlexander Hansen 	 *  In case the string encoding is not ASCII, an error string is returned.
16*d6a95748SAlexander Hansen 	 *
17*d6a95748SAlexander Hansen 	 *  @param[in] pldm_string_type - DSP0267, Table 20
18*d6a95748SAlexander Hansen 	 *  @param[in] var              - pointer to data and length of the data
19*d6a95748SAlexander Hansen 	 *
20*d6a95748SAlexander Hansen 	 *  @return[expected] std::string equivalent of variable field
21*d6a95748SAlexander Hansen 	 *  @return[unexpected] error message string
22*d6a95748SAlexander Hansen 	 */
23*d6a95748SAlexander Hansen 	std::expected<std::string, std::string>
24*d6a95748SAlexander Hansen 	toString(uint8_t pldm_string_type, const struct variable_field &var);
25*d6a95748SAlexander Hansen 
26*d6a95748SAlexander Hansen } // namespace utils
27*d6a95748SAlexander Hansen } // namespace pldm
28