2 releases
0.1.1 | Oct 19, 2024 |
---|---|
0.1.0 | Sep 12, 2024 |
#828 in Network programming
191 downloads per month
Used in cmri_tools
280KB
6K
SLoC
CMRI
Pure-Rust decoding/encoding of packets for CMRInet (as defined in NMRA Specification LCS-9.10.1).
Features
std
This is a std crate by default.
serde
The serde feature adds serializating and deserializating of all items using serde.
experimenter
The experimenter feature is intended for people who are using nonstandard packets/nodes, perhaps in their own experimentation. It enables the following changes:
- Instead of getting a
packet::Error::InvalidMessageType
for an otherwise valid message type (ASCII uppercase), you'll get apacket::Payload::Unknown
. - Instead of getting a
packet::Error::InvalidNodeType
for an otherwise valid node definition parameter (ASCII alphabetic), you'll get anode_configuration::NodeSort::Unknown
. packet::Packet::try_new_unknown
Testing
The test suite is run for all Tier 1 targets from https://doc.rust-lang.org/nightly/rustc/platform-support.html on nightly (at time of pushing to GitHub) rust.
The ability to build is tested on nightly (at time of pushing to GitHub) rust, for tier 2 targets with host tools, plus:
- wasm32-unknown-emscripten
- wasm32-unknown-unknown
- wasm32-wasip1
- aarch64-apple-ios-macabi
- x86_64-apple-ios-macabi
Additionally nostd building is tested for:
- mips-unknown-linux-gnu only as
no_std
- mips64-unknown-linux-gnuabi64 only as
no_std
- mips64el-unknown-linux-gnuabi64 only as
no_std
- mipsel-unknown-none only as
no_std
- avr-unknown-gnu-atmega328 - AVR only as
no_std
Dependencies
~2MB
~42K SLoC