I have 2 components that should live in the same crate, but because one of them is a
proc_macro crates can only export proc_macros and nothing else (i.e. no types, no traits, no fns, etc), I have to create a rather unnatural architecture between the components.
(As an aside: the restriction that a proc_macro crate can only export proc_macros really should be lifted. While there are probably technical reasons internal to
cargo for this, from the perspective of a macro author it is arbitrary and annoying incidental complexity.)
So the next idea is to make the 2 crates dependent on one another.
However, I get this nagging little feeling that Cargo only deals in tree-shaped dependency graphs and thus won't allow cyclic dependencies between crates.
Does anyone have any concrete info on this?