elong-offline-sdk 0.1.4

用于与艺龙离线数据异步交互的 SDK
Documentation
use serde::{Deserialize, Serialize};

use crate::elong::error::ElongError;

use super::api_response::{BaseResponse, ElongResponse};

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StaticListResponse {
    pub count: u32,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub hotels: Option<Vec<Hotel>>,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Hotel {
    pub hotel_id: String,
    pub hotel_name: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub hotel_name_en: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub hotel_status: Option<i32>,
    pub modification: String,
    pub update_time: String,
}

impl BaseResponse for ElongResponse<StaticListResponse> {
    fn from_json(json: String) -> Result<Self, ElongError> {
        log::debug!("ElongResponse<StaticListRes> json: {}", json);
        Ok(serde_json::from_str(&json)?)
    }
}