pub struct P13nData {
pub demographics: Demographics,
pub interests: Interests,
pub location_history: Vec<String>,
pub inferred_age_info: InferredAgeInfo,
}Expand description
§Example
use twitter_archive::structs::personalization::P13nData;
let json = r##"{
"demographics": {
"languages": [
{
"language": "English",
"isDisabled": false
}
],
"genderInfo": {
"gender": "unknown",
"genderOverride": "Borg"
}
},
"interests": {
"interests": [
{
"name": "#HappyFriday",
"isDisabled": false
}
],
"partnerInterests": [],
"audienceAndAdvertisers": {
"lookalikeAdvertisers": [
"@EXAMPLE_ONE",
"@EXAMPLE_TWO"
],
"advertisers": [],
"doNotReachAdvertisers": [],
"catalogAudienceAdvertisers": [],
"numAudiences": "0"
},
"shows": [
"1899",
"DuckTales"
]
},
"locationHistory": [],
"inferredAgeInfo": {
"age": [
"13-99"
],
"birthDate": ""
}
}"##;
let data: P13nData = serde_json::from_str(&json).unwrap();
// De-serialized properties
assert_eq!(data.demographics.languages[0].language, "English");
assert_eq!(data.demographics.languages[0].is_disabled, false);
assert_eq!(data.demographics.gender_info.gender, "unknown");
assert_eq!(data.demographics.gender_info.gender_override, "Borg");
assert_eq!(data.interests.interests[0].name, "#HappyFriday");
assert_eq!(data.interests.interests[0].is_disabled, false);
assert_eq!(data.interests.partner_interests.len(), 0);
assert_eq!(data.interests.audience_and_advertisers.lookalike_advertisers.len(), 2);
assert_eq!(data.interests.audience_and_advertisers.advertisers.len(), 0);
assert_eq!(data.interests.audience_and_advertisers.do_not_reach_advertisers.len(), 0);
assert_eq!(data.interests.audience_and_advertisers.catalog_audience_advertisers.len(), 0);
assert_eq!(data.interests.audience_and_advertisers.num_audiences, 0);
assert_eq!(data.interests.shows[0], "1899");
assert_eq!(data.interests.shows[1], "DuckTales");
assert_eq!(data.location_history.len(), 0);
assert_eq!(data.inferred_age_info.age[0], "13-99");
assert_eq!(data.inferred_age_info.birth_date, "");
// Re-serialize is equivalent to original data
assert_eq!(serde_json::to_string_pretty(&data).unwrap(), json);Fields§
§demographics: Demographics§Example JSON data
{
"demographics": {
"languages": [
{
"language": "English",
"isDisabled": false
}
],
"genderInfo": {
"gender": "unknown",
"genderOverride": "Borg"
}
}
}interests: Interests§Example JSON data
{
"interests": {
"interests": [
{
"name": "#HappyFriday",
"isDisabled": false
}
],
"partnerInterests": [],
"audienceAndAdvertisers": {
"lookalikeAdvertisers": [
"@EXAMPLE_ONE",
"@EXAMPLE_TWO"
],
"advertisers": [],
"doNotReachAdvertisers": [],
"catalogAudienceAdvertisers": [],
"numAudiences": "0"
},
"shows": [
"1899",
"DuckTales"
]
}
}location_history: Vec<String>§inferred_age_info: InferredAgeInfo§Example JSON data
{
"inferredAgeInfo": {
"age": [
"13-99"
],
"birthDate": ""
}
}Trait Implementations§
Source§impl<'de> Deserialize<'de> for P13nData
impl<'de> Deserialize<'de> for P13nData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for P13nData
impl RefUnwindSafe for P13nData
impl Send for P13nData
impl Sync for P13nData
impl Unpin for P13nData
impl UnwindSafe for P13nData
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more