diff options
| author | Zeyla Hellyer <[email protected]> | 2017-06-04 20:32:25 -0700 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-06-06 10:12:13 -0700 |
| commit | 990e611a56f37f64fbce74fbc487c7dcc4aa4e28 (patch) | |
| tree | 399c69583bd256d31668affc227f235386814552 /src/model/event.rs | |
| parent | Add CurrentUser::face(), User::face() (diff) | |
| download | serenity-990e611a56f37f64fbce74fbc487c7dcc4aa4e28.tar.xz serenity-990e611a56f37f64fbce74fbc487c7dcc4aa4e28.zip | |
Use chrono for struct timestamp fields
Chrono is easier to use than timestamped strings, so they should be
automatically deserialized and available for the user, instead of having
the user deserialize the strings themselves.
These fields have been changed to use a type of `DateTime<FixedOffset>`:
- `ChannelPinsUpdateEvent.last_pin_timestamp`
- `Group.last_pin_timestamp`
- `Guild.joined_at`
- `GuildChannel.last_pin_timestamp`
- `Invite.created_at`
- `Member.joined_at`
- `Message.edited_timestamp
- `Message.timestamp`
- `MessageUpdateEvent.edited_timestamp`
- `MessageUpdateEvent.timestamp`
- `PrivateChannel.last_pin_timestamp`
`Member.joined_at` is now also an `Option`. Previously, if a Guild
Member Update was received for a member not in the cache, a new Member
would be instantiated with a default String value. This is incorrect
behaviour, and has now been replaced with being set to `None` in that
case.
Id methods' `created_at()` method now return a `chrono::NaiveDateTime`
instead of a `time::Timespec`, and `User::created_at` has been updated
to reflect that.
Additionally, drop `time` as a direct dependency and use chrono for
internals.
Diffstat (limited to 'src/model/event.rs')
| -rw-r--r-- | src/model/event.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/model/event.rs b/src/model/event.rs index 6458b77..bbb60c7 100644 --- a/src/model/event.rs +++ b/src/model/event.rs @@ -1,5 +1,6 @@ //! All the events this library handles. +use chrono::{DateTime, FixedOffset}; use serde::de::Error as DeError; use serde_json::{self, Error as JsonError}; use std::collections::HashMap; @@ -55,7 +56,7 @@ impl<'de> Deserialize<'de> for ChannelDeleteEvent { #[derive(Clone, Debug, Deserialize)] pub struct ChannelPinsUpdateEvent { pub channel_id: ChannelId, - pub last_pin_timestamp: Option<String>, + pub last_pin_timestamp: Option<DateTime<FixedOffset>>, } #[derive(Clone, Debug, Deserialize)] @@ -278,8 +279,8 @@ pub struct MessageUpdateEvent { pub nonce: Option<String>, pub tts: Option<bool>, pub pinned: Option<bool>, - pub timestamp: Option<String>, - pub edited_timestamp: Option<String>, + pub timestamp: Option<DateTime<FixedOffset>>, + pub edited_timestamp: Option<DateTime<FixedOffset>>, pub author: Option<User>, pub mention_everyone: Option<bool>, pub mentions: Option<Vec<User>>, |