编译时校验的 OpenRouter 模型 ID。`model_supports!` 宏会根据内置的 OpenRouter 索引校验模型 ID 及其所需功能,并展开为模型 ID 字符串。
```rust
use openrouter_toolkit::model_supports;
const MODEL: &str = model_supports!(
"openai/gpt-5.4",
param::tools,
input::image,
output::text,
);
```
动态变体同样适用:
```rust
const MODEL: &str = model_supports!("moonshotai/kimi-k2-0905:exacto", param::tools);
```
* `param::*` — 请求参数(例如 `param::tools`)
* `input::*` — 输入模态(例如 `input::image`)
* `output::*` — 输出模态(例如 `output::text`)
未知功能示例:
```rust
const MODEL: &str = model_supports!("qwen/qwen3.7-max", param::toolz);
// error: unknown OpenRouter capability `param::toolz`; did you mean `param::tools`?
```
模型不支持的功能示例:
```rust
const MODEL: &str = model_supports!("qwen/qwen3.7-max", input::image);
// error: OpenRouter model `qwen/qwen3.7-max` does not support required capability(s): input::image
```