Syncify
Two functions for the price of one: a simplistic rust macro for writing async functions once and getting both the async version and a sync version that strips all async function modifiers and all .await suffixes.
Status: it works, but this is not intended to be a high-quality, general-purpose crate. The macro error messages are bad, the features are barebones. But it does what we need it to do, and that suffices.
Usage
Place the #[syncify(name_of_sync_mod_variant)] on a mod item. Annotate all use items inside that mod that should be different in the sync version with #[syncify_replace(<alternate-use-item>)].
Example:
use syncify;
use syncify_replace;
Expands to:
use syncify;
use syncify_replace;