reddit_rs/models/
comment.rs1use 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)] #[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 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}