sep2_common_derive

Crates.iosep2_common_derive
lib.rssep2_common_derive
version0.1.0
sourcesrc
created_at2024-03-19 10:01:44.830323
updated_at2024-03-19 10:01:44.830323
descriptionProc Macro implementations for sep2_common
homepage
repositoryhttps://github.com/ethanndickson/sep2_common
max_upload_size
id1179086
size18,696
Ethan (ethanndickson)

documentation

README

SEP2 Common Library

sep2_common is a (WIP) Rust library for developing IEEE 2030.5 compliant servers & clients.

It can be used with sep2_client, which provides a framework for developing IEEE 2030.5 clients.

Documentation

Contents

sep2_common - Implementation of IEEE 2030.5 data types

sep2_common_derive - Rust Procedural Macros providing inheritance-based interfaces on IEEE 2030.5 data types

Core Features

  • Rust Types for practically all IEEE 2030.5 Resources, Types & Primitives.
  • XML Serialising & Deserialising all resources using SEPSerde
  • Rust enums for all applicable integer types.
  • Bitflags for all HexBinary\d+ bitmaps for improved ergonomics
  • Rust Traits for all re-used IEEE 2030.5 base types
    • Common Interface for manipulating List Resources
  • Rust Procedural Macros to derive these traits on the appropriate types.
  • [De]?serialising sanity tests (auto-generated)
  • Function Set List Ordering
  • CSIP-AUS Extension Resources & Attributes
  • Correctness / Spec Adherence Tests

Future

  • EXI Serialising & Deserialising all resources (Requires a Rust EXI Library)

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 153

cargo fmt