uapi-sdk-rust 0.1.15

UAPI Rust SDK - idiomatic, typed, domain-driven API client.
Documentation
/*
 * UAPI
 *
 * UAPI 官方接口文档
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PostSearchAggregateRequest {
    /// 搜索查询关键词,支持中英文
    #[serde(rename = "query")]
    pub query: String,
    /// 限制搜索特定网站,不需要 `site:` 前缀
    #[serde(rename = "site", skip_serializing_if = "Option::is_none")]
    pub site: Option<String>,
    /// 限制文件类型,不需要 `filetype:` 前缀。支持 pdf、doc、docx、ppt、pptx、xls、xlsx、txt 等
    #[serde(rename = "filetype", skip_serializing_if = "Option::is_none")]
    pub filetype: Option<String>,
    /// 是否获取页面完整正文(会影响响应时间)
    #[serde(rename = "fetch_full", skip_serializing_if = "Option::is_none")]
    pub fetch_full: Option<bool>,
    /// 请求超时时间(毫秒),范围 1000-30000
    #[serde(rename = "timeout_ms", skip_serializing_if = "Option::is_none")]
    pub timeout_ms: Option<i32>,
    /// 排序方式
    #[serde(rename = "sort", skip_serializing_if = "Option::is_none")]
    pub sort: Option<Sort>,
    /// 时间范围过滤
    #[serde(rename = "time_range", skip_serializing_if = "Option::is_none")]
    pub time_range: Option<TimeRange>,
}

impl PostSearchAggregateRequest {
    pub fn new(query: String) -> PostSearchAggregateRequest {
        PostSearchAggregateRequest {
            query,
            site: None,
            filetype: None,
            fetch_full: None,
            timeout_ms: None,
            sort: None,
            time_range: None,
        }
    }
}
/// 排序方式
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Sort {
    #[serde(rename = "relevance")]
    Relevance,
    #[serde(rename = "date")]
    Date,
}

impl Default for Sort {
    fn default() -> Sort {
        Self::Relevance
    }
}
/// 时间范围过滤
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TimeRange {
    #[serde(rename = "day")]
    Day,
    #[serde(rename = "week")]
    Week,
    #[serde(rename = "month")]
    Month,
    #[serde(rename = "year")]
    Year,
}

impl Default for TimeRange {
    fn default() -> TimeRange {
        Self::Day
    }
}