Project structure

Astray has a front facing crate which combines its two main crates

  1. Astray Macro provides a proc-macro that auto generates parsing functions from Rust type definitions.
  2. Astray Core holds all other functionality besides the proc-macro itself.

This division happen because a proc-macro crate may only export proc-macros, and Astray requires additional resources besides the proc-macro itself in order to work.

Let's go over the directory structure for each of these sub-crates

Astray Macro

src/ - lib.rs: exposes relevant macro functionality - node.rs: