Specifically, it's the case that the bevy
crate includes e.g. pub use bytemuck::Pod
. So you can write e.g. #[derive(bevy::utils::Pod)]
with just a dependency on bevy
. The bytemuck derive cannot name the bytemuck crate from the user crate because it (in the extreme) it doesn't even have a path to bytemuck available.
(The paths and such used here are illustrative and not necessarily the ones used in practice.)
Any derive necessarily has this issue even if no crates are renamed; if you pub use
a derive, downstream users of your crate cannot use the derive without a direct dependency on the derive's runtime crate.
Would it happen to be something like $mod
by any chance?
(And this was really just writing out a small amount of previously discussed concepts together, so don't worry about this being duplicated work. These are primarily here to restart and get a bit more discussion on the concept(s).)