xml-rpc-rs icon indicating copy to clipboard operation
xml-rpc-rs copied to clipboard

Investigate a Zero-Copy interface

Open jonas-schievink opened this issue 9 years ago • 1 comments

Currently, this crate forces the use of many allocations.

It should be possible to make Value use Cow internally, as well as making Request store an &'a [Value] for the arguments (note that the name of the called method is already a &'a str). This makes adding single arguments impossible, but that's not really a problem since the user can just use a Vec themselves.

One thing to note is that this will probably make Value a bit clunkier to use: Cow is hard to match on. Also, I've noticed that implementing this causes a cyclic trait dependency.

jonas-schievink avatar Oct 16 '16 02:10 jonas-schievink

The 0copy branch tries to implement this but (as noted above) causes a compiler error that I don't know how to fix. The cause is probably https://github.com/rust-lang/rust/issues/23714

jonas-schievink avatar Feb 16 '17 13:02 jonas-schievink