2个版本

使用旧的Rust 2015

0.1.1 2018年5月24日
0.1.0 2018年5月24日

配置 中排名第614

每月下载21
用于 freeform

MIT/Apache

24KB

typed_key

Build Status Cargo API reference

配置的强类型字符串键。

从未类型化的 Map<String, Object> 中提取类型化值是一个常见的任务。通常,这是通过字符串键完成的:let port: u32 = map.get("port")?.parse()?。一种稍微更类型安全的做法是将某些类型与相应的字符串常量相关联

#[macro_use]
extern crate typed_key;
use typed_key::Key;

// `PORT` is basically `"port"` string with associated `u32` type.
const PORT: Key<u32> = typed_key!("port");

# fn main() {}

这个crate提供构建此类强类型字符串的基本构建块。参见 示例 以查看完整的配置读取示例,以及 博客文章 以了解该模式的更详细解释。

使用字符串键对于小而独立的案例是完全可行的,但如果这种模式很普遍,typed_key 可以提供以下好处

  • 文档:所有可能的键都在一个地方声明,显式指定它们的类型,并可以有文档注释。
  • 类型安全:因为每个键都携带其类型,所以不可能读取错误类型的值。与字符串键不同,类型键永远不需要turbofish运算符。
  • 拼写安全:你不会在调用站点上拼写错误的类型键。
  • 导航:使用类型键,你可以使用“转到定义”、“查找用法”和重构而无需担心。

无运行时依赖