capnproto / capnpc-rust

Cap'n Proto code generation for Rust
76 stars 26 forks source link

On the way to generic support #20

Closed kali closed 9 years ago

kali commented 9 years ago

Don't merge this right now as is. I think I'm not too far from the truth, but not definitely not there yet, and I'm not sure I'll find much time to devote to this in the next weeks, so this is a not-so-bad checkpoint.

Old tests are compiling despite the small changes I induced by overhauling the rust type id generation. I honestly think I haven't break anything there, and the code factorize some of the List of List enumeration. I went a bit berserk on that, and the diff is bigger than I expected when starting. As usual the consequence is... this will be a nightmare to rebase. I wanted to make sure you were aware of this, in case you plan to start anything on the master codegen.

On the generics side, only the trivialest of cases compiles for now, and I have not dared write test cases for them yet. Specifically, the second case I added at the bottom of the schema breaks, just because it has two parameters, I guess. It is commented out. I may actually need to have separate lifetime bounds for each binding, but I'm not sure. Any input appreciated here.

If you like the way I have refactor the type generator stuff, and want to merge it without waiting for the generics code to get more mature, I think it should not be too difficult to disable the generics code bit for now.

dwrensha commented 9 years ago

Sorry that it took so long for me to look at this. It looks good! It's definitely a step in the right direction, and I'm in favor of merging if it can be brought up to date.