This commit is contained in:
2025-08-20 23:45:34 +06:00
parent d0d925de05
commit 825080ca21

View File

@@ -1065,7 +1065,7 @@ std::basic_istringstream<char8_t> stream(data);
if (!(stream >> byte)) return false; if (!(stream >> byte)) return false;
uint8_t op = byte; uint8_t op = byte;
if (!read_uint16(stream, v16)) return false; if (!read_uint16(stream, v16)) return false;
node.v = Node::Unary{ op, v16 }; node.v = Node::Unary{Op(op), v16};
break; break;
} }
case 3: { // Node::Binary case 3: { // Node::Binary
@@ -1075,7 +1075,7 @@ std::basic_istringstream<char8_t> stream(data);
uint16_t lhs = v16; uint16_t lhs = v16;
if (!read_uint16(stream, v16)) return false; if (!read_uint16(stream, v16)) return false;
uint16_t rhs = v16; uint16_t rhs = v16;
node.v = Node::Binary{ op, lhs, rhs }; node.v = Node::Binary{Op(op), lhs, rhs};
break; break;
} }
default: default:
@@ -1092,7 +1092,7 @@ std::basic_istringstream<char8_t> stream(data);
uint16_t nodeId = v16; uint16_t nodeId = v16;
if (!read_uint16(stream, size)) return false; if (!read_uint16(stream, size)) return false;
std::vector<std::pair<float, std::variant<Model, VectorModel>>> variants; boost::container::small_vector<std::pair<float, std::variant<Model, VectorModel>>, 1> variants;
variants.reserve(size); variants.reserve(size);
for (uint16_t j = 0; j < size; ++j) { for (uint16_t j = 0; j < size; ++j) {
@@ -1130,7 +1130,7 @@ std::basic_istringstream<char8_t> stream(data);
float f_val; float f_val;
std::memcpy(&f_val, &val_bits, 4); std::memcpy(&f_val, &val_bits, 4);
model.Transforms.push_back({ op, f_val }); model.Transforms.emplace_back(Transformation::EnumTransform(op), f_val);
} }
variants.emplace_back(weight, std::move(model)); variants.emplace_back(weight, std::move(model));
} else if (model_tag == 1) { // VectorModel } else if (model_tag == 1) { // VectorModel
@@ -1162,7 +1162,7 @@ std::basic_istringstream<char8_t> stream(data);
float f_val; float f_val;
std::memcpy(&f_val, &val_bits, 4); std::memcpy(&f_val, &val_bits, 4);
subModel.Transforms.push_back({ op, f_val }); subModel.Transforms.emplace_back(Transformation::EnumTransform(op), f_val);
} }
vecModel.Models.push_back(std::move(subModel)); vecModel.Models.push_back(std::move(subModel));
} }
@@ -1184,14 +1184,15 @@ std::basic_istringstream<char8_t> stream(data);
float f_val; float f_val;
std::memcpy(&f_val, &val_bits, 4); std::memcpy(&f_val, &val_bits, 4);
vecModel.Transforms.push_back({ op, f_val }); vecModel.Transforms.emplace_back(Transformation::EnumTransform(op), f_val);
} }
variants.emplace_back(weight, std::move(vecModel)); variants.emplace_back(weight, std::move(vecModel));
} else { } else {
return false; // неизвестный тип модели return false; // неизвестный тип модели
} }
} }
Routes[nodeId] = std::move(variants);
Routes.emplace_back(nodeId, std::move(variants));
} }
return true; return true;