rusty_junctions_macro/
lib.rs

1#![deny(missing_docs)]
2
3//! Crate providing all of the macro backed functionality provided to the
4//! [`rusty_junctions`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/struct.Junction.html)
5//! crate.
6//!
7//! This crates is used as a facade re-exporting the underlying
8//! declarative and procedural macro crates, allowing for a single
9//! dependency to encapsulate the current organisational restrictions that
10//! are enforced when using procedural macros.
11//!
12//! This crate is comprised of two modules [`client`](client) and
13//! [`library`](library). Each of which providing the functionality for
14//! there respective areas.
15//!
16//! See the module level documentation for further details.
17
18/// The [`client`](client) module provides all of the macro functionality
19/// used by a client of the
20/// [`rusty_junctions`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/index.html)
21/// crate.
22///
23/// Namely it provides a number of macros that can be used to conveniently
24/// define the
25/// [`patterns`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/patterns/index.html),
26/// [`channels`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/channels/index.html),
27/// and
28/// [`Junction`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/struct.Junction.html)
29/// that are used to declaratively express the concurrent computation.
30///
31/// See the crate level documentation for further details.
32pub mod client {
33    pub use rusty_junctions_client_api_macro::{channel, junction as junction_dec, when};
34    pub use rusty_junctions_client_api_proc_macro::junction;
35}
36
37/// The [`library`](library) module provides all of the macro
38/// functionality used when generating the
39/// [`rusty_junctions`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/index.html)
40/// crate.
41///
42/// Namely it provides a number of macros that can be used to conveniently
43/// generate the
44/// [`patterns`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/patterns/index.html),
45/// [`channels`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/channels/index.html),
46/// and
47/// [`Junction`](https://docs.rs/rusty_junctions/0.1.0/rusty_junctions/struct.Junction.html)
48/// that are used to declaratively express the concurrent computation.
49///
50/// See the crate level documentation for further details.
51pub mod library {
52    pub use rusty_junctions_library_generation_proc_macro::{
53        library_generate as generate, JoinPattern, PartialPattern, TerminalPartialPattern,
54    };
55}