24#if CONTAINER_HAS_RESULT
25kcenon::common::Result<std::vector<uint8_t>>
26binary_serializer::serialize(
const value_container& container)
const noexcept
31 auto message_type = container.message_type();
32 auto target_id = container.target_id();
33 auto target_sub_id = container.target_sub_id();
34 auto source_id = container.source_id();
35 auto source_sub_id = container.source_sub_id();
36 auto version = container.version();
37 auto data_section = container.datas();
41 result.reserve(200 + data_section.size());
46 if (message_type !=
"data_container")
64 result.append(data_section);
70 return kcenon::common::Result<std::vector<uint8_t>>(
71 kcenon::common::error_info{
73 "Failed to convert binary string to bytes: " + err,
74 "binary_serializer"});
77 return kcenon::common::ok(std::move(arr));
79 catch (
const std::bad_alloc&)
81 return kcenon::common::Result<std::vector<uint8_t>>(
82 kcenon::common::error_info{
84 "Memory allocation failed during binary serialization",
85 "binary_serializer"});
87 catch (
const std::exception& e)
89 return kcenon::common::Result<std::vector<uint8_t>>(
90 kcenon::common::error_info{
92 std::string(
"Binary serialization failed: ") + e.what(),
93 "binary_serializer"});
97std::string binary_serializer::serialize_to_string(
const value_container& container)
const
100 auto message_type = container.message_type();
101 auto target_id = container.target_id();
102 auto target_sub_id = container.target_sub_id();
103 auto source_id = container.source_id();
104 auto source_sub_id = container.source_sub_id();
105 auto version = container.version();
106 auto data_section = container.datas();
110 result.reserve(200 + data_section.size());
114 if (message_type !=
"data_container")
131 result.append(data_section);
constexpr int MESSAGE_VERSION
constexpr int MESSAGE_TYPE
constexpr int TARGET_SUB_ID
constexpr int SOURCE_SUB_ID
std::tuple< std::optional< std::vector< uint8_t > >, std::optional< std::string > > to_array(const std::string &str)