I propose to abandon macros and use hand-written code instead. It would be easier to write a whole new definition of the builder than to understand how generator works.
To do this, I think we need to
generate the code by unrolling existing macroses
Copy builders-related generated code into new files
remove all macro generations and rely only on the copy-pasted code.
Currently we use macro definitions to auto-generate code for structure builders, which looks like this:
https://github.com/qdrant/rust-client/blob/master/src/qdrant.rs#L9606
But usage of macros makes navigation in the project harder.
qdrant.rs
file is generated using code from here https://github.com/qdrant/rust-client/blob/master/tests/protos.rs#L173 (yes, in test :man_shrugging: )I propose to abandon macros and use hand-written code instead. It would be easier to write a whole new definition of the builder than to understand how generator works.
To do this, I think we need to
In order to make sure friction-less transition, we need to make sure all test snippets are still valid without changing: https://github.com/qdrant/rust-client/tree/master/tests/snippet_tests