rustgie_types/destiny/components/records/
mod.rs

1use std::collections::HashMap;
2use serde::{Deserialize, Serialize};
3
4#[derive(Deserialize, Serialize)]
5pub struct DestinyRecordsComponent {
6    #[serde(rename = "records")]
7    pub records: Option<HashMap<u32, crate::destiny::components::records::DestinyRecordComponent>>,
8
9    /// The hash for the root presentation node definition of Triumph categories.
10    #[serde(rename = "recordCategoriesRootNodeHash")]
11    pub record_categories_root_node_hash: u32,
12
13    /// The hash for the root presentation node definition of Triumph Seals.
14    #[serde(rename = "recordSealsRootNodeHash")]
15    pub record_seals_root_node_hash: u32,
16}
17
18#[derive(Deserialize, Serialize)]
19pub struct DestinyRecordComponent {
20    #[serde(rename = "state")]
21    pub state: enumflags2::BitFlags<crate::destiny::DestinyRecordState>,
22
23    #[serde(rename = "objectives")]
24    pub objectives: Option<Vec<crate::destiny::quests::DestinyObjectiveProgress>>,
25
26    #[serde(rename = "intervalObjectives")]
27    pub interval_objectives: Option<Vec<crate::destiny::quests::DestinyObjectiveProgress>>,
28
29    #[serde(rename = "intervalsRedeemedCount")]
30    pub intervals_redeemed_count: i32,
31
32    /// If available, this is the number of times this record has been completed. For example, the number of times a seal title has been gilded.
33    #[serde(rename = "completedCount")]
34    pub completed_count: Option<i32>,
35
36    /// If available, a list that describes which reward rewards should be shown (true) or hidden (false). This property is for regular record rewards, and not for interval objective rewards.
37    #[serde(rename = "rewardVisibilty")]
38    pub reward_visibilty: Option<Vec<bool>>,
39}
40
41#[derive(Deserialize, Serialize)]
42pub struct DestinyProfileRecordsComponent {
43    /// Your 'active' Triumphs score, maintained for backwards compatibility.
44    #[serde(rename = "score")]
45    pub score: i32,
46
47    /// Your 'active' Triumphs score.
48    #[serde(rename = "activeScore")]
49    pub active_score: i32,
50
51    /// Your 'legacy' Triumphs score.
52    #[serde(rename = "legacyScore")]
53    pub legacy_score: i32,
54
55    /// Your 'lifetime' Triumphs score.
56    #[serde(rename = "lifetimeScore")]
57    pub lifetime_score: i32,
58
59    /// If this profile is tracking a record, this is the hash identifier of the record it is tracking.
60    #[serde(rename = "trackedRecordHash")]
61    pub tracked_record_hash: Option<u32>,
62
63    #[serde(rename = "records")]
64    pub records: Option<HashMap<u32, crate::destiny::components::records::DestinyRecordComponent>>,
65
66    /// The hash for the root presentation node definition of Triumph categories.
67    #[serde(rename = "recordCategoriesRootNodeHash")]
68    pub record_categories_root_node_hash: u32,
69
70    /// The hash for the root presentation node definition of Triumph Seals.
71    #[serde(rename = "recordSealsRootNodeHash")]
72    pub record_seals_root_node_hash: u32,
73}
74
75#[derive(Deserialize, Serialize)]
76pub struct DestinyCharacterRecordsComponent {
77    #[serde(rename = "featuredRecordHashes")]
78    pub featured_record_hashes: Option<Vec<u32>>,
79
80    #[serde(rename = "records")]
81    pub records: Option<HashMap<u32, crate::destiny::components::records::DestinyRecordComponent>>,
82
83    /// The hash for the root presentation node definition of Triumph categories.
84    #[serde(rename = "recordCategoriesRootNodeHash")]
85    pub record_categories_root_node_hash: u32,
86
87    /// The hash for the root presentation node definition of Triumph Seals.
88    #[serde(rename = "recordSealsRootNodeHash")]
89    pub record_seals_root_node_hash: u32,
90}