#google #taxonomy #product #category #txt-file #associated #struct

google_taxonomy

包含所有 Google 产品分类/分类的结构体

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 编码

MIT 许可证

75KB
330

Google 分类/产品分类

此 crate 的目的是更轻松地处理 Google 产品分类/分类。这是通过包含截至 2021 年 8 月 13 日存在的所有类别的 google_taxonomy::ProductCategory 结构体提供的。

相关常量命名

ProductCategory 包含每个产品分类作为一个相关常量。它们是从 taxonomy-with-ids.en-US.txt 文件按以下方式翻译的

  1. 移除了前面的 ID(可以使用 id 方法获取)。
  2. 移除了紧随其后的字符 -
  3. 将所有出现的 & 替换为 And
  4. 最后,移除了所有非字母数字的 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);
}

依赖项