nushell/crates/nu-plugin-protocol
Piepmatz f0c83a4459
Replace raw usize IDs with new types (#13832)
# Description

In this PR I replaced most of the raw usize IDs with
[newtypes](https://doc.rust-lang.org/rust-by-example/generics/new_types.html).
Some other IDs already started using new types and in this PR I did not
want to touch them. To make the implementation less repetitive, I made
use of a generic `Id<T>` with marker structs. If this lands I would try
to move make other IDs also in this pattern.

Also at some places I needed to use `cast`, I'm not sure if the type was
incorrect and therefore casting not needed or if actually different ID
types intermingle sometimes.

# User-Facing Changes

Probably few, if you got a `DeclId` via a function and placed it later
again it will still work.
2024-09-30 13:20:15 +02:00
..
src Replace raw usize IDs with new types (#13832) 2024-09-30 13:20:15 +02:00
Cargo.toml Bump version to 0.98.1 (#13896) 2024-09-22 12:41:44 +08:00
LICENSE Split the plugin crate (#12563) 2024-04-27 12:08:12 -05:00
README.md Split the plugin crate (#12563) 2024-04-27 12:08:12 -05:00

nu-plugin-protocol

This crate provides serde-compatible types for implementing the Nushell plugin protocol. It is primarily used by the nu-plugin family of crates, but can also be used separately as well.

The specifics of I/O and serialization are not included in this crate. Use serde_json and/or rmp-serde (with the named serialization) to turn the types in this crate into data in the wire format.