reddit_rs/models/
comment.rs

1use chrono::{DateTime, Utc};
2use iri_string::types::IriRelativeString;
3use serde::{Deserialize, Serialize};
4
5use crate::models::{
6    author::Author, award::TopAwardedType, fullname::FullName, guilding::Gildings,
7    link::SubredditInfo,
8};
9
10#[allow(clippy::struct_excessive_bools)] // reddit api sucks
11#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
12pub struct Comment {
13    all_awardings: Vec<()>,
14    approved_at_utc: Option<()>,
15    approved_by: Option<()>,
16    archived: bool,
17    associated_award: Option<()>,
18    #[serde(flatten)]
19    author: Author,
20    awarders: Vec<()>,
21    banned_at_utc: Option<()>,
22    banned_by: Option<()>,
23    body_html: String,
24    body: String,
25    can_gild: bool,
26    can_mod_post: bool,
27    collapsed_because_crowd_control: Option<()>,
28    collapsed_reason_code: Option<()>,
29    collapsed_reason: Option<()>,
30    collapsed: bool,
31    comment_type: Option<()>,
32    controversiality: u32,
33
34    #[serde(deserialize_with = "crate::utils::integer_or_float_to_datetime")]
35    created_utc: DateTime<Utc>,
36    #[serde(deserialize_with = "crate::utils::integer_or_float_to_datetime")]
37    created: DateTime<Utc>,
38    depth: u32,
39    distinguished: Option<()>,
40    downs: u32,
41    edited: bool,
42    gilded: u32,
43    gildings: Gildings,
44    /// REVIEW: base64?
45    id: String,
46    is_submitter: bool,
47    likes: Option<()>,
48    link_id: FullName,
49    locked: bool,
50    mod_note: Option<()>,
51    mod_reason_by: Option<()>,
52    mod_reason_title: Option<()>,
53    mod_reports: Vec<()>,
54    name: FullName,
55    no_follow: bool,
56    num_reports: Option<()>,
57    parent_id: FullName,
58    permalink: IriRelativeString,
59    removal_reason: Option<()>,
60    replies: String,
61    report_reasons: Option<()>,
62    saved: bool,
63    score_hidden: bool,
64    score: u32,
65    send_replies: bool,
66    stickied: bool,
67    #[serde(flatten)]
68    subreddit: SubredditInfo,
69    top_awarded_type: Option<TopAwardedType>,
70    total_awards_received: u32,
71    treatment_tags: Vec<()>,
72    unrepliable_reason: Option<()>,
73    ups: u32,
74    user_reports: Vec<()>,
75}