8 个版本
0.3.2 | 2021 年 8 月 27 日 |
---|---|
0.3.1 | 2021 年 8 月 15 日 |
0.2.2 | 2021 年 8 月 13 日 |
0.1.1 | 2021 年 8 月 13 日 |
#1033 in 编码
75KB
330 行
Google 分类/产品分类
此 crate 的目的是更轻松地处理 Google 产品分类/分类。这是通过包含截至 2021 年 8 月 13 日存在的所有类别的 google_taxonomy::ProductCategory
结构体提供的。
相关常量命名
ProductCategory 包含每个产品分类作为一个相关常量。它们是从 taxonomy-with-ids.en-US.txt 文件按以下方式翻译的
- 移除了前面的 ID(可以使用
id
方法获取)。 - 移除了紧随其后的字符
-
- 将所有出现的
&
替换为And
- 最后,移除了所有非字母数字的 ASCII 字符
例如 1604 - Apparel & Accessories > Clothing
变为 ProductCategory::ApparelAndAccessoriesClothing
。
每个常量占用 2 字节内存。
示例
尝试将整数解析为产品分类(即从其 ID)
use std::convert::TryInto;
use google_taxonomy::ProductCategory;
let cat: ProductCategory = 3237.try_into().unwrap();
assert_eq!(cat, ProductCategory::AnimalsAndPetSuppliesLiveAnimals);
获取产品分类的数字表示
use google_taxonomy::ProductCategory;
assert_eq!(ProductCategory::AnimalsAndPetSuppliesLiveAnimals.id(), 3237);
获取产品分类的名称
use google_taxonomy::ProductCategory;
assert_eq!(ProductCategory::AnimalsAndPetSuppliesLiveAnimals.to_string(), "Animals & Pet Supplies > Live Animals");
使用 Serde 序列化/反序列化
#[cfg(feature = "serde")]
{
use serde::{Deserialize, Serialize};
use google_taxonomy::ProductCategory;
#[derive(Deserialize, Serialize, Debug, PartialEq)]
struct Product {
category: ProductCategory,
}
let serialized = r#"{"category":"Animals & Pet Supplies"}"#;
// Deserialize, e.g. with serde_json
let deserialized: Product = serde_json::from_str(&serialized).unwrap();
assert_eq!(deserialized, Product { category: ProductCategory::AnimalsAndPetSupplies });
// And back to its original serialized form again...
assert_eq!(serde_json::to_string(&deserialized).unwrap(), serialized);
}