forked from extern/nushell
e5d38dcff6
* Fix clippy lints in tests * Replace `format!` in `.push_str()` with `write!` Stylistically that might be a bit rough but elides an allocation. Fallibility of allocation is more explicit, but ignored with `let _ =` like in the clippy example: https://rust-lang.github.io/rust-clippy/master/index.html#format_push_string * Remove unused lifetime * Fix macro crate relative import * Derive `Eq` for `PartialEq` with `Eq` members https://rust-lang.github.io/rust-clippy/master/index.html#derive_partial_eq_without_eq * Remove unnnecessary `.to_string()` for Cow<str> * Remove `.to_string()` for `tendril::Tendril` Implements `Deref<Target = str>` |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE | ||
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: