wx_rust_open/bean/auth/wx_open_mini_program_info.rs
1//! 小程序信息(旧版)。
2//!
3//! 对应 Java `me.chanjar.weixin.open.bean.auth.WxOpenMiniProgramInfo`。
4//! 无 Gson adapter,反射线格式为 Java 字段名(`network`/`categories`/
5//! `visitStatus`)。
6//!
7//! ADAPTED:Java `categories` 为 `List<Pair<String, String>>`(commons-lang
8//! 三元组库),Gson 反射输出 `ImmutablePair` 的 `left`/`right` 字段;Rust 以
9//! 同线格式的 `StringPair` 表达。该字段无线格式 golden,Wave 2 结合授权方
10//! 信息接口实测校准。
11
12use std::collections::HashMap;
13
14/// 小程序信息(旧版)。
15#[derive(Debug, Clone, Default, PartialEq, serde::Serialize, serde::Deserialize)]
16pub struct WxOpenMiniProgramInfo {
17 /// 域名信息(对应 Java `network`:域名 → 域名列表)。
18 #[serde(rename = "network", default)]
19 pub network: Option<HashMap<String, Vec<String>>>,
20 /// 类目键值对列表(对应 Java `categories`,镜像 `Pair` 的 left/right 线格式)。
21 #[serde(rename = "categories", default)]
22 pub categories: Option<Vec<StringPair>>,
23 /// 访问状态。
24 #[serde(rename = "visitStatus", default)]
25 pub visit_status: Option<i32>,
26}
27
28/// 字符串键值对(镜像 Java `org.apache.commons.lang3.tuple.Pair` 的
29/// Gson 反射线格式 `{"left": ..., "right": ...}`)。
30#[derive(Debug, Clone, Default, PartialEq, serde::Serialize, serde::Deserialize)]
31pub struct StringPair {
32 #[serde(rename = "left", default)]
33 pub left: Option<String>,
34 #[serde(rename = "right", default)]
35 pub right: Option<String>,
36}