chiark / gitweb /
Deserialise visibility, with compiler warnings
authorSimon Tatham <anakin@pobox.com>
Sat, 23 Dec 2023 10:53:58 +0000 (10:53 +0000)
committerSimon Tatham <anakin@pobox.com>
Sat, 23 Dec 2023 10:53:58 +0000 (10:53 +0000)
src/main.rs

index 17faa091c5e39f65818415eda9d748c82ab379b7..8dd7090b3aeaabb23f557cf81ecd4a48c28aab31 100644 (file)
@@ -34,7 +34,8 @@ struct Account {
     suspended: Option<bool>,
     limited: Option<bool>,
     created_at: DateTime<Utc>,
-    // last_status_at: Option<DateTime<Utc>>, // FIXME: server can send just "2023-12-20"
+    last_status_at: Option<String>, // this lacks a timezone, so serde
+                                    // can't deserialize it in the obvious way
     statuses_count: u64,
     followers_count: u64,
     following_count: u64,
@@ -46,6 +47,11 @@ struct Application {
     website: Option<String>,
 }
 
+#[derive(Serialize, Deserialize, Debug)]
+enum Visibility {
+    public, unlisted, private, direct,
+}
+
 #[derive(Serialize, Deserialize, Debug)]
 struct Status {
     id: String,
@@ -53,7 +59,7 @@ struct Status {
     created_at: DateTime<Utc>,
     account: Account,
     content: String,
-    visibility: String, // FIXME: enum
+    visibility: Visibility,
     sensitive: bool,
     spoiler_text: String,
     // media_attachments: Vec<Media>,