xcom_rs/timeline/
models.rs1use serde::{Deserialize, Serialize};
2
3use crate::tweets::Tweet;
4
5#[derive(Debug, Clone)]
7pub enum TimelineKind {
8 Home,
10 Mentions,
12 User { handle: String },
14}
15
16#[derive(Debug, Clone)]
18pub struct TimelineArgs {
19 pub kind: TimelineKind,
20 pub limit: usize,
21 pub cursor: Option<String>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct TimelinePagination {
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub next_token: Option<String>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub previous_token: Option<String>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct TimelineMeta {
36 pub pagination: TimelinePagination,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct TimelineResult {
42 pub tweets: Vec<Tweet>,
43 #[serde(skip_serializing_if = "Option::is_none")]
44 pub meta: Option<TimelineMeta>,
45}