David Renshaw

Results 176 comments of David Renshaw

One thing that could help is if we add an `IntoInternalClientHook` trait, similar to the existing `IntoInternalStructReader` method: https://github.com/capnproto/capnproto-rust/blob/fad4f953194cd1cce9da8cef51234a7608364161/capnp/src/traits.rs#L36 Then `capability_list::Builder::set()` could have a friendlier type signature.

For the base serialization crate, there was this benchmark a long time ago: https://dwrensha.github.io/capnproto-rust/2014/01/15/benchmark-update.html . The benchmark code is still checked in, in the `benchmark/` directory. For the `capnp-rpc` crate,...

@dureuill Thanks. I opened https://github.com/llogiq/serdebench/pull/4.

I suspect one of the reasons that flatbuffers deserialization appears to be faster is that capnproto-rust is doing utf-8 validation but (as far as I know) flatbuffers is not. I...

On closer examination, the utf-8 validation does not look as significant as I had initially thought. I now suspect it's mainly the pointer indirection that's expensive for capnproto-rust, and reading...

I still keep thinking: "I wonder how far we could get if capnproto-rust had a dynamic reflection API". In #246 you wrote: > Runtime implementation seem to require going through...

> Generated code doesn't seem to provide any access to the corresponding schema objects. Do you mean in capnproto-c++ or in capnproto-rust? For examples of how to access the schema...

On the Rust side we still need to start actually including the `schema::Node` data in generated code and we need to design a nice interface for accessing it. But it...

You can get the raw `u16` value via the `ToU16` trait, which is implemented by all generated enums: https://github.com/capnproto/capnproto-rust/blob/aa09220f26ed6df5af76cefc804879bdf6aacdcc/capnp/src/traits.rs#L98 There is currently no supported way to set an enum to...

Adding new methods like that makes sense to me. I would slightly adjust the naming: ```rust pub fn set_raw_field(&mut self, value: u16); pub fn get_raw_field(self) -> u16; ``` That way,...