mirror of
https://github.com/esphome/esphome.git
synced 2025-10-19 02:03:48 +01:00
[api] Use FixedVector for ListEntitiesServicesResponse args (#11230)
This commit is contained in:
@@ -866,7 +866,7 @@ message ListEntitiesServicesResponse {
|
|||||||
|
|
||||||
string name = 1;
|
string name = 1;
|
||||||
fixed32 key = 2;
|
fixed32 key = 2;
|
||||||
repeated ListEntitiesServicesArgument args = 3;
|
repeated ListEntitiesServicesArgument args = 3 [(fixed_vector) = true];
|
||||||
}
|
}
|
||||||
message ExecuteServiceArgument {
|
message ExecuteServiceArgument {
|
||||||
option (ifdef) = "USE_API_SERVICES";
|
option (ifdef) = "USE_API_SERVICES";
|
||||||
|
@@ -1263,7 +1263,7 @@ class ListEntitiesServicesResponse final : public ProtoMessage {
|
|||||||
StringRef name_ref_{};
|
StringRef name_ref_{};
|
||||||
void set_name(const StringRef &ref) { this->name_ref_ = ref; }
|
void set_name(const StringRef &ref) { this->name_ref_ = ref; }
|
||||||
uint32_t key{0};
|
uint32_t key{0};
|
||||||
std::vector<ListEntitiesServicesArgument> args{};
|
FixedVector<ListEntitiesServicesArgument> args{};
|
||||||
void encode(ProtoWriteBuffer buffer) const override;
|
void encode(ProtoWriteBuffer buffer) const override;
|
||||||
void calculate_size(ProtoSize &size) const override;
|
void calculate_size(ProtoSize &size) const override;
|
||||||
#ifdef HAS_PROTO_MESSAGE_DUMP
|
#ifdef HAS_PROTO_MESSAGE_DUMP
|
||||||
|
@@ -35,9 +35,9 @@ template<typename... Ts> class UserServiceBase : public UserServiceDescriptor {
|
|||||||
msg.set_name(StringRef(this->name_));
|
msg.set_name(StringRef(this->name_));
|
||||||
msg.key = this->key_;
|
msg.key = this->key_;
|
||||||
std::array<enums::ServiceArgType, sizeof...(Ts)> arg_types = {to_service_arg_type<Ts>()...};
|
std::array<enums::ServiceArgType, sizeof...(Ts)> arg_types = {to_service_arg_type<Ts>()...};
|
||||||
|
msg.args.init(sizeof...(Ts));
|
||||||
for (size_t i = 0; i < sizeof...(Ts); i++) {
|
for (size_t i = 0; i < sizeof...(Ts); i++) {
|
||||||
msg.args.emplace_back();
|
auto &arg = msg.args.emplace_back();
|
||||||
auto &arg = msg.args.back();
|
|
||||||
arg.type = arg_types[i];
|
arg.type = arg_types[i];
|
||||||
arg.set_name(StringRef(this->arg_names_[i]));
|
arg.set_name(StringRef(this->arg_names_[i]));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user