gewe-core 0.1.4

Core types and definitions for gewe WeChat SDK
Documentation
use serde::{Deserialize, Serialize};
use serde_json::Value;

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FinderExtInfo {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub country: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub province: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub city: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub sex: Option<i32>,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FinderLotterySetting {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub setting_flag: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub attend_type: Option<i32>,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FinderLiveInfo {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub anchor_status_flag: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub switch_flag: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub lottery_setting: Option<FinderLotterySetting>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub mic_setting: Option<Value>,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FinderContactProfile {
    pub username: String,
    pub nickname: String,
    pub head_url: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub seq: Option<i64>,
    pub signature: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub follow_flag: Option<i32>,
    #[serde(default)]
    pub auth_info: Value,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub cover_img_url: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub spam_status: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub ext_flag: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub ext_info: Option<FinderExtInfo>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub live_status: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub live_cover_img_url: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub live_info: Option<FinderLiveInfo>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub friend_follow_count: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub one_time_flag: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub status: Option<i32>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub follow_time: Option<i64>,
}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FinderSearchInfo<'a> {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub cookies: Option<&'a str>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub search_id: Option<&'a str>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub doc_id: Option<&'a str>,
}

pub type FinderRawData = Value;