nushell/crates/nu-command/src/formats/to/mod.rs
Devyn Cairns adf38c7c76
Msgpack commands (#12664)
# Description

I thought about bringing `nu_plugin_msgpack` in, but that is MPL with a
clause that prevents other licenses, so rather than adapt that code I
decided to take a crack at just doing it straight from `rmp` to `Value`
without any `rmpv` in the middle. It seems like it's probably faster,
though I can't say for sure how much with the plugin overhead.

@IanManske I started on a `Read` implementation for `RawStream` but just
specialized to `from msgpack` here, but I'm thinking after release maybe
we can polish it up and make it a real one. It works!

# User-Facing Changes
New commands:

- `from msgpack`
- `from msgpackz`
- `to msgpack`
- `to msgpackz`

# Tests + Formatting
Pretty thorough tests added for the format deserialization, with a
roundtrip for serialization. Some example tests too for both `from
msgpack` and `to msgpack`.

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`


# After Submitting
- [ ] update release notes
2024-04-26 06:23:16 -05:00

29 lines
463 B
Rust

mod command;
mod csv;
mod delimited;
mod json;
mod md;
mod msgpack;
mod msgpackz;
mod nuon;
mod text;
mod toml;
mod tsv;
mod xml;
mod yaml;
pub use self::csv::ToCsv;
pub use self::toml::ToToml;
pub use command::To;
pub use json::ToJson;
pub use md::ToMd;
pub use msgpack::ToMsgpack;
pub use msgpackz::ToMsgpackz;
pub use nuon::ToNuon;
pub use text::ToText;
pub use tsv::ToTsv;
pub use xml::ToXml;
pub use yaml::ToYaml;
pub(crate) use json::value_to_json_value;