Procedural macros for query-flow.
This crate provides attribute macros for defining queries and asset keys with minimal boilerplate.
Query Example
use query_flow::{query, QueryContext, QueryError};
#[query]
pub fn add(ctx: &mut QueryContext, a: i32, b: i32) -> Result<i32, QueryError> {
Ok(a + b)
}
// Generates:
// pub struct Add { pub a: i32, pub b: i32 }
// impl Query for Add { ... }
Asset Key Example
use query_flow::asset_key;
#[asset_key(asset = String)]
pub struct ConfigFile(pub PathBuf);
#[asset_key(asset = String, durability = constant)]
pub struct BundledAsset(pub PathBuf);
// Generates:
// impl AssetKey for ConfigFile { type Asset = String; ... }