#session #type #macro #async-channel #channel #proc-macro #async

macro dialectic-macro

Procedural macros used by and exported from the Dialectic crate

1 unstable release

0.1.0 Apr 1, 2021

#52 in #async-channel

34 downloads per month
Used in 7 crates (via dialectic)

MIT license

160KB
2K SLoC

Rust license: MIT crates.io docs.rs documentation

This crate contains the Session!, Transmitter, and Receiver macros for use in Dialectic, as well as several other macros which are used internally to Dialectic. The dialectic-macro crate is considered an internal implementation detail and should never be relied upon or depended on outside of the dialectic crate itself, which re-exports all the important user-facing procedural macros defined in this crate.

For contributors

Internally, dialectic-macro is used to define large swathes of trait definitions which cover const generics and conversions between const generics and unary type-level representations. This is due to current limitations of const generics, and may be replaced in the future. Otherwise, dialectic-macro is the main dependent of the dialectic-compiler crate; its functionality is used within dialectic-macro to implement the Session! proc macro, and nowhere else.

Dependencies

~3.5MB
~78K SLoC