11 个版本 (6 个重大更新)
0.21.1 | 2023年6月9日 |
---|---|
0.20.0 | 2022年11月7日 |
0.12.0 | 2022年7月31日 |
0.11.0 | 2021年12月15日 |
0.9.0 | 2021年7月22日 |
#156 in Rust 模式
每月下载量 4,072
在 14 个crate中使用 (直接使用 3 个)
220KB
5K SLoC
Doku —
Doku 是一个用于记录 Rust 数据结构的框架 — 它允许生成美观、易于理解的对配置类型、请求/响应等的描述。
告别过时的人工编写文档 — 使用 Doku,代码 即是文档!
示例
[dependencies]
doku = "0.21"
use doku::Document;
use serde::Deserialize;
#[derive(Deserialize, Document)]
struct Config {
/// Database's engine
db_engine: DbEngine,
/// Database's host
#[doku(example = "localhost")]
db_host: String,
/// Database's port
#[doku(example = "5432")]
db_port: usize,
}
#[derive(Deserialize, Document)]
enum DbEngine {
#[serde(rename = "pgsql")]
PostgreSQL,
#[serde(rename = "mysql")]
MySQL,
}
fn main() {
println!("```json");
println!("{}", doku::to_json::<Config>());
println!("```");
println!();
println!("```toml");
println!("{}", doku::to_toml::<Config>());
println!("```");
}
{
// Database's engine
"db_engine": "pgsql" | "mysql",
// Database's host
"db_host": "localhost",
// Database's port
"db_port": 5432
}
# Database's engine
db_engine = "pgsql" | "mysql"
# Database's host
db_host = "localhost"
# Database's port
db_port = 5432
您可以在 ./doku/examples 中找到更多示例;有关文档,请访问 https://docs.rs/doku/。
贡献
发现了错误,有想法吗?请在 GitHub 上告诉我们 — 我们也欢迎补丁!
如果您想尝试修改 Doku,入口点包括
在 ./doku/tests 中也有集成测试。
许可证
MIT 许可证。
依赖项
~1.9–3MB
~68K SLoC