From 2f1682162174f5fee4f4297f616e8f66b7c70dca Mon Sep 17 00:00:00 2001 From: David Blajda Date: Mon, 24 Dec 2018 23:08:26 +0000 Subject: Fix lifetimes on ratelimit trait --- src/helix/models.rs | 46 +++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) (limited to 'src/helix/models.rs') diff --git a/src/helix/models.rs b/src/helix/models.rs index 86b7560..bdb8438 100644 --- a/src/helix/models.rs +++ b/src/helix/models.rs @@ -5,14 +5,29 @@ use url::Url; use chrono::{DateTime, Utc}; use super::types::{UserId, VideoId, ChannelId}; +pub trait PaginationTrait { + fn cursor<'a>(&'a self) -> &'a Option; + fn set_request(&mut self); +} + #[derive(Debug, Deserialize)] pub struct DataContainer { pub data: Vec } -#[derive(Debug, Deserialize)] -pub struct Cursor { - cursor: String +impl PaginationTrait for DataContainer { + fn cursor<'a>(&'a self) -> &'a Option { &None } + fn set_request(&mut self) {} +} + +impl PaginationTrait for PaginationContainer { + fn cursor<'a>(&'a self) -> &'a Option { &self.pagination } + fn set_request(&mut self) {} +} + +impl PaginationTrait for Credentials { + fn cursor<'a>(&'a self) -> &'a Option { &None } + fn set_request(&mut self) {} } #[derive(Debug, Deserialize)] @@ -21,6 +36,21 @@ pub struct PaginationContainer { pub pagination: Option } +#[derive(Debug, Deserialize)] +pub struct Cursor { + cursor: String +} + +#[derive(Debug, Deserialize)] +pub struct Credentials { + pub access_token: String, + pub refresh_token: Option, + pub expires_in: u32, + pub scope: Option>, + pub token_type: String, +} + + #[derive(Debug, Deserialize)] pub struct Video { pub id: VideoId, @@ -80,13 +110,3 @@ pub struct Clip { pub thumbnail_url: Url, pub view_count: i32, } - - -#[derive(Debug, Deserialize)] -pub struct Credentials { - pub access_token: String, - pub refresh_token: Option, - pub expires_in: u32, - pub scope: Option>, - pub token_type: String, -} -- cgit v1.2.3