twilight_model/poll/
results.rs1use super::answer_count::AnswerCount;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
5pub struct PollResults {
7 pub answer_counts: Vec<AnswerCount>,
9 pub is_finalized: bool,
11}
12
13#[cfg(test)]
14mod tests {
15 use super::{AnswerCount, PollResults};
16 use serde_test::Token;
17
18 #[test]
19 fn poll_results() {
20 let value = PollResults {
21 answer_counts: vec![
22 AnswerCount {
23 id: 1,
24 count: 2,
25 me_voted: true,
26 },
27 AnswerCount {
28 id: 3,
29 count: 4,
30 me_voted: false,
31 },
32 ],
33 is_finalized: true,
34 };
35
36 serde_test::assert_tokens(
37 &value,
38 &[
39 Token::Struct {
40 name: "PollResults",
41 len: 2,
42 },
43 Token::Str("answer_counts"),
44 Token::Seq { len: Some(2) },
45 Token::Struct {
46 name: "AnswerCount",
47 len: 3,
48 },
49 Token::Str("id"),
50 Token::U8(1),
51 Token::Str("count"),
52 Token::U64(2),
53 Token::Str("me_voted"),
54 Token::Bool(true),
55 Token::StructEnd,
56 Token::Struct {
57 name: "AnswerCount",
58 len: 3,
59 },
60 Token::Str("id"),
61 Token::U8(3),
62 Token::Str("count"),
63 Token::U64(4),
64 Token::Str("me_voted"),
65 Token::Bool(false),
66 Token::StructEnd,
67 Token::SeqEnd,
68 Token::Str("is_finalized"),
69 Token::Bool(true),
70 Token::StructEnd,
71 ],
72 );
73 }
74}