forked from extern/nushell
047081fa72
* Add a README about changing schema * Add example PRs |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
nu-plugin
Updating Cap'n Proto schema
When modifying a protocol's struct that is used in plugins (such as Signature), you need to update the capnproto schema file and recompile it into the Rust source code. The steps are as follows:
- Change
src/serializers/capnp/schema/plugin.capnp
as necessary - Install
capnp
tool (it's a C++ binary, commonly available in package managers) - Install Rust support for
capnp
calledcapnpc-rust
:git clone https://github.com/capnproto/capnproto-rust
somewherecd capnproto-rust/capnpc
cargo install --path=.
- Then, call
capnp compile -orust plugin.capnp
(change path as necessary) - The result should be
plugin_capnp.rs
file: Use it to replace the oldsrc/plugin_capnp.rs
. - It needs to be autoformatted (
cargo fmt --all
) - Modify the serialize/deserialize functions. Check the following PRs for details: