У меня есть файл protobuf, используемый для создания типов в проекте. Один из видов выглядит так:
syntax = "proto3";
// ...
message myStruct {
int32 obj_id = 1;
string obj_code = 2;
string obj_name = 3;
// ... some more fields
}
// ... some more message, enum, etc ....
Затем я могу запустить крошечный скрипт, который генерирует код Go через protoc-gen-go
, который позже переводится в Rust через другой скрипт с использованием protoc-gen-rust
.
Результатом является файл Rust, который выглядит так:
// This file is generated by rust-protobuf 2.0.0. Do not edit
// @generated
// ...
pub struct myStruct {
// message fields
pub obj_id: i32,
pub obj_code: ::std::string::String,
pub obj_name: ::std::string::String,
// ... some more fields
}
impl myStruct {
// ... lots of constructors, getters, setters, etc
}
Мне не нужен лучший способ генерировать типы Rust в целом, проект масштабный и находится в стадии разработки, моя задача состоит не в том, чтобы переписать/реорганизовать его, а просто добавить некоторые функции, для которых мне нужны милые маленькие векторы флагов. добавить в пару структур.
Я хотел бы добавить несколько полей Vec
в структуру myStruct
, например:
pub struct myClass {
// ... some fields like obj_id etc ...
// the fields I want to add
bool_vec: Vec<bool>,
bool_vec_vec: Vec<Vec<bool>>,
// ...
}
Можно ли это сделать с помощью proto-buf или нет? Если да, то как я могу это сделать?