From 91d66d76ad65dc500abb19946850d5a2f3a3b6df Mon Sep 17 00:00:00 2001 From: Paul Woolcock Date: Fri, 25 Sep 2020 16:56:58 -0400 Subject: [PATCH] Add an `exclude_reblogs` to StatusesRequest Closes #134 --- macro-dbg | 30158 ------------------------------------- src/requests/statuses.rs | 12 + 2 files changed, 12 insertions(+), 30158 deletions(-) delete mode 100644 macro-dbg diff --git a/macro-dbg b/macro-dbg deleted file mode 100644 index 27be5c5..0000000 --- a/macro-dbg +++ /dev/null @@ -1,30158 +0,0 @@ -#![feature(prelude_import)] -//! # Elefren: API Wrapper around the Mastodon API. -//! -//! Most of the api is documented on [Mastodon's website](https://docs.joinmastodon.org/client/intro/) -//! -//! ```no_run -//! # extern crate elefren; -//! # fn main() { -//! # run().unwrap(); -//! # } -//! # fn run() -> elefren::Result<()> { -//! use elefren::{helpers::cli, prelude::*}; -//! -//! let registration = Registration::new("https://mastodon.social") -//! .client_name("elefren_test") -//! .build()?; -//! let mastodon = cli::authenticate(registration)?; -//! -//! println!( -//! "{:?}", -//! mastodon -//! .get_home_timeline()? -//! .items_iter() -//! .take(100) -//! .collect::>() -//! ); -//! # Ok(()) -//! # } -//! ``` -//! -//! Elefren also supports Mastodon's Streaming API: -//! -//! # Example -//! -//! ```no_run -//! # extern crate elefren; -//! # use elefren::prelude::*; -//! # use std::error::Error; -//! use elefren::entities::event::Event; -//! # fn main() -> Result<(), Box> { -//! # let data = Data { -//! # base: "".into(), -//! # client_id: "".into(), -//! # client_secret: "".into(), -//! # redirect: "".into(), -//! # token: "".into(), -//! # }; -//! let client = Mastodon::from(data); -//! for event in client.streaming_user()? { -//! match event { -//! Event::Update(ref status) => { /* .. */ }, -//! Event::Notification(ref notification) => { /* .. */ }, -//! Event::Delete(ref id) => { /* .. */ }, -//! Event::FiltersChanged => { /* .. */ }, -//! } -//! } -//! # Ok(()) -//! # } -//! ``` - -#![deny(missing_docs, warnings, missing_debug_implementations, - missing_copy_implementations, trivial_casts, trivial_numeric_casts, - unsafe_code, unstable_features, unused_import_braces, - unused_qualifications)] -#![allow(intra_doc_link_resolution_failure)] -#[prelude_import] -use std::prelude::v1::*; -#[macro_use] -extern crate std; - -#[macro_use] -extern crate log; -#[macro_use] -extern crate serde_derive; -#[macro_use] -extern crate doc_comment; -extern crate hyper_old_types; -extern crate isolang; -#[macro_use] -extern crate serde_json; -extern crate chrono; -extern crate reqwest; -extern crate serde; -extern crate serde_qs; -extern crate serde_urlencoded; -extern crate tap_reader; -extern crate try_from; -extern crate url; -extern crate tungstenite; - - - - - -use std::{borrow::Cow, - /* - io::BufRead, - */ - ops}; - -use async_trait::async_trait; -use reqwest::{Client, RequestBuilder, Response}; -use tap_reader::Tap; -/* -use tungstenite::client::AutoStream; -*/ - -use crate::entities::prelude::*; -use crate::page::Page; - -pub use crate::data::Data; -pub use crate::errors::{ApiError, Error, Result}; -pub use isolang::Language; -pub use crate::mastodon_client::{MastodonClient, MastodonUnauthenticated}; -pub use crate::registration::Registration; -pub use crate::requests::{AddFilterRequest, AddPushRequest, StatusesRequest, - UpdateCredsRequest, UpdatePushRequest}; -pub use crate::status_builder::{NewStatus, StatusBuilder}; - -/// Registering your App -pub mod apps { - - - - - - - /* - type Stream = EventReader; - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* - /// returns events that are relevant to the authorized user, i.e. home - /// timeline & notifications - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # use elefren::prelude::*; - /// # use std::error::Error; - /// use elefren::entities::event::Event; - /// # fn main() -> Result<(), Box> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// let client = Mastodon::from(data); - /// for event in client.streaming_user()? { - /// match event { - /// Event::Update(ref status) => { /* .. */ }, - /// Event::Notification(ref notification) => { /* .. */ }, - /// Event::Delete(ref id) => { /* .. */ }, - /// Event::FiltersChanged => { /* .. */ }, - /// } - /// } - /// # Ok(()) - /// # } - /// ``` - fn streaming_user(&self) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "user"); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - - /// returns all public statuses - fn streaming_public(&self) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "public"); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - - /// Returns all local statuses - fn streaming_local(&self) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "public:local"); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - - /// Returns all public statuses for a particular hashtag - fn streaming_public_hashtag(&self, hashtag: &str) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "hashtag") - .append_pair("tag", hashtag); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - - /// Returns all local statuses for a particular hashtag - fn streaming_local_hashtag(&self, hashtag: &str) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "hashtag:local") - .append_pair("tag", hashtag); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - - /// Returns statuses for a list - fn streaming_list(&self, list_id: &str) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "list") - .append_pair("list", list_id); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - - /// Returns all direct messages - fn streaming_direct(&self) -> Result { - let mut url: url::Url = self.route("/api/v1/streaming").parse()?; - url.query_pairs_mut() - .append_pair("access_token", &self.token) - .append_pair("stream", "direct"); - let mut url: url::Url = reqwest::get(url.as_str())?.url().as_str().parse()?; - let new_scheme = match url.scheme() { - "http" => "ws", - "https" => "wss", - x => return Err(Error::Other(format!("Bad URL scheme: {}", x))), - }; - url.set_scheme(new_scheme).map_err(|_| Error::Other("Bad URL scheme!".to_string()))?; - - let client = tungstenite::connect(url.as_str())?.0; - - Ok(EventReader(WebSocket(client))) - } - */ - - /* - #[derive(Debug)] - /// WebSocket newtype so that EventStream can be implemented without coherency issues - pub struct WebSocket(tungstenite::protocol::WebSocket); - - /// A type that streaming events can be read from - pub trait EventStream { - /// Read a message from this stream - fn read_message(&mut self) -> Result; - } - - impl EventStream for R { - fn read_message(&mut self) -> Result { - let mut buf = String::new(); - self.read_line(&mut buf)?; - Ok(buf) - } - } - - impl EventStream for WebSocket { - fn read_message(&mut self) -> Result { - Ok(self.0.read_message()?.into_text()?) - } - } - - #[derive(Debug)] - /// Iterator that produces events from a mastodon streaming API event stream - pub struct EventReader(R); - impl Iterator for EventReader { - type Item = Event; - - fn next(&mut self) -> Option { - let mut lines = Vec::new(); - loop { - if let Ok(line) = self.0.read_message() { - let line = line.trim().to_string(); - if line.starts_with(":") || line.is_empty() { - continue; - } - lines.push(line); - if let Ok(event) = self.make_event(&lines) { - lines.clear(); - return Some(event); - } else { - continue; - } - } - } - } - } - - impl EventReader { - fn make_event(&self, lines: &[String]) -> Result { - let event; - let data; - if let Some(event_line) = lines - .iter() - .find(|line| line.starts_with("event:")) - { - event = event_line[6..].trim().to_string(); - data = lines.iter().find(|line| line.starts_with("data:")).map(|x| x[5..].trim().to_string()); - } else { - #[derive(Deserialize)] - struct Message { - pub event: String, - pub payload: Option, - } - let message = serde_json::from_str::(&lines[0])?; - event = message.event; - data = message.payload; - } - let event: &str = &event; - Ok(match event { - "notification" => { - let data = data.ok_or_else(|| { - Error::Other("Missing `data` line for notification".to_string()) - })?; - let notification = serde_json::from_str::(&data)?; - Event::Notification(notification) - }, - "update" => { - let data = - data.ok_or_else(|| Error::Other("Missing `data` line for update".to_string()))?; - let status = serde_json::from_str::(&data)?; - Event::Update(status) - }, - "delete" => { - let data = - data.ok_or_else(|| Error::Other("Missing `data` line for delete".to_string()))?; - Event::Delete(data) - }, - "filters_changed" => Event::FiltersChanged, - _ => return Err(Error::Other(format!("Unknown event `{}`", event))), - }) - } - } - */ - - - - - - - - - - - - - - - - // Convert the HTTP response body from JSON. Pass up deserialization errors - // transparently. - - // If deserializing into the desired type fails try again to - // see if this is an error response. - use std::borrow::Cow; - use try_from::TryInto; - use crate::errors::{Error, Result}; - use crate::scopes::Scopes; - /// Represents an application that can be registered with a mastodon instance - pub struct App { - client_name: String, - redirect_uris: String, - scopes: Scopes, - #[serde(skip_serializing_if = "Option::is_none")] - website: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for App { - #[inline] - fn clone(&self) -> App { - match *self { - App { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => - App{client_name: ::core::clone::Clone::clone(&(*__self_0_0)), - redirect_uris: - ::core::clone::Clone::clone(&(*__self_0_1)), - scopes: ::core::clone::Clone::clone(&(*__self_0_2)), - website: ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for App { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - App { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => { - let mut debug_trait_builder = f.debug_struct("App"); - let _ = - debug_trait_builder.field("client_name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("redirect_uris", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("scopes", &&(*__self_0_2)); - let _ = - debug_trait_builder.field("website", &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for App { - #[inline] - fn default() -> App { - App{client_name: ::core::default::Default::default(), - redirect_uris: ::core::default::Default::default(), - scopes: ::core::default::Default::default(), - website: ::core::default::Default::default(),} - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_App: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for App { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "App", - false as - usize + - 1 + 1 + - 1 + - if Option::is_none(&self.website) - { - 0 - } else { - 1 - }) { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "client_name", - &self.client_name) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "redirect_uris", - &self.redirect_uris) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "scopes", - &self.scopes) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if !Option::is_none(&self.website) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "website", - &self.website) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "website") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl ::core::marker::StructuralPartialEq for App { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for App { - #[inline] - fn eq(&self, other: &App) -> bool { - match *other { - App { - client_name: ref __self_1_0, - redirect_uris: ref __self_1_1, - scopes: ref __self_1_2, - website: ref __self_1_3 } => - match *self { - App { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &App) -> bool { - match *other { - App { - client_name: ref __self_1_0, - redirect_uris: ref __self_1_1, - scopes: ref __self_1_2, - website: ref __self_1_3 } => - match *self { - App { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - impl App { - /// Get an AppBuilder object - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::apps::App; - /// - /// let mut builder = App::builder(); - /// ``` - pub fn builder<'a>() -> AppBuilder<'a> { AppBuilder::new() } - /// Retrieve the list of scopes that apply to this App - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::Error; - /// use elefren::{apps::App, scopes::Scopes}; - /// - /// # fn main() -> Result<(), Error> { - /// let mut builder = App::builder(); - /// builder.client_name("elefren-test"); - /// let app = builder.build()?; - /// let scopes = app.scopes(); - /// assert_eq!(scopes, &Scopes::read_all()); - /// # Ok(()) - /// # } - /// ``` - pub fn scopes(&self) -> &Scopes { &self.scopes } - } - /// Builder struct for defining your application. - /// ``` - /// use elefren::apps::App; - /// use std::error::Error; - /// - /// # fn main() -> Result<(), Box> { - /// let mut builder = App::builder(); - /// builder.client_name("elefren_test"); - /// let app = builder.build()?; - /// # Ok(()) - /// # } - /// ``` - pub struct AppBuilder<'a> { - client_name: Option>, - redirect_uris: Option>, - scopes: Option, - website: Option>, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::clone::Clone for AppBuilder<'a> { - #[inline] - fn clone(&self) -> AppBuilder<'a> { - match *self { - AppBuilder { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => - AppBuilder{client_name: - ::core::clone::Clone::clone(&(*__self_0_0)), - redirect_uris: - ::core::clone::Clone::clone(&(*__self_0_1)), - scopes: - ::core::clone::Clone::clone(&(*__self_0_2)), - website: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::fmt::Debug for AppBuilder<'a> { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - AppBuilder { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("AppBuilder"); - let _ = - debug_trait_builder.field("client_name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("redirect_uris", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("scopes", &&(*__self_0_2)); - let _ = - debug_trait_builder.field("website", &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::default::Default for AppBuilder<'a> { - #[inline] - fn default() -> AppBuilder<'a> { - AppBuilder{client_name: ::core::default::Default::default(), - redirect_uris: ::core::default::Default::default(), - scopes: ::core::default::Default::default(), - website: ::core::default::Default::default(),} - } - } - impl <'a> ::core::marker::StructuralPartialEq for AppBuilder<'a> { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::cmp::PartialEq for AppBuilder<'a> { - #[inline] - fn eq(&self, other: &AppBuilder<'a>) -> bool { - match *other { - AppBuilder { - client_name: ref __self_1_0, - redirect_uris: ref __self_1_1, - scopes: ref __self_1_2, - website: ref __self_1_3 } => - match *self { - AppBuilder { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &AppBuilder<'a>) -> bool { - match *other { - AppBuilder { - client_name: ref __self_1_0, - redirect_uris: ref __self_1_1, - scopes: ref __self_1_2, - website: ref __self_1_3 } => - match *self { - AppBuilder { - client_name: ref __self_0_0, - redirect_uris: ref __self_0_1, - scopes: ref __self_0_2, - website: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_AppBuilder: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'a> _serde::Serialize for AppBuilder<'a> { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "AppBuilder", - false as - usize + - 1 + 1 + - 1 + 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "client_name", - &self.client_name) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "redirect_uris", - &self.redirect_uris) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "scopes", - &self.scopes) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "website", - &self.website) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl <'a> AppBuilder<'a> { - /// Creates a new AppBuilder object - pub fn new() -> Self { Default::default() } - /// Name of the application. Will be displayed when the user is deciding to - /// grant permission. - /// - /// In order to turn this builder into an App, this needs to be provided - pub fn client_name>>(&mut self, name: I) - -> &mut Self { - self.client_name = Some(name.into()); - self - } - /// Where the user should be redirected after authorization - /// - /// If none is specified, the default is `urn:ietf:wg:oauth:2.0:oob` - pub fn redirect_uris>>(&mut self, uris: I) - -> &mut Self { - self.redirect_uris = Some(uris.into()); - self - } - /// Permission scope of the application. - /// - /// IF none is specified, the default is Scopes::read_all() - pub fn scopes(&mut self, scopes: Scopes) -> &mut Self { - self.scopes = Some(scopes); - self - } - /// URL to the homepage of your application. - pub fn website>>(&mut self, website: I) - -> &mut Self { - self.website = Some(website.into()); - self - } - /// Attempts to convert this build into an `App` - /// - /// Will fail if no `client_name` was provided - pub fn build(self) -> Result { - Ok(App{client_name: - self.client_name.ok_or_else(|| - Error::MissingField("client_name"))?.into(), - redirect_uris: - self.redirect_uris.unwrap_or_else(|| - "urn:ietf:wg:oauth:2.0:oob".into()).into(), - scopes: self.scopes.unwrap_or_else(|| Scopes::read_all()), - website: self.website.map(|s| s.into()),}) - } - } - impl TryInto for App { - type Err = Error; - fn try_into(self) -> Result { Ok(self) } - } - impl <'a> TryInto for AppBuilder<'a> { - type Err = Error; - fn try_into(self) -> Result { Ok(self.build()?) } - } -} -/// Contains the struct that holds the client auth data -pub mod data { - use std::borrow::Cow; - /// Raw data about mastodon app. Save `Data` using `serde` to prevent needing - /// to authenticate on every run. - pub struct Data { - /// Base url of instance eg. `https://mastodon.social`. - pub base: Cow<'static, str>, - /// The client's id given by the instance. - pub client_id: Cow<'static, str>, - /// The client's secret given by the instance. - pub client_secret: Cow<'static, str>, - /// Url to redirect back to your application from the instance signup. - pub redirect: Cow<'static, str>, - /// The client's access token. - pub token: Cow<'static, str>, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Data { - #[inline] - fn clone(&self) -> Data { - match *self { - Data { - base: ref __self_0_0, - client_id: ref __self_0_1, - client_secret: ref __self_0_2, - redirect: ref __self_0_3, - token: ref __self_0_4 } => - Data{base: ::core::clone::Clone::clone(&(*__self_0_0)), - client_id: ::core::clone::Clone::clone(&(*__self_0_1)), - client_secret: - ::core::clone::Clone::clone(&(*__self_0_2)), - redirect: ::core::clone::Clone::clone(&(*__self_0_3)), - token: ::core::clone::Clone::clone(&(*__self_0_4)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Data { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - Data { - base: ref __self_0_0, - client_id: ref __self_0_1, - client_secret: ref __self_0_2, - redirect: ref __self_0_3, - token: ref __self_0_4 } => { - let mut debug_trait_builder = f.debug_struct("Data"); - let _ = - debug_trait_builder.field("base", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("client_id", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("client_secret", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("redirect", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("token", &&(*__self_0_4)); - debug_trait_builder.finish() - } - } - } - } - impl ::core::marker::StructuralPartialEq for Data { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Data { - #[inline] - fn eq(&self, other: &Data) -> bool { - match *other { - Data { - base: ref __self_1_0, - client_id: ref __self_1_1, - client_secret: ref __self_1_2, - redirect: ref __self_1_3, - token: ref __self_1_4 } => - match *self { - Data { - base: ref __self_0_0, - client_id: ref __self_0_1, - client_secret: ref __self_0_2, - redirect: ref __self_0_3, - token: ref __self_0_4 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4), - }, - } - } - #[inline] - fn ne(&self, other: &Data) -> bool { - match *other { - Data { - base: ref __self_1_0, - client_id: ref __self_1_1, - client_secret: ref __self_1_2, - redirect: ref __self_1_3, - token: ref __self_1_4 } => - match *self { - Data { - base: ref __self_0_0, - client_id: ref __self_0_1, - client_secret: ref __self_0_2, - redirect: ref __self_0_3, - token: ref __self_0_4 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Data { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => _serde::export::Ok(__Field::__field0), - 1u64 => _serde::export::Ok(__Field::__field1), - 2u64 => _serde::export::Ok(__Field::__field2), - 3u64 => _serde::export::Ok(__Field::__field3), - 4u64 => _serde::export::Ok(__Field::__field4), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 5")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "base" => - _serde::export::Ok(__Field::__field0), - "client_id" => - _serde::export::Ok(__Field::__field1), - "client_secret" => - _serde::export::Ok(__Field::__field2), - "redirect" => - _serde::export::Ok(__Field::__field3), - "token" => - _serde::export::Ok(__Field::__field4), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"base" => - _serde::export::Ok(__Field::__field0), - b"client_id" => - _serde::export::Ok(__Field::__field1), - b"client_secret" => - _serde::export::Ok(__Field::__field2), - b"redirect" => - _serde::export::Ok(__Field::__field3), - b"token" => - _serde::export::Ok(__Field::__field4), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> { - type Value = Data; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Data") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> _serde::export::Result - where __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Data with 5 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Data with 5 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Data with 5 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Data with 5 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Data with 5 elements")); - } - }; - _serde::export::Ok(Data{base: __field0, - client_id: __field1, - client_secret: __field2, - redirect: __field3, - token: __field4,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> _serde::export::Result - where __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - let mut __field4: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("base")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("client_id")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("client_secret")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("redirect")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("token")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => - { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("base") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("client_id") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("client_secret") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("redirect") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("token") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Data{base: __field0, - client_id: __field1, - client_secret: __field2, - redirect: __field3, - token: __field4,}) - } - } - const FIELDS: &'static [&'static str] = - &["base", "client_id", "client_secret", "redirect", - "token"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Data", FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Data { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false as - usize + - 1 + 1 + - 1 + 1 + - 1) { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "base", - &self.base) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "client_id", - &self.client_id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "client_secret", - &self.client_secret) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "redirect", - &self.redirect) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "token", - &self.token) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; -} -/// Entities returned from the API -pub mod entities { - /// Data structures for ser/de of account-related resources - pub mod account { - //! A module containing everything relating to a account returned from the api. - use chrono::prelude::*; - use serde::de::{self, Deserialize, Deserializer, Unexpected}; - use crate::status_builder; - use std::path::PathBuf; - /// A struct representing an Account. - pub struct Account { - /// Equals `username` for local users, includes `@domain` for remote ones. - pub acct: String, - /// URL to the avatar image - pub avatar: String, - /// URL to the avatar static image (gif) - pub avatar_static: String, - /// The time the account was created. - pub created_at: DateTime, - /// The account's display name. - pub display_name: String, - /// The number of followers for the account. - pub followers_count: u64, - /// The number of accounts the given account is following. - pub following_count: u64, - /// URL to the header image. - pub header: String, - /// URL to the header static image (gif). - pub header_static: String, - /// The ID of the account. - pub id: String, - /// Boolean for when the account cannot be followed without waiting for - /// approval first. - pub locked: bool, - /// Biography of user. - pub note: String, - /// The number of statuses the account has made. - pub statuses_count: u64, - /// URL of the user's profile page (can be remote). - pub url: String, - /// The username of the account. - pub username: String, - /// An extra attribute given from `verify_credentials` giving defaults about - /// a user - pub source: Option, - /// If the owner decided to switch accounts, new account is in - /// this attribute - pub moved: Option>, - /// List of profile metadata fields - pub fields: Option>, - /// Boolean indicating whether this account is a bot or not - pub bot: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Account { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Account { - acct: ref __self_0_0, - avatar: ref __self_0_1, - avatar_static: ref __self_0_2, - created_at: ref __self_0_3, - display_name: ref __self_0_4, - followers_count: ref __self_0_5, - following_count: ref __self_0_6, - header: ref __self_0_7, - header_static: ref __self_0_8, - id: ref __self_0_9, - locked: ref __self_0_10, - note: ref __self_0_11, - statuses_count: ref __self_0_12, - url: ref __self_0_13, - username: ref __self_0_14, - source: ref __self_0_15, - moved: ref __self_0_16, - fields: ref __self_0_17, - bot: ref __self_0_18 } => { - let mut debug_trait_builder = - f.debug_struct("Account"); - let _ = - debug_trait_builder.field("acct", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("avatar", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("avatar_static", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("created_at", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("display_name", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("followers_count", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("following_count", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("header", - &&(*__self_0_7)); - let _ = - debug_trait_builder.field("header_static", - &&(*__self_0_8)); - let _ = - debug_trait_builder.field("id", &&(*__self_0_9)); - let _ = - debug_trait_builder.field("locked", - &&(*__self_0_10)); - let _ = - debug_trait_builder.field("note", - &&(*__self_0_11)); - let _ = - debug_trait_builder.field("statuses_count", - &&(*__self_0_12)); - let _ = - debug_trait_builder.field("url", - &&(*__self_0_13)); - let _ = - debug_trait_builder.field("username", - &&(*__self_0_14)); - let _ = - debug_trait_builder.field("source", - &&(*__self_0_15)); - let _ = - debug_trait_builder.field("moved", - &&(*__self_0_16)); - let _ = - debug_trait_builder.field("fields", - &&(*__self_0_17)); - let _ = - debug_trait_builder.field("bot", - &&(*__self_0_18)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Account { - #[inline] - fn clone(&self) -> Account { - match *self { - Account { - acct: ref __self_0_0, - avatar: ref __self_0_1, - avatar_static: ref __self_0_2, - created_at: ref __self_0_3, - display_name: ref __self_0_4, - followers_count: ref __self_0_5, - following_count: ref __self_0_6, - header: ref __self_0_7, - header_static: ref __self_0_8, - id: ref __self_0_9, - locked: ref __self_0_10, - note: ref __self_0_11, - statuses_count: ref __self_0_12, - url: ref __self_0_13, - username: ref __self_0_14, - source: ref __self_0_15, - moved: ref __self_0_16, - fields: ref __self_0_17, - bot: ref __self_0_18 } => - Account{acct: ::core::clone::Clone::clone(&(*__self_0_0)), - avatar: - ::core::clone::Clone::clone(&(*__self_0_1)), - avatar_static: - ::core::clone::Clone::clone(&(*__self_0_2)), - created_at: - ::core::clone::Clone::clone(&(*__self_0_3)), - display_name: - ::core::clone::Clone::clone(&(*__self_0_4)), - followers_count: - ::core::clone::Clone::clone(&(*__self_0_5)), - following_count: - ::core::clone::Clone::clone(&(*__self_0_6)), - header: - ::core::clone::Clone::clone(&(*__self_0_7)), - header_static: - ::core::clone::Clone::clone(&(*__self_0_8)), - id: ::core::clone::Clone::clone(&(*__self_0_9)), - locked: - ::core::clone::Clone::clone(&(*__self_0_10)), - note: - ::core::clone::Clone::clone(&(*__self_0_11)), - statuses_count: - ::core::clone::Clone::clone(&(*__self_0_12)), - url: ::core::clone::Clone::clone(&(*__self_0_13)), - username: - ::core::clone::Clone::clone(&(*__self_0_14)), - source: - ::core::clone::Clone::clone(&(*__self_0_15)), - moved: - ::core::clone::Clone::clone(&(*__self_0_16)), - fields: - ::core::clone::Clone::clone(&(*__self_0_17)), - bot: - ::core::clone::Clone::clone(&(*__self_0_18)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Account: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Account { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __field6, - __field7, - __field8, - __field9, - __field10, - __field11, - __field12, - __field13, - __field14, - __field15, - __field16, - __field17, - __field18, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - 6u64 => - _serde::export::Ok(__Field::__field6), - 7u64 => - _serde::export::Ok(__Field::__field7), - 8u64 => - _serde::export::Ok(__Field::__field8), - 9u64 => - _serde::export::Ok(__Field::__field9), - 10u64 => - _serde::export::Ok(__Field::__field10), - 11u64 => - _serde::export::Ok(__Field::__field11), - 12u64 => - _serde::export::Ok(__Field::__field12), - 13u64 => - _serde::export::Ok(__Field::__field13), - 14u64 => - _serde::export::Ok(__Field::__field14), - 15u64 => - _serde::export::Ok(__Field::__field15), - 16u64 => - _serde::export::Ok(__Field::__field16), - 17u64 => - _serde::export::Ok(__Field::__field17), - 18u64 => - _serde::export::Ok(__Field::__field18), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 19")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "acct" => - _serde::export::Ok(__Field::__field0), - "avatar" => - _serde::export::Ok(__Field::__field1), - "avatar_static" => - _serde::export::Ok(__Field::__field2), - "created_at" => - _serde::export::Ok(__Field::__field3), - "display_name" => - _serde::export::Ok(__Field::__field4), - "followers_count" => - _serde::export::Ok(__Field::__field5), - "following_count" => - _serde::export::Ok(__Field::__field6), - "header" => - _serde::export::Ok(__Field::__field7), - "header_static" => - _serde::export::Ok(__Field::__field8), - "id" => - _serde::export::Ok(__Field::__field9), - "locked" => - _serde::export::Ok(__Field::__field10), - "note" => - _serde::export::Ok(__Field::__field11), - "statuses_count" => - _serde::export::Ok(__Field::__field12), - "url" => - _serde::export::Ok(__Field::__field13), - "username" => - _serde::export::Ok(__Field::__field14), - "source" => - _serde::export::Ok(__Field::__field15), - "moved" => - _serde::export::Ok(__Field::__field16), - "fields" => - _serde::export::Ok(__Field::__field17), - "bot" => - _serde::export::Ok(__Field::__field18), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"acct" => - _serde::export::Ok(__Field::__field0), - b"avatar" => - _serde::export::Ok(__Field::__field1), - b"avatar_static" => - _serde::export::Ok(__Field::__field2), - b"created_at" => - _serde::export::Ok(__Field::__field3), - b"display_name" => - _serde::export::Ok(__Field::__field4), - b"followers_count" => - _serde::export::Ok(__Field::__field5), - b"following_count" => - _serde::export::Ok(__Field::__field6), - b"header" => - _serde::export::Ok(__Field::__field7), - b"header_static" => - _serde::export::Ok(__Field::__field8), - b"id" => - _serde::export::Ok(__Field::__field9), - b"locked" => - _serde::export::Ok(__Field::__field10), - b"note" => - _serde::export::Ok(__Field::__field11), - b"statuses_count" => - _serde::export::Ok(__Field::__field12), - b"url" => - _serde::export::Ok(__Field::__field13), - b"username" => - _serde::export::Ok(__Field::__field14), - b"source" => - _serde::export::Ok(__Field::__field15), - b"moved" => - _serde::export::Ok(__Field::__field16), - b"fields" => - _serde::export::Ok(__Field::__field17), - b"bot" => - _serde::export::Ok(__Field::__field18), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Account; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Account") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Account with 19 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Account with 19 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Account with 19 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Account with 19 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Account with 19 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Account with 19 elements")); - } - }; - let __field6 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(6usize, - &"struct Account with 19 elements")); - } - }; - let __field7 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(7usize, - &"struct Account with 19 elements")); - } - }; - let __field8 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(8usize, - &"struct Account with 19 elements")); - } - }; - let __field9 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(9usize, - &"struct Account with 19 elements")); - } - }; - let __field10 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(10usize, - &"struct Account with 19 elements")); - } - }; - let __field11 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(11usize, - &"struct Account with 19 elements")); - } - }; - let __field12 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(12usize, - &"struct Account with 19 elements")); - } - }; - let __field13 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(13usize, - &"struct Account with 19 elements")); - } - }; - let __field14 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(14usize, - &"struct Account with 19 elements")); - } - }; - let __field15 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(15usize, - &"struct Account with 19 elements")); - } - }; - let __field16 = - match match _serde::de::SeqAccess::next_element::>>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(16usize, - &"struct Account with 19 elements")); - } - }; - let __field17 = - match match _serde::de::SeqAccess::next_element::>>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(17usize, - &"struct Account with 19 elements")); - } - }; - let __field18 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(18usize, - &"struct Account with 19 elements")); - } - }; - _serde::export::Ok(Account{acct: __field0, - avatar: __field1, - avatar_static: - __field2, - created_at: - __field3, - display_name: - __field4, - followers_count: - __field5, - following_count: - __field6, - header: __field7, - header_static: - __field8, - id: __field9, - locked: __field10, - note: __field11, - statuses_count: - __field12, - url: __field13, - username: - __field14, - source: __field15, - moved: __field16, - fields: __field17, - bot: __field18,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - let mut __field4: - _serde::export::Option = - _serde::export::None; - let mut __field5: - _serde::export::Option = - _serde::export::None; - let mut __field6: - _serde::export::Option = - _serde::export::None; - let mut __field7: - _serde::export::Option = - _serde::export::None; - let mut __field8: - _serde::export::Option = - _serde::export::None; - let mut __field9: - _serde::export::Option = - _serde::export::None; - let mut __field10: - _serde::export::Option = - _serde::export::None; - let mut __field11: - _serde::export::Option = - _serde::export::None; - let mut __field12: - _serde::export::Option = - _serde::export::None; - let mut __field13: - _serde::export::Option = - _serde::export::None; - let mut __field14: - _serde::export::Option = - _serde::export::None; - let mut __field15: - _serde::export::Option> = - _serde::export::None; - let mut __field16: - _serde::export::Option>> = - _serde::export::None; - let mut __field17: - _serde::export::Option>> = - _serde::export::None; - let mut __field18: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("acct")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("avatar")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("avatar_static")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("created_at")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("display_name")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("followers_count")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field6 => { - if _serde::export::Option::is_some(&__field6) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("following_count")); - } - __field6 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field7 => { - if _serde::export::Option::is_some(&__field7) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("header")); - } - __field7 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field8 => { - if _serde::export::Option::is_some(&__field8) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("header_static")); - } - __field8 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field9 => { - if _serde::export::Option::is_some(&__field9) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field9 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field10 => { - if _serde::export::Option::is_some(&__field10) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("locked")); - } - __field10 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field11 => { - if _serde::export::Option::is_some(&__field11) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("note")); - } - __field11 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field12 => { - if _serde::export::Option::is_some(&__field12) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("statuses_count")); - } - __field12 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field13 => { - if _serde::export::Option::is_some(&__field13) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field13 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field14 => { - if _serde::export::Option::is_some(&__field14) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("username")); - } - __field14 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field15 => { - if _serde::export::Option::is_some(&__field15) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("source")); - } - __field15 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field16 => { - if _serde::export::Option::is_some(&__field16) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("moved")); - } - __field16 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field17 => { - if _serde::export::Option::is_some(&__field17) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("fields")); - } - __field17 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field18 => { - if _serde::export::Option::is_some(&__field18) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("bot")); - } - __field18 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("acct") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("avatar") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("avatar_static") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("created_at") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("display_name") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("followers_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field6 = - match __field6 { - _serde::export::Some(__field6) => - __field6, - _serde::export::None => - match _serde::private::de::missing_field("following_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field7 = - match __field7 { - _serde::export::Some(__field7) => - __field7, - _serde::export::None => - match _serde::private::de::missing_field("header") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field8 = - match __field8 { - _serde::export::Some(__field8) => - __field8, - _serde::export::None => - match _serde::private::de::missing_field("header_static") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field9 = - match __field9 { - _serde::export::Some(__field9) => - __field9, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field10 = - match __field10 { - _serde::export::Some(__field10) => - __field10, - _serde::export::None => - match _serde::private::de::missing_field("locked") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field11 = - match __field11 { - _serde::export::Some(__field11) => - __field11, - _serde::export::None => - match _serde::private::de::missing_field("note") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field12 = - match __field12 { - _serde::export::Some(__field12) => - __field12, - _serde::export::None => - match _serde::private::de::missing_field("statuses_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field13 = - match __field13 { - _serde::export::Some(__field13) => - __field13, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field14 = - match __field14 { - _serde::export::Some(__field14) => - __field14, - _serde::export::None => - match _serde::private::de::missing_field("username") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field15 = - match __field15 { - _serde::export::Some(__field15) => - __field15, - _serde::export::None => - match _serde::private::de::missing_field("source") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field16 = - match __field16 { - _serde::export::Some(__field16) => - __field16, - _serde::export::None => - match _serde::private::de::missing_field("moved") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field17 = - match __field17 { - _serde::export::Some(__field17) => - __field17, - _serde::export::None => - match _serde::private::de::missing_field("fields") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field18 = - match __field18 { - _serde::export::Some(__field18) => - __field18, - _serde::export::None => - match _serde::private::de::missing_field("bot") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Account{acct: __field0, - avatar: __field1, - avatar_static: - __field2, - created_at: - __field3, - display_name: - __field4, - followers_count: - __field5, - following_count: - __field6, - header: __field7, - header_static: - __field8, - id: __field9, - locked: __field10, - note: __field11, - statuses_count: - __field12, - url: __field13, - username: - __field14, - source: __field15, - moved: __field16, - fields: __field17, - bot: __field18,}) - } - } - const FIELDS: &'static [&'static str] = - &["acct", "avatar", "avatar_static", "created_at", - "display_name", "followers_count", - "following_count", "header", "header_static", - "id", "locked", "note", "statuses_count", "url", - "username", "source", "moved", "fields", "bot"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Account", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Account { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Account { - #[inline] - fn eq(&self, other: &Account) -> bool { - match *other { - Account { - acct: ref __self_1_0, - avatar: ref __self_1_1, - avatar_static: ref __self_1_2, - created_at: ref __self_1_3, - display_name: ref __self_1_4, - followers_count: ref __self_1_5, - following_count: ref __self_1_6, - header: ref __self_1_7, - header_static: ref __self_1_8, - id: ref __self_1_9, - locked: ref __self_1_10, - note: ref __self_1_11, - statuses_count: ref __self_1_12, - url: ref __self_1_13, - username: ref __self_1_14, - source: ref __self_1_15, - moved: ref __self_1_16, - fields: ref __self_1_17, - bot: ref __self_1_18 } => - match *self { - Account { - acct: ref __self_0_0, - avatar: ref __self_0_1, - avatar_static: ref __self_0_2, - created_at: ref __self_0_3, - display_name: ref __self_0_4, - followers_count: ref __self_0_5, - following_count: ref __self_0_6, - header: ref __self_0_7, - header_static: ref __self_0_8, - id: ref __self_0_9, - locked: ref __self_0_10, - note: ref __self_0_11, - statuses_count: ref __self_0_12, - url: ref __self_0_13, - username: ref __self_0_14, - source: ref __self_0_15, - moved: ref __self_0_16, - fields: ref __self_0_17, - bot: ref __self_0_18 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7) && - (*__self_0_8) == (*__self_1_8) && - (*__self_0_9) == (*__self_1_9) && - (*__self_0_10) == (*__self_1_10) && - (*__self_0_11) == (*__self_1_11) && - (*__self_0_12) == (*__self_1_12) && - (*__self_0_13) == (*__self_1_13) && - (*__self_0_14) == (*__self_1_14) && - (*__self_0_15) == (*__self_1_15) && - (*__self_0_16) == (*__self_1_16) && - (*__self_0_17) == (*__self_1_17) && - (*__self_0_18) == (*__self_1_18), - }, - } - } - #[inline] - fn ne(&self, other: &Account) -> bool { - match *other { - Account { - acct: ref __self_1_0, - avatar: ref __self_1_1, - avatar_static: ref __self_1_2, - created_at: ref __self_1_3, - display_name: ref __self_1_4, - followers_count: ref __self_1_5, - following_count: ref __self_1_6, - header: ref __self_1_7, - header_static: ref __self_1_8, - id: ref __self_1_9, - locked: ref __self_1_10, - note: ref __self_1_11, - statuses_count: ref __self_1_12, - url: ref __self_1_13, - username: ref __self_1_14, - source: ref __self_1_15, - moved: ref __self_1_16, - fields: ref __self_1_17, - bot: ref __self_1_18 } => - match *self { - Account { - acct: ref __self_0_0, - avatar: ref __self_0_1, - avatar_static: ref __self_0_2, - created_at: ref __self_0_3, - display_name: ref __self_0_4, - followers_count: ref __self_0_5, - following_count: ref __self_0_6, - header: ref __self_0_7, - header_static: ref __self_0_8, - id: ref __self_0_9, - locked: ref __self_0_10, - note: ref __self_0_11, - statuses_count: ref __self_0_12, - url: ref __self_0_13, - username: ref __self_0_14, - source: ref __self_0_15, - moved: ref __self_0_16, - fields: ref __self_0_17, - bot: ref __self_0_18 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7) || - (*__self_0_8) != (*__self_1_8) || - (*__self_0_9) != (*__self_1_9) || - (*__self_0_10) != (*__self_1_10) || - (*__self_0_11) != (*__self_1_11) || - (*__self_0_12) != (*__self_1_12) || - (*__self_0_13) != (*__self_1_13) || - (*__self_0_14) != (*__self_1_14) || - (*__self_0_15) != (*__self_1_15) || - (*__self_0_16) != (*__self_1_16) || - (*__self_0_17) != (*__self_1_17) || - (*__self_0_18) != (*__self_1_18), - }, - } - } - } - /// A single name: value pair from a user's profile - pub struct MetadataField { - /// name part of metadata - pub name: String, - /// value part of metadata - pub value: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for MetadataField { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - MetadataField { - name: ref __self_0_0, value: ref __self_0_1 } => { - let mut debug_trait_builder = - f.debug_struct("MetadataField"); - let _ = - debug_trait_builder.field("name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("value", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for MetadataField { - #[inline] - fn clone(&self) -> MetadataField { - match *self { - MetadataField { - name: ref __self_0_0, value: ref __self_0_1 } => - MetadataField{name: - ::core::clone::Clone::clone(&(*__self_0_0)), - value: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_MetadataField: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for MetadataField { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "MetadataField", - false - as - usize - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "name", - &self.name) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "value", - &self.value) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_MetadataField: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for MetadataField { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "name" => - _serde::export::Ok(__Field::__field0), - "value" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"name" => - _serde::export::Ok(__Field::__field0), - b"value" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = MetadataField; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct MetadataField") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct MetadataField with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct MetadataField with 2 elements")); - } - }; - _serde::export::Ok(MetadataField{name: - __field0, - value: - __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("name")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("value")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("name") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("value") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(MetadataField{name: - __field0, - value: - __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["name", "value"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "MetadataField", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for MetadataField { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for MetadataField { - #[inline] - fn eq(&self, other: &MetadataField) -> bool { - match *other { - MetadataField { - name: ref __self_1_0, value: ref __self_1_1 } => - match *self { - MetadataField { - name: ref __self_0_0, value: ref __self_0_1 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &MetadataField) -> bool { - match *other { - MetadataField { - name: ref __self_1_0, value: ref __self_1_1 } => - match *self { - MetadataField { - name: ref __self_0_0, value: ref __self_0_1 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for MetadataField { - #[inline] - fn default() -> MetadataField { - MetadataField{name: ::core::default::Default::default(), - value: ::core::default::Default::default(),} - } - } - impl MetadataField { - pub(crate) fn new(name: &str, value: &str) -> MetadataField { - MetadataField{name: name.into(), value: value.into(),} - } - } - /// An extra object given from `verify_credentials` giving defaults about a user - pub struct Source { - privacy: Option, - #[serde(deserialize_with = "string_or_bool")] - sensitive: bool, - note: Option, - fields: Option>, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Source { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Source { - privacy: ref __self_0_0, - sensitive: ref __self_0_1, - note: ref __self_0_2, - fields: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("Source"); - let _ = - debug_trait_builder.field("privacy", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("sensitive", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("note", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("fields", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Source { - #[inline] - fn clone(&self) -> Source { - match *self { - Source { - privacy: ref __self_0_0, - sensitive: ref __self_0_1, - note: ref __self_0_2, - fields: ref __self_0_3 } => - Source{privacy: - ::core::clone::Clone::clone(&(*__self_0_0)), - sensitive: - ::core::clone::Clone::clone(&(*__self_0_1)), - note: ::core::clone::Clone::clone(&(*__self_0_2)), - fields: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Source: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Source { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "privacy" => - _serde::export::Ok(__Field::__field0), - "sensitive" => - _serde::export::Ok(__Field::__field1), - "note" => - _serde::export::Ok(__Field::__field2), - "fields" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"privacy" => - _serde::export::Ok(__Field::__field0), - b"sensitive" => - _serde::export::Ok(__Field::__field1), - b"note" => - _serde::export::Ok(__Field::__field2), - b"fields" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Source; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Source") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Source with 4 elements")); - } - }; - let __field1 = - match { - struct __DeserializeWith<'de> { - value: bool, - phantom: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> - _serde::Deserialize<'de> for - __DeserializeWith<'de> { - fn deserialize<__D>(__deserializer: - __D) - -> - _serde::export::Result - where - __D: _serde::Deserializer<'de> { - _serde::export::Ok(__DeserializeWith{value: - match string_or_bool(__deserializer) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => - { - return _serde::export::Err(__err); - } - }, - phantom: - _serde::export::PhantomData, - lifetime: - _serde::export::PhantomData,}) - } - } - _serde::export::Option::map(match _serde::de::SeqAccess::next_element::<__DeserializeWith<'de>>(&mut __seq) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => - { - return _serde::export::Err(__err); - } - }, - |__wrap| - __wrap.value) - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Source with 4 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Source with 4 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Source with 4 elements")); - } - }; - _serde::export::Ok(Source{privacy: __field0, - sensitive: __field1, - note: __field2, - fields: __field3,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option>> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("privacy")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("sensitive")); - } - __field1 = - _serde::export::Some({ - struct __DeserializeWith<'de> { - value: bool, - phantom: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> - _serde::Deserialize<'de> - for - __DeserializeWith<'de> - { - fn deserialize<__D>(__deserializer: - __D) - -> - _serde::export::Result - where - __D: _serde::Deserializer<'de> { - _serde::export::Ok(__DeserializeWith{value: - match string_or_bool(__deserializer) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => - { - return _serde::export::Err(__err); - } - }, - phantom: - _serde::export::PhantomData, - lifetime: - _serde::export::PhantomData,}) - } - } - match _serde::de::MapAccess::next_value::<__DeserializeWith<'de>>(&mut __map) - { - _serde::export::Ok(__wrapper) - => - __wrapper.value, - _serde::export::Err(__err) - => - { - return _serde::export::Err(__err); - } - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("note")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("fields")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("privacy") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::missing_field("sensitive")), - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("note") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("fields") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Source{privacy: __field0, - sensitive: __field1, - note: __field2, - fields: __field3,}) - } - } - const FIELDS: &'static [&'static str] = - &["privacy", "sensitive", "note", "fields"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Source", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Source { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Source { - #[inline] - fn eq(&self, other: &Source) -> bool { - match *other { - Source { - privacy: ref __self_1_0, - sensitive: ref __self_1_1, - note: ref __self_1_2, - fields: ref __self_1_3 } => - match *self { - Source { - privacy: ref __self_0_0, - sensitive: ref __self_0_1, - note: ref __self_0_2, - fields: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &Source) -> bool { - match *other { - Source { - privacy: ref __self_1_0, - sensitive: ref __self_1_1, - note: ref __self_1_2, - fields: ref __self_1_3 } => - match *self { - Source { - privacy: ref __self_0_0, - sensitive: ref __self_0_1, - note: ref __self_0_2, - fields: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - fn string_or_bool<'de, D: Deserializer<'de>>(val: D) - -> ::std::result::Result { - #[serde(untagged)] - pub enum BoolOrString { Bool(bool), Str(String), } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for BoolOrString { - #[inline] - fn clone(&self) -> BoolOrString { - match (&*self,) { - (&BoolOrString::Bool(ref __self_0),) => - BoolOrString::Bool(::core::clone::Clone::clone(&(*__self_0))), - (&BoolOrString::Str(ref __self_0),) => - BoolOrString::Str(::core::clone::Clone::clone(&(*__self_0))), - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for BoolOrString { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match (&*self,) { - (&BoolOrString::Bool(ref __self_0),) => { - let mut debug_trait_builder = - f.debug_tuple("Bool"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&BoolOrString::Str(ref __self_0),) => { - let mut debug_trait_builder = - f.debug_tuple("Str"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_BoolOrString: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for BoolOrString { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - let __content = - match <_serde::private::de::Content as - _serde::Deserialize>::deserialize(__deserializer) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if let _serde::export::Ok(__ok) = - _serde::export::Result::map(::deserialize(_serde::private::de::ContentRefDeserializer::<__D::Error>::new(&__content)), - BoolOrString::Bool) - { - return _serde::export::Ok(__ok); - } - if let _serde::export::Ok(__ok) = - _serde::export::Result::map(::deserialize(_serde::private::de::ContentRefDeserializer::<__D::Error>::new(&__content)), - BoolOrString::Str) - { - return _serde::export::Ok(__ok); - } - _serde::export::Err(_serde::de::Error::custom("data did not match any variant of untagged enum BoolOrString")) - } - } - }; - impl ::core::marker::StructuralPartialEq for BoolOrString { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for BoolOrString { - #[inline] - fn eq(&self, other: &BoolOrString) -> bool { - { - let __self_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*self) - }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&BoolOrString::Bool(ref __self_0), - &BoolOrString::Bool(ref __arg_1_0)) => - (*__self_0) == (*__arg_1_0), - (&BoolOrString::Str(ref __self_0), - &BoolOrString::Str(ref __arg_1_0)) => - (*__self_0) == (*__arg_1_0), - _ => unsafe { - ::core::intrinsics::unreachable() - } - } - } else { false } - } - } - #[inline] - fn ne(&self, other: &BoolOrString) -> bool { - { - let __self_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*self) - }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&BoolOrString::Bool(ref __self_0), - &BoolOrString::Bool(ref __arg_1_0)) => - (*__self_0) != (*__arg_1_0), - (&BoolOrString::Str(ref __self_0), - &BoolOrString::Str(ref __arg_1_0)) => - (*__self_0) != (*__arg_1_0), - _ => unsafe { - ::core::intrinsics::unreachable() - } - } - } else { true } - } - } - } - Ok(match BoolOrString::deserialize(val)? { - BoolOrString::Bool(b) => b, - BoolOrString::Str(ref s) => { - if s == "true" { - true - } else if s == "false" { - false - } else { - return Err(de::Error::invalid_value(Unexpected::Str(s), - &"true or false")); - } - } - }) - } - pub(crate) struct UpdateSource { - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) privacy: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) sensitive: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for UpdateSource { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - UpdateSource { - privacy: ref __self_0_0, sensitive: ref __self_0_1 } => { - let mut debug_trait_builder = - f.debug_struct("UpdateSource"); - let _ = - debug_trait_builder.field("privacy", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("sensitive", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for UpdateSource { - #[inline] - fn default() -> UpdateSource { - UpdateSource{privacy: ::core::default::Default::default(), - sensitive: ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for UpdateSource { - #[inline] - fn clone(&self) -> UpdateSource { - match *self { - UpdateSource { - privacy: ref __self_0_0, sensitive: ref __self_0_1 } => - UpdateSource{privacy: - ::core::clone::Clone::clone(&(*__self_0_0)), - sensitive: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_UpdateSource: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for UpdateSource { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "UpdateSource", - false - as - usize - + - if Option::is_none(&self.privacy) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.sensitive) - { - 0 - } else { - 1 - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if !Option::is_none(&self.privacy) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "privacy", - &self.privacy) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "privacy") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.sensitive) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "sensitive", - &self.sensitive) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "sensitive") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl ::core::marker::StructuralPartialEq for UpdateSource { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for UpdateSource { - #[inline] - fn eq(&self, other: &UpdateSource) -> bool { - match *other { - UpdateSource { - privacy: ref __self_1_0, sensitive: ref __self_1_1 } => - match *self { - UpdateSource { - privacy: ref __self_0_0, sensitive: ref __self_0_1 } - => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &UpdateSource) -> bool { - match *other { - UpdateSource { - privacy: ref __self_1_0, sensitive: ref __self_1_1 } => - match *self { - UpdateSource { - privacy: ref __self_0_0, sensitive: ref __self_0_1 } - => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - pub(crate) struct Credentials { - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) display_name: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) note: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) avatar: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) header: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub(crate) source: Option, - #[serde(serialize_with = "fields_attributes_ser::ser")] - pub(crate) fields_attributes: Vec, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Credentials { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Credentials { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - source: ref __self_0_4, - fields_attributes: ref __self_0_5 } => { - let mut debug_trait_builder = - f.debug_struct("Credentials"); - let _ = - debug_trait_builder.field("display_name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("note", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("avatar", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("header", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("source", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("fields_attributes", - &&(*__self_0_5)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Credentials { - #[inline] - fn default() -> Credentials { - Credentials{display_name: ::core::default::Default::default(), - note: ::core::default::Default::default(), - avatar: ::core::default::Default::default(), - header: ::core::default::Default::default(), - source: ::core::default::Default::default(), - fields_attributes: - ::core::default::Default::default(),} - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Credentials: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Credentials { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Credentials", - false - as - usize - + - if Option::is_none(&self.display_name) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.note) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.avatar) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.header) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.source) - { - 0 - } else { - 1 - } + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if !Option::is_none(&self.display_name) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "display_name", - &self.display_name) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "display_name") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.note) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "note", - &self.note) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "note") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.avatar) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "avatar", - &self.avatar) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "avatar") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.header) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "header", - &self.header) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "header") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.source) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "source", - &self.source) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "source") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "fields_attributes", - { - struct __SerializeWith<'__a> { - values: (&'__a Vec,), - phantom: _serde::export::PhantomData, - } - impl <'__a> - _serde::Serialize - for - __SerializeWith<'__a> - { - fn serialize<__S>(&self, - __s: - __S) - -> - _serde::export::Result<__S::Ok, - __S::Error> - where - __S: _serde::Serializer { - fields_attributes_ser::ser(self.values.0, - __s) - } - } - &__SerializeWith{values: - (&self.fields_attributes,), - phantom: - _serde::export::PhantomData::,} - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl ::core::marker::StructuralPartialEq for Credentials { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Credentials { - #[inline] - fn eq(&self, other: &Credentials) -> bool { - match *other { - Credentials { - display_name: ref __self_1_0, - note: ref __self_1_1, - avatar: ref __self_1_2, - header: ref __self_1_3, - source: ref __self_1_4, - fields_attributes: ref __self_1_5 } => - match *self { - Credentials { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - source: ref __self_0_4, - fields_attributes: ref __self_0_5 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5), - }, - } - } - #[inline] - fn ne(&self, other: &Credentials) -> bool { - match *other { - Credentials { - display_name: ref __self_1_0, - note: ref __self_1_1, - avatar: ref __self_1_2, - header: ref __self_1_3, - source: ref __self_1_4, - fields_attributes: ref __self_1_5 } => - match *self { - Credentials { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - source: ref __self_0_4, - fields_attributes: ref __self_0_5 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5), - }, - } - } - } - mod fields_attributes_ser { - use super::*; - use serde::ser::{SerializeMap, Serializer}; - pub(crate) fn ser(attrs: &Vec, serializer: S) - -> Result where S: Serializer { - let mut map = serializer.serialize_map(Some(attrs.len()))?; - for (i, field) in attrs.iter().enumerate() { - map.serialize_entry(&i, &field)?; - } - map.end() - } - } - } - /// Data structures for ser/de of attachment-related resources - pub mod attachment { - //! Module containing everything related to media attachements. - /// A struct representing a media attachment. - pub struct Attachment { - /// ID of the attachment. - pub id: String, - /// The media type of an attachment. - #[serde(rename = "type")] - pub media_type: MediaType, - /// URL of the locally hosted version of the image. - pub url: String, - /// For remote images, the remote URL of the original image. - pub remote_url: Option, - /// URL of the preview image. - pub preview_url: String, - /// Shorter URL for the image, for insertion into text - /// (only present on local images) - pub text_url: Option, - /// Meta information about the attachment. - pub meta: Option, - /// Noop will be removed. - pub description: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Attachment { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Attachment { - id: ref __self_0_0, - media_type: ref __self_0_1, - url: ref __self_0_2, - remote_url: ref __self_0_3, - preview_url: ref __self_0_4, - text_url: ref __self_0_5, - meta: ref __self_0_6, - description: ref __self_0_7 } => { - let mut debug_trait_builder = - f.debug_struct("Attachment"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("media_type", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("url", &&(*__self_0_2)); - let _ = - debug_trait_builder.field("remote_url", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("preview_url", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("text_url", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("meta", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("description", - &&(*__self_0_7)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Attachment { - #[inline] - fn clone(&self) -> Attachment { - match *self { - Attachment { - id: ref __self_0_0, - media_type: ref __self_0_1, - url: ref __self_0_2, - remote_url: ref __self_0_3, - preview_url: ref __self_0_4, - text_url: ref __self_0_5, - meta: ref __self_0_6, - description: ref __self_0_7 } => - Attachment{id: - ::core::clone::Clone::clone(&(*__self_0_0)), - media_type: - ::core::clone::Clone::clone(&(*__self_0_1)), - url: - ::core::clone::Clone::clone(&(*__self_0_2)), - remote_url: - ::core::clone::Clone::clone(&(*__self_0_3)), - preview_url: - ::core::clone::Clone::clone(&(*__self_0_4)), - text_url: - ::core::clone::Clone::clone(&(*__self_0_5)), - meta: - ::core::clone::Clone::clone(&(*__self_0_6)), - description: - ::core::clone::Clone::clone(&(*__self_0_7)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Attachment: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Attachment { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __field6, - __field7, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - 6u64 => - _serde::export::Ok(__Field::__field6), - 7u64 => - _serde::export::Ok(__Field::__field7), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 8")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "type" => - _serde::export::Ok(__Field::__field1), - "url" => - _serde::export::Ok(__Field::__field2), - "remote_url" => - _serde::export::Ok(__Field::__field3), - "preview_url" => - _serde::export::Ok(__Field::__field4), - "text_url" => - _serde::export::Ok(__Field::__field5), - "meta" => - _serde::export::Ok(__Field::__field6), - "description" => - _serde::export::Ok(__Field::__field7), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"type" => - _serde::export::Ok(__Field::__field1), - b"url" => - _serde::export::Ok(__Field::__field2), - b"remote_url" => - _serde::export::Ok(__Field::__field3), - b"preview_url" => - _serde::export::Ok(__Field::__field4), - b"text_url" => - _serde::export::Ok(__Field::__field5), - b"meta" => - _serde::export::Ok(__Field::__field6), - b"description" => - _serde::export::Ok(__Field::__field7), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Attachment; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Attachment") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Attachment with 8 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Attachment with 8 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Attachment with 8 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Attachment with 8 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Attachment with 8 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Attachment with 8 elements")); - } - }; - let __field6 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(6usize, - &"struct Attachment with 8 elements")); - } - }; - let __field7 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(7usize, - &"struct Attachment with 8 elements")); - } - }; - _serde::export::Ok(Attachment{id: __field0, - media_type: - __field1, - url: __field2, - remote_url: - __field3, - preview_url: - __field4, - text_url: - __field5, - meta: __field6, - description: - __field7,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - let mut __field4: - _serde::export::Option = - _serde::export::None; - let mut __field5: - _serde::export::Option> = - _serde::export::None; - let mut __field6: - _serde::export::Option> = - _serde::export::None; - let mut __field7: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("type")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("remote_url")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("preview_url")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("text_url")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field6 => { - if _serde::export::Option::is_some(&__field6) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("meta")); - } - __field6 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field7 => { - if _serde::export::Option::is_some(&__field7) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("description")); - } - __field7 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("type") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("remote_url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("preview_url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("text_url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field6 = - match __field6 { - _serde::export::Some(__field6) => - __field6, - _serde::export::None => - match _serde::private::de::missing_field("meta") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field7 = - match __field7 { - _serde::export::Some(__field7) => - __field7, - _serde::export::None => - match _serde::private::de::missing_field("description") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Attachment{id: __field0, - media_type: - __field1, - url: __field2, - remote_url: - __field3, - preview_url: - __field4, - text_url: - __field5, - meta: __field6, - description: - __field7,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "type", "url", "remote_url", - "preview_url", "text_url", "meta", - "description"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Attachment", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Attachment { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Attachment { - #[inline] - fn eq(&self, other: &Attachment) -> bool { - match *other { - Attachment { - id: ref __self_1_0, - media_type: ref __self_1_1, - url: ref __self_1_2, - remote_url: ref __self_1_3, - preview_url: ref __self_1_4, - text_url: ref __self_1_5, - meta: ref __self_1_6, - description: ref __self_1_7 } => - match *self { - Attachment { - id: ref __self_0_0, - media_type: ref __self_0_1, - url: ref __self_0_2, - remote_url: ref __self_0_3, - preview_url: ref __self_0_4, - text_url: ref __self_0_5, - meta: ref __self_0_6, - description: ref __self_0_7 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7), - }, - } - } - #[inline] - fn ne(&self, other: &Attachment) -> bool { - match *other { - Attachment { - id: ref __self_1_0, - media_type: ref __self_1_1, - url: ref __self_1_2, - remote_url: ref __self_1_3, - preview_url: ref __self_1_4, - text_url: ref __self_1_5, - meta: ref __self_1_6, - description: ref __self_1_7 } => - match *self { - Attachment { - id: ref __self_0_0, - media_type: ref __self_0_1, - url: ref __self_0_2, - remote_url: ref __self_0_3, - preview_url: ref __self_0_4, - text_url: ref __self_0_5, - meta: ref __self_0_6, - description: ref __self_0_7 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7), - }, - } - } - } - /// Information about the attachment itself. - pub struct Meta { - /// Original version. - pub original: Option, - /// Smaller version. - pub small: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Meta { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Meta { original: ref __self_0_0, small: ref __self_0_1 } - => { - let mut debug_trait_builder = f.debug_struct("Meta"); - let _ = - debug_trait_builder.field("original", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("small", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Meta: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Meta { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "original" => - _serde::export::Ok(__Field::__field0), - "small" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"original" => - _serde::export::Ok(__Field::__field0), - b"small" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Meta; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Meta") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Meta with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Meta with 2 elements")); - } - }; - _serde::export::Ok(Meta{original: __field0, - small: __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("original")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("small")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("original") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("small") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Meta{original: __field0, - small: __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["original", "small"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Meta", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Meta { - #[inline] - fn clone(&self) -> Meta { - match *self { - Meta { original: ref __self_0_0, small: ref __self_0_1 } - => - Meta{original: - ::core::clone::Clone::clone(&(*__self_0_0)), - small: ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Meta { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Meta { - #[inline] - fn eq(&self, other: &Meta) -> bool { - match *other { - Meta { original: ref __self_1_0, small: ref __self_1_1 } - => - match *self { - Meta { original: ref __self_0_0, small: ref __self_0_1 - } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Meta) -> bool { - match *other { - Meta { original: ref __self_1_0, small: ref __self_1_1 } - => - match *self { - Meta { original: ref __self_0_0, small: ref __self_0_1 - } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - /// Dimensions of an attachement. - pub struct ImageDetails { - /// width of attachment. - width: u64, - /// height of attachment. - height: u64, - /// A string of `widthxheight`. - size: Option, - /// The aspect ratio of the attachment. - aspect: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for ImageDetails { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - ImageDetails { - width: ref __self_0_0, - height: ref __self_0_1, - size: ref __self_0_2, - aspect: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("ImageDetails"); - let _ = - debug_trait_builder.field("width", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("height", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("size", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("aspect", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_ImageDetails: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for ImageDetails { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "width" => - _serde::export::Ok(__Field::__field0), - "height" => - _serde::export::Ok(__Field::__field1), - "size" => - _serde::export::Ok(__Field::__field2), - "aspect" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"width" => - _serde::export::Ok(__Field::__field0), - b"height" => - _serde::export::Ok(__Field::__field1), - b"size" => - _serde::export::Ok(__Field::__field2), - b"aspect" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = ImageDetails; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct ImageDetails") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct ImageDetails with 4 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct ImageDetails with 4 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct ImageDetails with 4 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct ImageDetails with 4 elements")); - } - }; - _serde::export::Ok(ImageDetails{width: - __field0, - height: - __field1, - size: - __field2, - aspect: - __field3,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("width")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("height")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("size")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("aspect")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("width") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("height") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("size") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("aspect") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(ImageDetails{width: - __field0, - height: - __field1, - size: - __field2, - aspect: - __field3,}) - } - } - const FIELDS: &'static [&'static str] = - &["width", "height", "size", "aspect"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "ImageDetails", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for ImageDetails { - #[inline] - fn clone(&self) -> ImageDetails { - match *self { - ImageDetails { - width: ref __self_0_0, - height: ref __self_0_1, - size: ref __self_0_2, - aspect: ref __self_0_3 } => - ImageDetails{width: - ::core::clone::Clone::clone(&(*__self_0_0)), - height: - ::core::clone::Clone::clone(&(*__self_0_1)), - size: - ::core::clone::Clone::clone(&(*__self_0_2)), - aspect: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for ImageDetails { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for ImageDetails { - #[inline] - fn eq(&self, other: &ImageDetails) -> bool { - match *other { - ImageDetails { - width: ref __self_1_0, - height: ref __self_1_1, - size: ref __self_1_2, - aspect: ref __self_1_3 } => - match *self { - ImageDetails { - width: ref __self_0_0, - height: ref __self_0_1, - size: ref __self_0_2, - aspect: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &ImageDetails) -> bool { - match *other { - ImageDetails { - width: ref __self_1_0, - height: ref __self_1_1, - size: ref __self_1_2, - aspect: ref __self_1_3 } => - match *self { - ImageDetails { - width: ref __self_0_0, - height: ref __self_0_1, - size: ref __self_0_2, - aspect: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - /// The type of media attachment. - pub enum MediaType { - - /// An image. - #[serde(rename = "image")] - Image, - - /// A video file. - #[serde(rename = "video")] - Video, - - /// A gifv format file. - #[serde(rename = "gifv")] - Gifv, - - /// Unknown format. - #[serde(rename = "unknown")] - Unknown, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for MediaType { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match (&*self,) { - (&MediaType::Image,) => { - let mut debug_trait_builder = f.debug_tuple("Image"); - debug_trait_builder.finish() - } - (&MediaType::Video,) => { - let mut debug_trait_builder = f.debug_tuple("Video"); - debug_trait_builder.finish() - } - (&MediaType::Gifv,) => { - let mut debug_trait_builder = f.debug_tuple("Gifv"); - debug_trait_builder.finish() - } - (&MediaType::Unknown,) => { - let mut debug_trait_builder = - f.debug_tuple("Unknown"); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_MediaType: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for MediaType { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "variant identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"variant index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "image" => - _serde::export::Ok(__Field::__field0), - "video" => - _serde::export::Ok(__Field::__field1), - "gifv" => - _serde::export::Ok(__Field::__field2), - "unknown" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"image" => - _serde::export::Ok(__Field::__field0), - b"video" => - _serde::export::Ok(__Field::__field1), - b"gifv" => - _serde::export::Ok(__Field::__field2), - b"unknown" => - _serde::export::Ok(__Field::__field3), - _ => { - let __value = - &_serde::export::from_utf8_lossy(__value); - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = MediaType; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "enum MediaType") - } - fn visit_enum<__A>(self, __data: __A) - -> - _serde::export::Result where - __A: _serde::de::EnumAccess<'de> { - match match _serde::de::EnumAccess::variant(__data) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - (__Field::__field0, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(MediaType::Image) - } - (__Field::__field1, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(MediaType::Video) - } - (__Field::__field2, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(MediaType::Gifv) - } - (__Field::__field3, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(MediaType::Unknown) - } - } - } - } - const VARIANTS: &'static [&'static str] = - &["image", "video", "gifv", "unknown"]; - _serde::Deserializer::deserialize_enum(__deserializer, - "MediaType", - VARIANTS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for MediaType { - #[inline] - fn clone(&self) -> MediaType { { *self } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for MediaType { } - impl ::core::marker::StructuralPartialEq for MediaType { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for MediaType { - #[inline] - fn eq(&self, other: &MediaType) -> bool { - { - let __self_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*self) - }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { _ => true, } - } else { false } - } - } - } - } - /// Data structures for ser/de of card-related resources - pub mod card { - //! Module representing cards of statuses. - /// A card of a status. - pub struct Card { - /// The url associated with the card. - pub url: String, - /// The title of the card. - pub title: String, - /// The card description. - pub description: String, - /// The image associated with the card, if any. - pub image: Option, - /// OEmbed data - author_name: Option, - /// OEmbed data - author_url: Option, - /// OEmbed data - provider_name: Option, - /// OEmbed data - provider_url: Option, - /// OEmbed data - html: Option, - /// OEmbed data - width: Option, - /// OEmbed data - height: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Card { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Card { - url: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - image: ref __self_0_3, - author_name: ref __self_0_4, - author_url: ref __self_0_5, - provider_name: ref __self_0_6, - provider_url: ref __self_0_7, - html: ref __self_0_8, - width: ref __self_0_9, - height: ref __self_0_10 } => { - let mut debug_trait_builder = f.debug_struct("Card"); - let _ = - debug_trait_builder.field("url", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("title", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("description", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("image", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("author_name", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("author_url", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("provider_name", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("provider_url", - &&(*__self_0_7)); - let _ = - debug_trait_builder.field("html", - &&(*__self_0_8)); - let _ = - debug_trait_builder.field("width", - &&(*__self_0_9)); - let _ = - debug_trait_builder.field("height", - &&(*__self_0_10)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Card { - #[inline] - fn clone(&self) -> Card { - match *self { - Card { - url: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - image: ref __self_0_3, - author_name: ref __self_0_4, - author_url: ref __self_0_5, - provider_name: ref __self_0_6, - provider_url: ref __self_0_7, - html: ref __self_0_8, - width: ref __self_0_9, - height: ref __self_0_10 } => - Card{url: ::core::clone::Clone::clone(&(*__self_0_0)), - title: ::core::clone::Clone::clone(&(*__self_0_1)), - description: - ::core::clone::Clone::clone(&(*__self_0_2)), - image: ::core::clone::Clone::clone(&(*__self_0_3)), - author_name: - ::core::clone::Clone::clone(&(*__self_0_4)), - author_url: - ::core::clone::Clone::clone(&(*__self_0_5)), - provider_name: - ::core::clone::Clone::clone(&(*__self_0_6)), - provider_url: - ::core::clone::Clone::clone(&(*__self_0_7)), - html: ::core::clone::Clone::clone(&(*__self_0_8)), - width: ::core::clone::Clone::clone(&(*__self_0_9)), - height: - ::core::clone::Clone::clone(&(*__self_0_10)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Card: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Card { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __field6, - __field7, - __field8, - __field9, - __field10, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - 6u64 => - _serde::export::Ok(__Field::__field6), - 7u64 => - _serde::export::Ok(__Field::__field7), - 8u64 => - _serde::export::Ok(__Field::__field8), - 9u64 => - _serde::export::Ok(__Field::__field9), - 10u64 => - _serde::export::Ok(__Field::__field10), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 11")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "url" => - _serde::export::Ok(__Field::__field0), - "title" => - _serde::export::Ok(__Field::__field1), - "description" => - _serde::export::Ok(__Field::__field2), - "image" => - _serde::export::Ok(__Field::__field3), - "author_name" => - _serde::export::Ok(__Field::__field4), - "author_url" => - _serde::export::Ok(__Field::__field5), - "provider_name" => - _serde::export::Ok(__Field::__field6), - "provider_url" => - _serde::export::Ok(__Field::__field7), - "html" => - _serde::export::Ok(__Field::__field8), - "width" => - _serde::export::Ok(__Field::__field9), - "height" => - _serde::export::Ok(__Field::__field10), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"url" => - _serde::export::Ok(__Field::__field0), - b"title" => - _serde::export::Ok(__Field::__field1), - b"description" => - _serde::export::Ok(__Field::__field2), - b"image" => - _serde::export::Ok(__Field::__field3), - b"author_name" => - _serde::export::Ok(__Field::__field4), - b"author_url" => - _serde::export::Ok(__Field::__field5), - b"provider_name" => - _serde::export::Ok(__Field::__field6), - b"provider_url" => - _serde::export::Ok(__Field::__field7), - b"html" => - _serde::export::Ok(__Field::__field8), - b"width" => - _serde::export::Ok(__Field::__field9), - b"height" => - _serde::export::Ok(__Field::__field10), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Card; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Card") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Card with 11 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Card with 11 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Card with 11 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Card with 11 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Card with 11 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Card with 11 elements")); - } - }; - let __field6 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(6usize, - &"struct Card with 11 elements")); - } - }; - let __field7 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(7usize, - &"struct Card with 11 elements")); - } - }; - let __field8 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(8usize, - &"struct Card with 11 elements")); - } - }; - let __field9 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(9usize, - &"struct Card with 11 elements")); - } - }; - let __field10 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(10usize, - &"struct Card with 11 elements")); - } - }; - _serde::export::Ok(Card{url: __field0, - title: __field1, - description: __field2, - image: __field3, - author_name: __field4, - author_url: __field5, - provider_name: - __field6, - provider_url: - __field7, - html: __field8, - width: __field9, - height: __field10,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - let mut __field4: - _serde::export::Option> = - _serde::export::None; - let mut __field5: - _serde::export::Option> = - _serde::export::None; - let mut __field6: - _serde::export::Option> = - _serde::export::None; - let mut __field7: - _serde::export::Option> = - _serde::export::None; - let mut __field8: - _serde::export::Option> = - _serde::export::None; - let mut __field9: - _serde::export::Option> = - _serde::export::None; - let mut __field10: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("title")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("description")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("image")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("author_name")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("author_url")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field6 => { - if _serde::export::Option::is_some(&__field6) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("provider_name")); - } - __field6 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field7 => { - if _serde::export::Option::is_some(&__field7) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("provider_url")); - } - __field7 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field8 => { - if _serde::export::Option::is_some(&__field8) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("html")); - } - __field8 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field9 => { - if _serde::export::Option::is_some(&__field9) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("width")); - } - __field9 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field10 => { - if _serde::export::Option::is_some(&__field10) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("height")); - } - __field10 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("title") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("description") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("image") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("author_name") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("author_url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field6 = - match __field6 { - _serde::export::Some(__field6) => - __field6, - _serde::export::None => - match _serde::private::de::missing_field("provider_name") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field7 = - match __field7 { - _serde::export::Some(__field7) => - __field7, - _serde::export::None => - match _serde::private::de::missing_field("provider_url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field8 = - match __field8 { - _serde::export::Some(__field8) => - __field8, - _serde::export::None => - match _serde::private::de::missing_field("html") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field9 = - match __field9 { - _serde::export::Some(__field9) => - __field9, - _serde::export::None => - match _serde::private::de::missing_field("width") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field10 = - match __field10 { - _serde::export::Some(__field10) => - __field10, - _serde::export::None => - match _serde::private::de::missing_field("height") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Card{url: __field0, - title: __field1, - description: __field2, - image: __field3, - author_name: __field4, - author_url: __field5, - provider_name: - __field6, - provider_url: - __field7, - html: __field8, - width: __field9, - height: __field10,}) - } - } - const FIELDS: &'static [&'static str] = - &["url", "title", "description", "image", - "author_name", "author_url", "provider_name", - "provider_url", "html", "width", "height"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Card", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Card { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Card { - #[inline] - fn eq(&self, other: &Card) -> bool { - match *other { - Card { - url: ref __self_1_0, - title: ref __self_1_1, - description: ref __self_1_2, - image: ref __self_1_3, - author_name: ref __self_1_4, - author_url: ref __self_1_5, - provider_name: ref __self_1_6, - provider_url: ref __self_1_7, - html: ref __self_1_8, - width: ref __self_1_9, - height: ref __self_1_10 } => - match *self { - Card { - url: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - image: ref __self_0_3, - author_name: ref __self_0_4, - author_url: ref __self_0_5, - provider_name: ref __self_0_6, - provider_url: ref __self_0_7, - html: ref __self_0_8, - width: ref __self_0_9, - height: ref __self_0_10 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7) && - (*__self_0_8) == (*__self_1_8) && - (*__self_0_9) == (*__self_1_9) && - (*__self_0_10) == (*__self_1_10), - }, - } - } - #[inline] - fn ne(&self, other: &Card) -> bool { - match *other { - Card { - url: ref __self_1_0, - title: ref __self_1_1, - description: ref __self_1_2, - image: ref __self_1_3, - author_name: ref __self_1_4, - author_url: ref __self_1_5, - provider_name: ref __self_1_6, - provider_url: ref __self_1_7, - html: ref __self_1_8, - width: ref __self_1_9, - height: ref __self_1_10 } => - match *self { - Card { - url: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - image: ref __self_0_3, - author_name: ref __self_0_4, - author_url: ref __self_0_5, - provider_name: ref __self_0_6, - provider_url: ref __self_0_7, - html: ref __self_0_8, - width: ref __self_0_9, - height: ref __self_0_10 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7) || - (*__self_0_8) != (*__self_1_8) || - (*__self_0_9) != (*__self_1_9) || - (*__self_0_10) != (*__self_1_10), - }, - } - } - } - } - /// Data structures for ser/de of contetx-related resources - pub mod context { - //! A module about contexts of statuses. - use super::status::Status; - /// A context of a status returning a list of statuses it replied to and - /// statuses replied to it. - pub struct Context { - /// Statuses that were replied to. - pub ancestors: Vec, - /// Statuses that replied to this status. - pub descendants: Vec, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Context { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Context { - ancestors: ref __self_0_0, descendants: ref __self_0_1 } - => { - let mut debug_trait_builder = - f.debug_struct("Context"); - let _ = - debug_trait_builder.field("ancestors", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("descendants", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Context { - #[inline] - fn clone(&self) -> Context { - match *self { - Context { - ancestors: ref __self_0_0, descendants: ref __self_0_1 } - => - Context{ancestors: - ::core::clone::Clone::clone(&(*__self_0_0)), - descendants: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Context: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Context { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "ancestors" => - _serde::export::Ok(__Field::__field0), - "descendants" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"ancestors" => - _serde::export::Ok(__Field::__field0), - b"descendants" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Context; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Context") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Context with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Context with 2 elements")); - } - }; - _serde::export::Ok(Context{ancestors: - __field0, - descendants: - __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("ancestors")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("descendants")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("ancestors") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("descendants") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Context{ancestors: - __field0, - descendants: - __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["ancestors", "descendants"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Context", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Context { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Context { - #[inline] - fn eq(&self, other: &Context) -> bool { - match *other { - Context { - ancestors: ref __self_1_0, descendants: ref __self_1_1 } - => - match *self { - Context { - ancestors: ref __self_0_0, descendants: ref __self_0_1 - } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Context) -> bool { - match *other { - Context { - ancestors: ref __self_1_0, descendants: ref __self_1_1 } - => - match *self { - Context { - ancestors: ref __self_0_0, descendants: ref __self_0_1 - } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - } - /// Data structures for ser/de of streaming events - pub mod event { - use crate::entities::{notification::Notification, status::Status}; - /// Events that come from the /streaming/user API call - pub enum Event { - - /// Update event - Update(Status), - - /// Notification event - Notification(Notification), - - /// Delete event - Delete(String), - - /// FiltersChanged event - FiltersChanged, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Event { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match (&*self,) { - (&Event::Update(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Update"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Event::Notification(ref __self_0),) => { - let mut debug_trait_builder = - f.debug_tuple("Notification"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Event::Delete(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Delete"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Event::FiltersChanged,) => { - let mut debug_trait_builder = - f.debug_tuple("FiltersChanged"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Event { - #[inline] - fn clone(&self) -> Event { - match (&*self,) { - (&Event::Update(ref __self_0),) => - Event::Update(::core::clone::Clone::clone(&(*__self_0))), - (&Event::Notification(ref __self_0),) => - Event::Notification(::core::clone::Clone::clone(&(*__self_0))), - (&Event::Delete(ref __self_0),) => - Event::Delete(::core::clone::Clone::clone(&(*__self_0))), - (&Event::FiltersChanged,) => Event::FiltersChanged, - } - } - } - } - /// Data structures for ser/de of filter-related resources - pub mod filter { - /// Represents a single Filter - pub struct Filter { - id: String, - phrase: String, - context: Vec, - expires_at: Option, - irreversible: bool, - whole_word: bool, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Filter { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Filter { - id: ref __self_0_0, - phrase: ref __self_0_1, - context: ref __self_0_2, - expires_at: ref __self_0_3, - irreversible: ref __self_0_4, - whole_word: ref __self_0_5 } => { - let mut debug_trait_builder = - f.debug_struct("Filter"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("phrase", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("context", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("expires_at", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("irreversible", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("whole_word", - &&(*__self_0_5)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Filter { - #[inline] - fn clone(&self) -> Filter { - match *self { - Filter { - id: ref __self_0_0, - phrase: ref __self_0_1, - context: ref __self_0_2, - expires_at: ref __self_0_3, - irreversible: ref __self_0_4, - whole_word: ref __self_0_5 } => - Filter{id: ::core::clone::Clone::clone(&(*__self_0_0)), - phrase: - ::core::clone::Clone::clone(&(*__self_0_1)), - context: - ::core::clone::Clone::clone(&(*__self_0_2)), - expires_at: - ::core::clone::Clone::clone(&(*__self_0_3)), - irreversible: - ::core::clone::Clone::clone(&(*__self_0_4)), - whole_word: - ::core::clone::Clone::clone(&(*__self_0_5)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Filter { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Filter { - #[inline] - fn eq(&self, other: &Filter) -> bool { - match *other { - Filter { - id: ref __self_1_0, - phrase: ref __self_1_1, - context: ref __self_1_2, - expires_at: ref __self_1_3, - irreversible: ref __self_1_4, - whole_word: ref __self_1_5 } => - match *self { - Filter { - id: ref __self_0_0, - phrase: ref __self_0_1, - context: ref __self_0_2, - expires_at: ref __self_0_3, - irreversible: ref __self_0_4, - whole_word: ref __self_0_5 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5), - }, - } - } - #[inline] - fn ne(&self, other: &Filter) -> bool { - match *other { - Filter { - id: ref __self_1_0, - phrase: ref __self_1_1, - context: ref __self_1_2, - expires_at: ref __self_1_3, - irreversible: ref __self_1_4, - whole_word: ref __self_1_5 } => - match *self { - Filter { - id: ref __self_0_0, - phrase: ref __self_0_1, - context: ref __self_0_2, - expires_at: ref __self_0_3, - irreversible: ref __self_0_4, - whole_word: ref __self_0_5 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Filter: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Filter { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Filter", - false - as - usize - + 1 - + 1 - + 1 - + 1 - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "id", - &self.id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "phrase", - &self.phrase) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "context", - &self.context) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "expires_at", - &self.expires_at) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "irreversible", - &self.irreversible) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "whole_word", - &self.whole_word) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Filter: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Filter { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 6")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "phrase" => - _serde::export::Ok(__Field::__field1), - "context" => - _serde::export::Ok(__Field::__field2), - "expires_at" => - _serde::export::Ok(__Field::__field3), - "irreversible" => - _serde::export::Ok(__Field::__field4), - "whole_word" => - _serde::export::Ok(__Field::__field5), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"phrase" => - _serde::export::Ok(__Field::__field1), - b"context" => - _serde::export::Ok(__Field::__field2), - b"expires_at" => - _serde::export::Ok(__Field::__field3), - b"irreversible" => - _serde::export::Ok(__Field::__field4), - b"whole_word" => - _serde::export::Ok(__Field::__field5), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Filter; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Filter") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Filter with 6 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Filter with 6 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Filter with 6 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Filter with 6 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Filter with 6 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Filter with 6 elements")); - } - }; - _serde::export::Ok(Filter{id: __field0, - phrase: __field1, - context: __field2, - expires_at: - __field3, - irreversible: - __field4, - whole_word: - __field5,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - let mut __field4: - _serde::export::Option = - _serde::export::None; - let mut __field5: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("phrase")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("context")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("expires_at")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("irreversible")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("whole_word")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("phrase") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("context") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("expires_at") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("irreversible") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("whole_word") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Filter{id: __field0, - phrase: __field1, - context: __field2, - expires_at: - __field3, - irreversible: - __field4, - whole_word: - __field5,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "phrase", "context", "expires_at", - "irreversible", "whole_word"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Filter", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - /// Represents the various types of Filter contexts - pub enum FilterContext { - - /// Represents the "home" context - #[serde(rename = "home")] - Home, - - /// Represents the "notifications" context - #[serde(rename = "notifications")] - Notifications, - - /// Represents the "public" context - #[serde(rename = "public")] - Public, - - /// Represents the "thread" context - #[serde(rename = "thread")] - Thread, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for FilterContext { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match (&*self,) { - (&FilterContext::Home,) => { - let mut debug_trait_builder = f.debug_tuple("Home"); - debug_trait_builder.finish() - } - (&FilterContext::Notifications,) => { - let mut debug_trait_builder = - f.debug_tuple("Notifications"); - debug_trait_builder.finish() - } - (&FilterContext::Public,) => { - let mut debug_trait_builder = f.debug_tuple("Public"); - debug_trait_builder.finish() - } - (&FilterContext::Thread,) => { - let mut debug_trait_builder = f.debug_tuple("Thread"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for FilterContext { - #[inline] - fn clone(&self) -> FilterContext { { *self } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for FilterContext { } - impl ::core::marker::StructuralPartialEq for FilterContext { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for FilterContext { - #[inline] - fn eq(&self, other: &FilterContext) -> bool { - { - let __self_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*self) - }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { _ => true, } - } else { false } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_FilterContext: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for FilterContext { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - match *self { - FilterContext::Home => - _serde::Serializer::serialize_unit_variant(__serializer, - "FilterContext", - 0u32, - "home"), - FilterContext::Notifications => - _serde::Serializer::serialize_unit_variant(__serializer, - "FilterContext", - 1u32, - "notifications"), - FilterContext::Public => - _serde::Serializer::serialize_unit_variant(__serializer, - "FilterContext", - 2u32, - "public"), - FilterContext::Thread => - _serde::Serializer::serialize_unit_variant(__serializer, - "FilterContext", - 3u32, - "thread"), - } - } - } - }; - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_FilterContext: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for FilterContext { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "variant identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"variant index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "home" => - _serde::export::Ok(__Field::__field0), - "notifications" => - _serde::export::Ok(__Field::__field1), - "public" => - _serde::export::Ok(__Field::__field2), - "thread" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"home" => - _serde::export::Ok(__Field::__field0), - b"notifications" => - _serde::export::Ok(__Field::__field1), - b"public" => - _serde::export::Ok(__Field::__field2), - b"thread" => - _serde::export::Ok(__Field::__field3), - _ => { - let __value = - &_serde::export::from_utf8_lossy(__value); - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = FilterContext; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "enum FilterContext") - } - fn visit_enum<__A>(self, __data: __A) - -> - _serde::export::Result where - __A: _serde::de::EnumAccess<'de> { - match match _serde::de::EnumAccess::variant(__data) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - (__Field::__field0, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(FilterContext::Home) - } - (__Field::__field1, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(FilterContext::Notifications) - } - (__Field::__field2, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(FilterContext::Public) - } - (__Field::__field3, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(FilterContext::Thread) - } - } - } - } - const VARIANTS: &'static [&'static str] = - &["home", "notifications", "public", "thread"]; - _serde::Deserializer::deserialize_enum(__deserializer, - "FilterContext", - VARIANTS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - } - /// Data structures for ser/de of instance-related resources - pub mod instance { - //! Module containing everything related to an instance. - use super::account::Account; - /// A struct containing info of an instance. - pub struct Instance { - /// URI of the current instance - pub uri: String, - /// The instance's title. - pub title: String, - /// A description for the instance. - pub description: String, - /// An email address which can be used to contact the - /// instance administrator. - pub email: String, - /// The Mastodon version used by instance. - pub version: String, - /// Urls to the streaming api. - pub urls: Option, - /// Stats about the instance. - pub stats: Option, - /// Thumbnail of the server image. - pub thumbnail: Option, - /// List of languages used on the server. - pub languages: Option>, - /// Contact account for the server. - pub contact_account: Option, - /// The maximum number of characters allowed in a status - pub max_toot_chars: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Instance { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Instance { - uri: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - email: ref __self_0_3, - version: ref __self_0_4, - urls: ref __self_0_5, - stats: ref __self_0_6, - thumbnail: ref __self_0_7, - languages: ref __self_0_8, - contact_account: ref __self_0_9, - max_toot_chars: ref __self_0_10 } => { - let mut debug_trait_builder = - f.debug_struct("Instance"); - let _ = - debug_trait_builder.field("uri", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("title", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("description", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("email", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("version", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("urls", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("stats", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("thumbnail", - &&(*__self_0_7)); - let _ = - debug_trait_builder.field("languages", - &&(*__self_0_8)); - let _ = - debug_trait_builder.field("contact_account", - &&(*__self_0_9)); - let _ = - debug_trait_builder.field("max_toot_chars", - &&(*__self_0_10)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Instance { - #[inline] - fn clone(&self) -> Instance { - match *self { - Instance { - uri: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - email: ref __self_0_3, - version: ref __self_0_4, - urls: ref __self_0_5, - stats: ref __self_0_6, - thumbnail: ref __self_0_7, - languages: ref __self_0_8, - contact_account: ref __self_0_9, - max_toot_chars: ref __self_0_10 } => - Instance{uri: ::core::clone::Clone::clone(&(*__self_0_0)), - title: - ::core::clone::Clone::clone(&(*__self_0_1)), - description: - ::core::clone::Clone::clone(&(*__self_0_2)), - email: - ::core::clone::Clone::clone(&(*__self_0_3)), - version: - ::core::clone::Clone::clone(&(*__self_0_4)), - urls: - ::core::clone::Clone::clone(&(*__self_0_5)), - stats: - ::core::clone::Clone::clone(&(*__self_0_6)), - thumbnail: - ::core::clone::Clone::clone(&(*__self_0_7)), - languages: - ::core::clone::Clone::clone(&(*__self_0_8)), - contact_account: - ::core::clone::Clone::clone(&(*__self_0_9)), - max_toot_chars: - ::core::clone::Clone::clone(&(*__self_0_10)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Instance: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Instance { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __field6, - __field7, - __field8, - __field9, - __field10, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - 6u64 => - _serde::export::Ok(__Field::__field6), - 7u64 => - _serde::export::Ok(__Field::__field7), - 8u64 => - _serde::export::Ok(__Field::__field8), - 9u64 => - _serde::export::Ok(__Field::__field9), - 10u64 => - _serde::export::Ok(__Field::__field10), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 11")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "uri" => - _serde::export::Ok(__Field::__field0), - "title" => - _serde::export::Ok(__Field::__field1), - "description" => - _serde::export::Ok(__Field::__field2), - "email" => - _serde::export::Ok(__Field::__field3), - "version" => - _serde::export::Ok(__Field::__field4), - "urls" => - _serde::export::Ok(__Field::__field5), - "stats" => - _serde::export::Ok(__Field::__field6), - "thumbnail" => - _serde::export::Ok(__Field::__field7), - "languages" => - _serde::export::Ok(__Field::__field8), - "contact_account" => - _serde::export::Ok(__Field::__field9), - "max_toot_chars" => - _serde::export::Ok(__Field::__field10), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"uri" => - _serde::export::Ok(__Field::__field0), - b"title" => - _serde::export::Ok(__Field::__field1), - b"description" => - _serde::export::Ok(__Field::__field2), - b"email" => - _serde::export::Ok(__Field::__field3), - b"version" => - _serde::export::Ok(__Field::__field4), - b"urls" => - _serde::export::Ok(__Field::__field5), - b"stats" => - _serde::export::Ok(__Field::__field6), - b"thumbnail" => - _serde::export::Ok(__Field::__field7), - b"languages" => - _serde::export::Ok(__Field::__field8), - b"contact_account" => - _serde::export::Ok(__Field::__field9), - b"max_toot_chars" => - _serde::export::Ok(__Field::__field10), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Instance; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Instance") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Instance with 11 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Instance with 11 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Instance with 11 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Instance with 11 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Instance with 11 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Instance with 11 elements")); - } - }; - let __field6 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(6usize, - &"struct Instance with 11 elements")); - } - }; - let __field7 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(7usize, - &"struct Instance with 11 elements")); - } - }; - let __field8 = - match match _serde::de::SeqAccess::next_element::>>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(8usize, - &"struct Instance with 11 elements")); - } - }; - let __field9 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(9usize, - &"struct Instance with 11 elements")); - } - }; - let __field10 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(10usize, - &"struct Instance with 11 elements")); - } - }; - _serde::export::Ok(Instance{uri: __field0, - title: __field1, - description: - __field2, - email: __field3, - version: __field4, - urls: __field5, - stats: __field6, - thumbnail: - __field7, - languages: - __field8, - contact_account: - __field9, - max_toot_chars: - __field10,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option = - _serde::export::None; - let mut __field4: - _serde::export::Option = - _serde::export::None; - let mut __field5: - _serde::export::Option> = - _serde::export::None; - let mut __field6: - _serde::export::Option> = - _serde::export::None; - let mut __field7: - _serde::export::Option> = - _serde::export::None; - let mut __field8: - _serde::export::Option>> = - _serde::export::None; - let mut __field9: - _serde::export::Option> = - _serde::export::None; - let mut __field10: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("uri")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("title")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("description")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("email")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("version")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("urls")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field6 => { - if _serde::export::Option::is_some(&__field6) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("stats")); - } - __field6 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field7 => { - if _serde::export::Option::is_some(&__field7) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("thumbnail")); - } - __field7 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field8 => { - if _serde::export::Option::is_some(&__field8) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("languages")); - } - __field8 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field9 => { - if _serde::export::Option::is_some(&__field9) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("contact_account")); - } - __field9 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field10 => { - if _serde::export::Option::is_some(&__field10) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("max_toot_chars")); - } - __field10 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("uri") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("title") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("description") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("email") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("version") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("urls") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field6 = - match __field6 { - _serde::export::Some(__field6) => - __field6, - _serde::export::None => - match _serde::private::de::missing_field("stats") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field7 = - match __field7 { - _serde::export::Some(__field7) => - __field7, - _serde::export::None => - match _serde::private::de::missing_field("thumbnail") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field8 = - match __field8 { - _serde::export::Some(__field8) => - __field8, - _serde::export::None => - match _serde::private::de::missing_field("languages") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field9 = - match __field9 { - _serde::export::Some(__field9) => - __field9, - _serde::export::None => - match _serde::private::de::missing_field("contact_account") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field10 = - match __field10 { - _serde::export::Some(__field10) => - __field10, - _serde::export::None => - match _serde::private::de::missing_field("max_toot_chars") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Instance{uri: __field0, - title: __field1, - description: - __field2, - email: __field3, - version: __field4, - urls: __field5, - stats: __field6, - thumbnail: - __field7, - languages: - __field8, - contact_account: - __field9, - max_toot_chars: - __field10,}) - } - } - const FIELDS: &'static [&'static str] = - &["uri", "title", "description", "email", - "version", "urls", "stats", "thumbnail", - "languages", "contact_account", - "max_toot_chars"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Instance", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Instance { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Instance { - #[inline] - fn eq(&self, other: &Instance) -> bool { - match *other { - Instance { - uri: ref __self_1_0, - title: ref __self_1_1, - description: ref __self_1_2, - email: ref __self_1_3, - version: ref __self_1_4, - urls: ref __self_1_5, - stats: ref __self_1_6, - thumbnail: ref __self_1_7, - languages: ref __self_1_8, - contact_account: ref __self_1_9, - max_toot_chars: ref __self_1_10 } => - match *self { - Instance { - uri: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - email: ref __self_0_3, - version: ref __self_0_4, - urls: ref __self_0_5, - stats: ref __self_0_6, - thumbnail: ref __self_0_7, - languages: ref __self_0_8, - contact_account: ref __self_0_9, - max_toot_chars: ref __self_0_10 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7) && - (*__self_0_8) == (*__self_1_8) && - (*__self_0_9) == (*__self_1_9) && - (*__self_0_10) == (*__self_1_10), - }, - } - } - #[inline] - fn ne(&self, other: &Instance) -> bool { - match *other { - Instance { - uri: ref __self_1_0, - title: ref __self_1_1, - description: ref __self_1_2, - email: ref __self_1_3, - version: ref __self_1_4, - urls: ref __self_1_5, - stats: ref __self_1_6, - thumbnail: ref __self_1_7, - languages: ref __self_1_8, - contact_account: ref __self_1_9, - max_toot_chars: ref __self_1_10 } => - match *self { - Instance { - uri: ref __self_0_0, - title: ref __self_0_1, - description: ref __self_0_2, - email: ref __self_0_3, - version: ref __self_0_4, - urls: ref __self_0_5, - stats: ref __self_0_6, - thumbnail: ref __self_0_7, - languages: ref __self_0_8, - contact_account: ref __self_0_9, - max_toot_chars: ref __self_0_10 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7) || - (*__self_0_8) != (*__self_1_8) || - (*__self_0_9) != (*__self_1_9) || - (*__self_0_10) != (*__self_1_10), - }, - } - } - } - /// Object containing url for streaming api. - pub struct StreamingApi { - /// Url for streaming API, typically a `wss://` url. - pub streaming_api: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for StreamingApi { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - StreamingApi { streaming_api: ref __self_0_0 } => { - let mut debug_trait_builder = - f.debug_struct("StreamingApi"); - let _ = - debug_trait_builder.field("streaming_api", - &&(*__self_0_0)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for StreamingApi { - #[inline] - fn clone(&self) -> StreamingApi { - match *self { - StreamingApi { streaming_api: ref __self_0_0 } => - StreamingApi{streaming_api: - ::core::clone::Clone::clone(&(*__self_0_0)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_StreamingApi: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for StreamingApi { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 1")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "streaming_api" => - _serde::export::Ok(__Field::__field0), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"streaming_api" => - _serde::export::Ok(__Field::__field0), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = StreamingApi; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct StreamingApi") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct StreamingApi with 1 element")); - } - }; - _serde::export::Ok(StreamingApi{streaming_api: - __field0,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("streaming_api")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("streaming_api") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(StreamingApi{streaming_api: - __field0,}) - } - } - const FIELDS: &'static [&'static str] = - &["streaming_api"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "StreamingApi", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for StreamingApi { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for StreamingApi { - #[inline] - fn eq(&self, other: &StreamingApi) -> bool { - match *other { - StreamingApi { streaming_api: ref __self_1_0 } => - match *self { - StreamingApi { streaming_api: ref __self_0_0 } => - (*__self_0_0) == (*__self_1_0), - }, - } - } - #[inline] - fn ne(&self, other: &StreamingApi) -> bool { - match *other { - StreamingApi { streaming_api: ref __self_1_0 } => - match *self { - StreamingApi { streaming_api: ref __self_0_0 } => - (*__self_0_0) != (*__self_1_0), - }, - } - } - } - /// Statistics about the Mastodon instance. - pub struct Stats { - user_count: u64, - status_count: u64, - domain_count: u64, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Stats { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Stats { - user_count: ref __self_0_0, - status_count: ref __self_0_1, - domain_count: ref __self_0_2 } => { - let mut debug_trait_builder = f.debug_struct("Stats"); - let _ = - debug_trait_builder.field("user_count", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("status_count", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("domain_count", - &&(*__self_0_2)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Stats { - #[inline] - fn clone(&self) -> Stats { - { - let _: ::core::clone::AssertParamIsClone; - let _: ::core::clone::AssertParamIsClone; - let _: ::core::clone::AssertParamIsClone; - *self - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Stats { } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Stats: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Stats { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 3")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "user_count" => - _serde::export::Ok(__Field::__field0), - "status_count" => - _serde::export::Ok(__Field::__field1), - "domain_count" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"user_count" => - _serde::export::Ok(__Field::__field0), - b"status_count" => - _serde::export::Ok(__Field::__field1), - b"domain_count" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Stats; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Stats") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Stats with 3 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Stats with 3 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Stats with 3 elements")); - } - }; - _serde::export::Ok(Stats{user_count: __field0, - status_count: - __field1, - domain_count: - __field2,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("user_count")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("status_count")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("domain_count")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("user_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("status_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("domain_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Stats{user_count: __field0, - status_count: - __field1, - domain_count: - __field2,}) - } - } - const FIELDS: &'static [&'static str] = - &["user_count", "status_count", "domain_count"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Stats", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Stats { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Stats { - #[inline] - fn eq(&self, other: &Stats) -> bool { - match *other { - Stats { - user_count: ref __self_1_0, - status_count: ref __self_1_1, - domain_count: ref __self_1_2 } => - match *self { - Stats { - user_count: ref __self_0_0, - status_count: ref __self_0_1, - domain_count: ref __self_0_2 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2), - }, - } - } - #[inline] - fn ne(&self, other: &Stats) -> bool { - match *other { - Stats { - user_count: ref __self_1_0, - status_count: ref __self_1_1, - domain_count: ref __self_1_2 } => - match *self { - Stats { - user_count: ref __self_0_0, - status_count: ref __self_0_1, - domain_count: ref __self_0_2 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2), - }, - } - } - } - } - /// Data structures for ser/de of list-related resources - pub mod list { - /// Used for ser/de of list resources - pub struct List { - id: String, - title: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for List { - #[inline] - fn clone(&self) -> List { - match *self { - List { id: ref __self_0_0, title: ref __self_0_1 } => - List{id: ::core::clone::Clone::clone(&(*__self_0_0)), - title: ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for List { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - List { id: ref __self_0_0, title: ref __self_0_1 } => { - let mut debug_trait_builder = f.debug_struct("List"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("title", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_List: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for List { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "title" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"title" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = List; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct List") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct List with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct List with 2 elements")); - } - }; - _serde::export::Ok(List{id: __field0, - title: __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("title")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("title") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(List{id: __field0, - title: __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "title"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "List", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for List { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for List { - #[inline] - fn eq(&self, other: &List) -> bool { - match *other { - List { id: ref __self_1_0, title: ref __self_1_1 } => - match *self { - List { id: ref __self_0_0, title: ref __self_0_1 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &List) -> bool { - match *other { - List { id: ref __self_1_0, title: ref __self_1_1 } => - match *self { - List { id: ref __self_0_0, title: ref __self_0_1 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - } - /// Data structures for ser/de of mention-related resources - pub mod mention { - /// Represents a `mention` used in a status - pub struct Mention { - /// URL of user's profile (can be remote) - pub url: String, - /// The username of the account - pub username: String, - /// Equals username for local users, includes `@domain` for remote ones - pub acct: String, - /// Account ID - pub id: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Mention { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("Mention"); - let _ = - debug_trait_builder.field("url", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("username", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("acct", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("id", &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Mention { - #[inline] - fn clone(&self) -> Mention { - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => - Mention{url: ::core::clone::Clone::clone(&(*__self_0_0)), - username: - ::core::clone::Clone::clone(&(*__self_0_1)), - acct: ::core::clone::Clone::clone(&(*__self_0_2)), - id: ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Mention { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Mention { - #[inline] - fn eq(&self, other: &Mention) -> bool { - match *other { - Mention { - url: ref __self_1_0, - username: ref __self_1_1, - acct: ref __self_1_2, - id: ref __self_1_3 } => - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &Mention) -> bool { - match *other { - Mention { - url: ref __self_1_0, - username: ref __self_1_1, - acct: ref __self_1_2, - id: ref __self_1_3 } => - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - } - /// Data structures for ser/de of notification-related resources - pub mod notification { - //! Module containing all info about notifications. - use super::{account::Account, status::Status}; - use chrono::prelude::*; - /// A struct containing info about a notification. - pub struct Notification { - /// The notification ID. - pub id: String, - /// The type of notification. - #[serde(rename = "type")] - pub notification_type: NotificationType, - /// The time the notification was created. - pub created_at: DateTime, - /// The Account sending the notification to the user. - pub account: Account, - /// The Status associated with the notification, if applicable. - pub status: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Notification { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Notification { - id: ref __self_0_0, - notification_type: ref __self_0_1, - created_at: ref __self_0_2, - account: ref __self_0_3, - status: ref __self_0_4 } => { - let mut debug_trait_builder = - f.debug_struct("Notification"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("notification_type", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("created_at", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("account", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("status", - &&(*__self_0_4)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Notification { - #[inline] - fn clone(&self) -> Notification { - match *self { - Notification { - id: ref __self_0_0, - notification_type: ref __self_0_1, - created_at: ref __self_0_2, - account: ref __self_0_3, - status: ref __self_0_4 } => - Notification{id: - ::core::clone::Clone::clone(&(*__self_0_0)), - notification_type: - ::core::clone::Clone::clone(&(*__self_0_1)), - created_at: - ::core::clone::Clone::clone(&(*__self_0_2)), - account: - ::core::clone::Clone::clone(&(*__self_0_3)), - status: - ::core::clone::Clone::clone(&(*__self_0_4)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Notification: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Notification { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 5")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "type" => - _serde::export::Ok(__Field::__field1), - "created_at" => - _serde::export::Ok(__Field::__field2), - "account" => - _serde::export::Ok(__Field::__field3), - "status" => - _serde::export::Ok(__Field::__field4), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"type" => - _serde::export::Ok(__Field::__field1), - b"created_at" => - _serde::export::Ok(__Field::__field2), - b"account" => - _serde::export::Ok(__Field::__field3), - b"status" => - _serde::export::Ok(__Field::__field4), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Notification; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Notification") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Notification with 5 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Notification with 5 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Notification with 5 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Notification with 5 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Notification with 5 elements")); - } - }; - _serde::export::Ok(Notification{id: __field0, - notification_type: - __field1, - created_at: - __field2, - account: - __field3, - status: - __field4,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option = - _serde::export::None; - let mut __field4: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("type")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("created_at")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("account")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("status")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("type") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("created_at") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("account") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("status") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Notification{id: __field0, - notification_type: - __field1, - created_at: - __field2, - account: - __field3, - status: - __field4,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "type", "created_at", "account", - "status"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Notification", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Notification { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Notification { - #[inline] - fn eq(&self, other: &Notification) -> bool { - match *other { - Notification { - id: ref __self_1_0, - notification_type: ref __self_1_1, - created_at: ref __self_1_2, - account: ref __self_1_3, - status: ref __self_1_4 } => - match *self { - Notification { - id: ref __self_0_0, - notification_type: ref __self_0_1, - created_at: ref __self_0_2, - account: ref __self_0_3, - status: ref __self_0_4 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4), - }, - } - } - #[inline] - fn ne(&self, other: &Notification) -> bool { - match *other { - Notification { - id: ref __self_1_0, - notification_type: ref __self_1_1, - created_at: ref __self_1_2, - account: ref __self_1_3, - status: ref __self_1_4 } => - match *self { - Notification { - id: ref __self_0_0, - notification_type: ref __self_0_1, - created_at: ref __self_0_2, - account: ref __self_0_3, - status: ref __self_0_4 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4), - }, - } - } - } - /// The type of notification. - #[serde(rename_all = "lowercase")] - pub enum NotificationType { - - /// Someone mentioned the application client in another status. - Mention, - - /// Someone reblogged one of the application client's statuses. - Reblog, - - /// Someone favourited one of the application client's statuses. - Favourite, - - /// Someone followed the application client. - Follow, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for NotificationType { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match (&*self,) { - (&NotificationType::Mention,) => { - let mut debug_trait_builder = - f.debug_tuple("Mention"); - debug_trait_builder.finish() - } - (&NotificationType::Reblog,) => { - let mut debug_trait_builder = f.debug_tuple("Reblog"); - debug_trait_builder.finish() - } - (&NotificationType::Favourite,) => { - let mut debug_trait_builder = - f.debug_tuple("Favourite"); - debug_trait_builder.finish() - } - (&NotificationType::Follow,) => { - let mut debug_trait_builder = f.debug_tuple("Follow"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for NotificationType { - #[inline] - fn clone(&self) -> NotificationType { { *self } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for NotificationType { } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_NotificationType: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for NotificationType { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "variant identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"variant index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "mention" => - _serde::export::Ok(__Field::__field0), - "reblog" => - _serde::export::Ok(__Field::__field1), - "favourite" => - _serde::export::Ok(__Field::__field2), - "follow" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"mention" => - _serde::export::Ok(__Field::__field0), - b"reblog" => - _serde::export::Ok(__Field::__field1), - b"favourite" => - _serde::export::Ok(__Field::__field2), - b"follow" => - _serde::export::Ok(__Field::__field3), - _ => { - let __value = - &_serde::export::from_utf8_lossy(__value); - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = NotificationType; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "enum NotificationType") - } - fn visit_enum<__A>(self, __data: __A) - -> - _serde::export::Result where - __A: _serde::de::EnumAccess<'de> { - match match _serde::de::EnumAccess::variant(__data) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - (__Field::__field0, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(NotificationType::Mention) - } - (__Field::__field1, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(NotificationType::Reblog) - } - (__Field::__field2, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(NotificationType::Favourite) - } - (__Field::__field3, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(NotificationType::Follow) - } - } - } - } - const VARIANTS: &'static [&'static str] = - &["mention", "reblog", "favourite", "follow"]; - _serde::Deserializer::deserialize_enum(__deserializer, - "NotificationType", - VARIANTS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for NotificationType { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for NotificationType { - #[inline] - fn eq(&self, other: &NotificationType) -> bool { - { - let __self_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*self) - }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { _ => true, } - } else { false } - } - } - } - } - /// Data structures for ser/de of push-subscription-related resources - pub mod push { - /// Represents the `alerts` key of the `Subscription` object - pub struct Alerts { - /// flag for follow alerts - pub follow: Option, - /// flag for favourite alerts - pub favourite: Option, - /// flag for reblog alerts - pub reblog: Option, - /// flag for mention alerts - pub mention: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Alerts { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Alerts { - follow: ref __self_0_0, - favourite: ref __self_0_1, - reblog: ref __self_0_2, - mention: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("Alerts"); - let _ = - debug_trait_builder.field("follow", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("favourite", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("reblog", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("mention", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Alerts { - #[inline] - fn clone(&self) -> Alerts { - { - let _: ::core::clone::AssertParamIsClone>; - let _: ::core::clone::AssertParamIsClone>; - let _: ::core::clone::AssertParamIsClone>; - let _: ::core::clone::AssertParamIsClone>; - *self - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Alerts { } - impl ::core::marker::StructuralPartialEq for Alerts { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Alerts { - #[inline] - fn eq(&self, other: &Alerts) -> bool { - match *other { - Alerts { - follow: ref __self_1_0, - favourite: ref __self_1_1, - reblog: ref __self_1_2, - mention: ref __self_1_3 } => - match *self { - Alerts { - follow: ref __self_0_0, - favourite: ref __self_0_1, - reblog: ref __self_0_2, - mention: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &Alerts) -> bool { - match *other { - Alerts { - follow: ref __self_1_0, - favourite: ref __self_1_1, - reblog: ref __self_1_2, - mention: ref __self_1_3 } => - match *self { - Alerts { - follow: ref __self_0_0, - favourite: ref __self_0_1, - reblog: ref __self_0_2, - mention: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Alerts: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Alerts { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Alerts", - false - as - usize - + 1 - + 1 - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "follow", - &self.follow) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "favourite", - &self.favourite) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "reblog", - &self.reblog) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "mention", - &self.mention) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Alerts: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Alerts { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "follow" => - _serde::export::Ok(__Field::__field0), - "favourite" => - _serde::export::Ok(__Field::__field1), - "reblog" => - _serde::export::Ok(__Field::__field2), - "mention" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"follow" => - _serde::export::Ok(__Field::__field0), - b"favourite" => - _serde::export::Ok(__Field::__field1), - b"reblog" => - _serde::export::Ok(__Field::__field2), - b"mention" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Alerts; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Alerts") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Alerts with 4 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Alerts with 4 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Alerts with 4 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Alerts with 4 elements")); - } - }; - _serde::export::Ok(Alerts{follow: __field0, - favourite: __field1, - reblog: __field2, - mention: __field3,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("follow")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("favourite")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("reblog")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("mention")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("follow") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("favourite") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("reblog") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("mention") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Alerts{follow: __field0, - favourite: __field1, - reblog: __field2, - mention: __field3,}) - } - } - const FIELDS: &'static [&'static str] = - &["follow", "favourite", "reblog", "mention"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Alerts", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Alerts { - #[inline] - fn default() -> Alerts { - Alerts{follow: ::core::default::Default::default(), - favourite: ::core::default::Default::default(), - reblog: ::core::default::Default::default(), - mention: ::core::default::Default::default(),} - } - } - /// Represents a new Push subscription - pub struct Subscription { - /// The `id` of the subscription - pub id: String, - /// The endpoint of the subscription - pub endpoint: String, - /// The server key of the subscription - pub server_key: String, - /// The status of the alerts for this subscription - pub alerts: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Subscription { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Subscription { - id: ref __self_0_0, - endpoint: ref __self_0_1, - server_key: ref __self_0_2, - alerts: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("Subscription"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("endpoint", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("server_key", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("alerts", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Subscription { - #[inline] - fn clone(&self) -> Subscription { - match *self { - Subscription { - id: ref __self_0_0, - endpoint: ref __self_0_1, - server_key: ref __self_0_2, - alerts: ref __self_0_3 } => - Subscription{id: - ::core::clone::Clone::clone(&(*__self_0_0)), - endpoint: - ::core::clone::Clone::clone(&(*__self_0_1)), - server_key: - ::core::clone::Clone::clone(&(*__self_0_2)), - alerts: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Subscription { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Subscription { - #[inline] - fn eq(&self, other: &Subscription) -> bool { - match *other { - Subscription { - id: ref __self_1_0, - endpoint: ref __self_1_1, - server_key: ref __self_1_2, - alerts: ref __self_1_3 } => - match *self { - Subscription { - id: ref __self_0_0, - endpoint: ref __self_0_1, - server_key: ref __self_0_2, - alerts: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &Subscription) -> bool { - match *other { - Subscription { - id: ref __self_1_0, - endpoint: ref __self_1_1, - server_key: ref __self_1_2, - alerts: ref __self_1_3 } => - match *self { - Subscription { - id: ref __self_0_0, - endpoint: ref __self_0_1, - server_key: ref __self_0_2, - alerts: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Subscription: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Subscription { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "endpoint" => - _serde::export::Ok(__Field::__field1), - "server_key" => - _serde::export::Ok(__Field::__field2), - "alerts" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"endpoint" => - _serde::export::Ok(__Field::__field1), - b"server_key" => - _serde::export::Ok(__Field::__field2), - b"alerts" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Subscription; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Subscription") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Subscription with 4 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Subscription with 4 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Subscription with 4 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Subscription with 4 elements")); - } - }; - _serde::export::Ok(Subscription{id: __field0, - endpoint: - __field1, - server_key: - __field2, - alerts: - __field3,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("endpoint")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("server_key")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("alerts")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("endpoint") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("server_key") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("alerts") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Subscription{id: __field0, - endpoint: - __field1, - server_key: - __field2, - alerts: - __field3,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "endpoint", "server_key", "alerts"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Subscription", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - pub(crate) mod add_subscription { - use super::Alerts; - pub(crate) struct Form { - pub(crate) subscription: Subscription, - pub(crate) data: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Form { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Form { - subscription: ref __self_0_0, data: ref __self_0_1 } - => { - let mut debug_trait_builder = - f.debug_struct("Form"); - let _ = - debug_trait_builder.field("subscription", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("data", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Form { - #[inline] - fn clone(&self) -> Form { - match *self { - Form { - subscription: ref __self_0_0, data: ref __self_0_1 } - => - Form{subscription: - ::core::clone::Clone::clone(&(*__self_0_0)), - data: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Form { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Form { - #[inline] - fn eq(&self, other: &Form) -> bool { - match *other { - Form { - subscription: ref __self_1_0, data: ref __self_1_1 } - => - match *self { - Form { - subscription: ref __self_0_0, data: ref __self_0_1 - } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Form) -> bool { - match *other { - Form { - subscription: ref __self_1_0, data: ref __self_1_1 } - => - match *self { - Form { - subscription: ref __self_0_0, data: ref __self_0_1 - } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Form: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Form { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Form", - false - as - usize - + - 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "subscription", - &self.subscription) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "data", - &self.data) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Form { - #[inline] - fn default() -> Form { - Form{subscription: ::core::default::Default::default(), - data: ::core::default::Default::default(),} - } - } - pub(crate) struct Subscription { - pub(crate) endpoint: String, - pub(crate) keys: Keys, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Subscription { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Subscription { - endpoint: ref __self_0_0, keys: ref __self_0_1 } => { - let mut debug_trait_builder = - f.debug_struct("Subscription"); - let _ = - debug_trait_builder.field("endpoint", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("keys", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Subscription { - #[inline] - fn clone(&self) -> Subscription { - match *self { - Subscription { - endpoint: ref __self_0_0, keys: ref __self_0_1 } => - Subscription{endpoint: - ::core::clone::Clone::clone(&(*__self_0_0)), - keys: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Subscription { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Subscription { - #[inline] - fn eq(&self, other: &Subscription) -> bool { - match *other { - Subscription { - endpoint: ref __self_1_0, keys: ref __self_1_1 } => - match *self { - Subscription { - endpoint: ref __self_0_0, keys: ref __self_0_1 } - => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Subscription) -> bool { - match *other { - Subscription { - endpoint: ref __self_1_0, keys: ref __self_1_1 } => - match *self { - Subscription { - endpoint: ref __self_0_0, keys: ref __self_0_1 } - => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Subscription: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Subscription { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Subscription", - false - as - usize - + - 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "endpoint", - &self.endpoint) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "keys", - &self.keys) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Subscription { - #[inline] - fn default() -> Subscription { - Subscription{endpoint: - ::core::default::Default::default(), - keys: ::core::default::Default::default(),} - } - } - pub(crate) struct Keys { - pub(crate) p256dh: String, - pub(crate) auth: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Keys { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Keys { p256dh: ref __self_0_0, auth: ref __self_0_1 } - => { - let mut debug_trait_builder = - f.debug_struct("Keys"); - let _ = - debug_trait_builder.field("p256dh", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("auth", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Keys { - #[inline] - fn clone(&self) -> Keys { - match *self { - Keys { p256dh: ref __self_0_0, auth: ref __self_0_1 } - => - Keys{p256dh: - ::core::clone::Clone::clone(&(*__self_0_0)), - auth: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Keys { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Keys { - #[inline] - fn eq(&self, other: &Keys) -> bool { - match *other { - Keys { p256dh: ref __self_1_0, auth: ref __self_1_1 } - => - match *self { - Keys { - p256dh: ref __self_0_0, auth: ref __self_0_1 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Keys) -> bool { - match *other { - Keys { p256dh: ref __self_1_0, auth: ref __self_1_1 } - => - match *self { - Keys { - p256dh: ref __self_0_0, auth: ref __self_0_1 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Keys: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Keys { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Keys", - false - as - usize - + - 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "p256dh", - &self.p256dh) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "auth", - &self.auth) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Keys { - #[inline] - fn default() -> Keys { - Keys{p256dh: ::core::default::Default::default(), - auth: ::core::default::Default::default(),} - } - } - pub(crate) struct Data { - pub(crate) alerts: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Data { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Data { alerts: ref __self_0_0 } => { - let mut debug_trait_builder = - f.debug_struct("Data"); - let _ = - debug_trait_builder.field("alerts", - &&(*__self_0_0)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Data { - #[inline] - fn clone(&self) -> Data { - match *self { - Data { alerts: ref __self_0_0 } => - Data{alerts: - ::core::clone::Clone::clone(&(*__self_0_0)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Data { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Data { - #[inline] - fn eq(&self, other: &Data) -> bool { - match *other { - Data { alerts: ref __self_1_0 } => - match *self { - Data { alerts: ref __self_0_0 } => - (*__self_0_0) == (*__self_1_0), - }, - } - } - #[inline] - fn ne(&self, other: &Data) -> bool { - match *other { - Data { alerts: ref __self_1_0 } => - match *self { - Data { alerts: ref __self_0_0 } => - (*__self_0_0) != (*__self_1_0), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Data { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false - as - usize - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "alerts", - &self.alerts) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Data { - #[inline] - fn default() -> Data { - Data{alerts: ::core::default::Default::default(),} - } - } - } - pub(crate) mod update_data { - use super::Alerts; - pub(crate) struct Data { - pub(crate) alerts: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Data { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Data { alerts: ref __self_0_0 } => { - let mut debug_trait_builder = - f.debug_struct("Data"); - let _ = - debug_trait_builder.field("alerts", - &&(*__self_0_0)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Data { - #[inline] - fn clone(&self) -> Data { - match *self { - Data { alerts: ref __self_0_0 } => - Data{alerts: - ::core::clone::Clone::clone(&(*__self_0_0)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Data { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Data { - #[inline] - fn eq(&self, other: &Data) -> bool { - match *other { - Data { alerts: ref __self_1_0 } => - match *self { - Data { alerts: ref __self_0_0 } => - (*__self_0_0) == (*__self_1_0), - }, - } - } - #[inline] - fn ne(&self, other: &Data) -> bool { - match *other { - Data { alerts: ref __self_1_0 } => - match *self { - Data { alerts: ref __self_0_0 } => - (*__self_0_0) != (*__self_1_0), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Data { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false - as - usize - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "alerts", - &self.alerts) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Data { - #[inline] - fn default() -> Data { - Data{alerts: ::core::default::Default::default(),} - } - } - pub(crate) struct Form { - pub(crate) id: String, - pub(crate) data: Data, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Form { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Form { id: ref __self_0_0, data: ref __self_0_1 } => { - let mut debug_trait_builder = - f.debug_struct("Form"); - let _ = - debug_trait_builder.field("id", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("data", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Form { - #[inline] - fn clone(&self) -> Form { - match *self { - Form { id: ref __self_0_0, data: ref __self_0_1 } => - Form{id: ::core::clone::Clone::clone(&(*__self_0_0)), - data: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Form { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Form { - #[inline] - fn eq(&self, other: &Form) -> bool { - match *other { - Form { id: ref __self_1_0, data: ref __self_1_1 } => - match *self { - Form { id: ref __self_0_0, data: ref __self_0_1 } - => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Form) -> bool { - match *other { - Form { id: ref __self_1_0, data: ref __self_1_1 } => - match *self { - Form { id: ref __self_0_0, data: ref __self_0_1 } - => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Form: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde - :: export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Form { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Form", - false - as - usize - + - 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "id", - &self.id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "data", - &self.data) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Form { - #[inline] - fn default() -> Form { - Form{id: ::core::default::Default::default(), - data: ::core::default::Default::default(),} - } - } - } - } - /// Data structures for ser/de of relationship-related resources - pub mod relationship { - //! module containing everything relating to a relationship with - //! another account. - /// A struct containing information about a relationship with another account. - pub struct Relationship { - /// Target account id - pub id: String, - /// Whether the application client follows the account. - pub following: bool, - /// Whether the account follows the application client. - pub followed_by: bool, - /// Whether the application client blocks the account. - pub blocking: bool, - /// Whether the application client blocks the account. - pub muting: bool, - /// Whether the application client has requested to follow the account. - pub requested: bool, - /// Whether the user is also muting notifications - pub muting_notifications: bool, - /// Whether the user is currently blocking the accounts's domain - pub domain_blocking: bool, - /// Whether the user's reblogs will show up in the home timeline - pub showing_reblogs: bool, - /// Whether the user is currently endorsing the account - /// - /// This field is not techincally nullable with mastodon >= 2.5.0, but - /// making it `Option` here means we shouldn't get deser errors when - /// making calls to pleroma or mastodon<2.5.0 instances - pub endorsed: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Relationship { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Relationship { - id: ref __self_0_0, - following: ref __self_0_1, - followed_by: ref __self_0_2, - blocking: ref __self_0_3, - muting: ref __self_0_4, - requested: ref __self_0_5, - muting_notifications: ref __self_0_6, - domain_blocking: ref __self_0_7, - showing_reblogs: ref __self_0_8, - endorsed: ref __self_0_9 } => { - let mut debug_trait_builder = - f.debug_struct("Relationship"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("following", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("followed_by", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("blocking", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("muting", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("requested", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("muting_notifications", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("domain_blocking", - &&(*__self_0_7)); - let _ = - debug_trait_builder.field("showing_reblogs", - &&(*__self_0_8)); - let _ = - debug_trait_builder.field("endorsed", - &&(*__self_0_9)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Relationship { - #[inline] - fn clone(&self) -> Relationship { - match *self { - Relationship { - id: ref __self_0_0, - following: ref __self_0_1, - followed_by: ref __self_0_2, - blocking: ref __self_0_3, - muting: ref __self_0_4, - requested: ref __self_0_5, - muting_notifications: ref __self_0_6, - domain_blocking: ref __self_0_7, - showing_reblogs: ref __self_0_8, - endorsed: ref __self_0_9 } => - Relationship{id: - ::core::clone::Clone::clone(&(*__self_0_0)), - following: - ::core::clone::Clone::clone(&(*__self_0_1)), - followed_by: - ::core::clone::Clone::clone(&(*__self_0_2)), - blocking: - ::core::clone::Clone::clone(&(*__self_0_3)), - muting: - ::core::clone::Clone::clone(&(*__self_0_4)), - requested: - ::core::clone::Clone::clone(&(*__self_0_5)), - muting_notifications: - ::core::clone::Clone::clone(&(*__self_0_6)), - domain_blocking: - ::core::clone::Clone::clone(&(*__self_0_7)), - showing_reblogs: - ::core::clone::Clone::clone(&(*__self_0_8)), - endorsed: - ::core::clone::Clone::clone(&(*__self_0_9)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Relationship: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Relationship { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __field6, - __field7, - __field8, - __field9, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - 6u64 => - _serde::export::Ok(__Field::__field6), - 7u64 => - _serde::export::Ok(__Field::__field7), - 8u64 => - _serde::export::Ok(__Field::__field8), - 9u64 => - _serde::export::Ok(__Field::__field9), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 10")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "following" => - _serde::export::Ok(__Field::__field1), - "followed_by" => - _serde::export::Ok(__Field::__field2), - "blocking" => - _serde::export::Ok(__Field::__field3), - "muting" => - _serde::export::Ok(__Field::__field4), - "requested" => - _serde::export::Ok(__Field::__field5), - "muting_notifications" => - _serde::export::Ok(__Field::__field6), - "domain_blocking" => - _serde::export::Ok(__Field::__field7), - "showing_reblogs" => - _serde::export::Ok(__Field::__field8), - "endorsed" => - _serde::export::Ok(__Field::__field9), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"following" => - _serde::export::Ok(__Field::__field1), - b"followed_by" => - _serde::export::Ok(__Field::__field2), - b"blocking" => - _serde::export::Ok(__Field::__field3), - b"muting" => - _serde::export::Ok(__Field::__field4), - b"requested" => - _serde::export::Ok(__Field::__field5), - b"muting_notifications" => - _serde::export::Ok(__Field::__field6), - b"domain_blocking" => - _serde::export::Ok(__Field::__field7), - b"showing_reblogs" => - _serde::export::Ok(__Field::__field8), - b"endorsed" => - _serde::export::Ok(__Field::__field9), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Relationship; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Relationship") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Relationship with 10 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Relationship with 10 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Relationship with 10 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Relationship with 10 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Relationship with 10 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Relationship with 10 elements")); - } - }; - let __field6 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(6usize, - &"struct Relationship with 10 elements")); - } - }; - let __field7 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(7usize, - &"struct Relationship with 10 elements")); - } - }; - let __field8 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(8usize, - &"struct Relationship with 10 elements")); - } - }; - let __field9 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(9usize, - &"struct Relationship with 10 elements")); - } - }; - _serde::export::Ok(Relationship{id: __field0, - following: - __field1, - followed_by: - __field2, - blocking: - __field3, - muting: - __field4, - requested: - __field5, - muting_notifications: - __field6, - domain_blocking: - __field7, - showing_reblogs: - __field8, - endorsed: - __field9,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option = - _serde::export::None; - let mut __field4: - _serde::export::Option = - _serde::export::None; - let mut __field5: - _serde::export::Option = - _serde::export::None; - let mut __field6: - _serde::export::Option = - _serde::export::None; - let mut __field7: - _serde::export::Option = - _serde::export::None; - let mut __field8: - _serde::export::Option = - _serde::export::None; - let mut __field9: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("following")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("followed_by")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("blocking")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("muting")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("requested")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field6 => { - if _serde::export::Option::is_some(&__field6) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("muting_notifications")); - } - __field6 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field7 => { - if _serde::export::Option::is_some(&__field7) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("domain_blocking")); - } - __field7 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field8 => { - if _serde::export::Option::is_some(&__field8) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("showing_reblogs")); - } - __field8 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field9 => { - if _serde::export::Option::is_some(&__field9) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("endorsed")); - } - __field9 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("following") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("followed_by") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("blocking") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("muting") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("requested") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field6 = - match __field6 { - _serde::export::Some(__field6) => - __field6, - _serde::export::None => - match _serde::private::de::missing_field("muting_notifications") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field7 = - match __field7 { - _serde::export::Some(__field7) => - __field7, - _serde::export::None => - match _serde::private::de::missing_field("domain_blocking") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field8 = - match __field8 { - _serde::export::Some(__field8) => - __field8, - _serde::export::None => - match _serde::private::de::missing_field("showing_reblogs") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field9 = - match __field9 { - _serde::export::Some(__field9) => - __field9, - _serde::export::None => - match _serde::private::de::missing_field("endorsed") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Relationship{id: __field0, - following: - __field1, - followed_by: - __field2, - blocking: - __field3, - muting: - __field4, - requested: - __field5, - muting_notifications: - __field6, - domain_blocking: - __field7, - showing_reblogs: - __field8, - endorsed: - __field9,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "following", "followed_by", "blocking", - "muting", "requested", "muting_notifications", - "domain_blocking", "showing_reblogs", - "endorsed"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Relationship", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Relationship { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Relationship { - #[inline] - fn eq(&self, other: &Relationship) -> bool { - match *other { - Relationship { - id: ref __self_1_0, - following: ref __self_1_1, - followed_by: ref __self_1_2, - blocking: ref __self_1_3, - muting: ref __self_1_4, - requested: ref __self_1_5, - muting_notifications: ref __self_1_6, - domain_blocking: ref __self_1_7, - showing_reblogs: ref __self_1_8, - endorsed: ref __self_1_9 } => - match *self { - Relationship { - id: ref __self_0_0, - following: ref __self_0_1, - followed_by: ref __self_0_2, - blocking: ref __self_0_3, - muting: ref __self_0_4, - requested: ref __self_0_5, - muting_notifications: ref __self_0_6, - domain_blocking: ref __self_0_7, - showing_reblogs: ref __self_0_8, - endorsed: ref __self_0_9 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7) && - (*__self_0_8) == (*__self_1_8) && - (*__self_0_9) == (*__self_1_9), - }, - } - } - #[inline] - fn ne(&self, other: &Relationship) -> bool { - match *other { - Relationship { - id: ref __self_1_0, - following: ref __self_1_1, - followed_by: ref __self_1_2, - blocking: ref __self_1_3, - muting: ref __self_1_4, - requested: ref __self_1_5, - muting_notifications: ref __self_1_6, - domain_blocking: ref __self_1_7, - showing_reblogs: ref __self_1_8, - endorsed: ref __self_1_9 } => - match *self { - Relationship { - id: ref __self_0_0, - following: ref __self_0_1, - followed_by: ref __self_0_2, - blocking: ref __self_0_3, - muting: ref __self_0_4, - requested: ref __self_0_5, - muting_notifications: ref __self_0_6, - domain_blocking: ref __self_0_7, - showing_reblogs: ref __self_0_8, - endorsed: ref __self_0_9 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7) || - (*__self_0_8) != (*__self_1_8) || - (*__self_0_9) != (*__self_1_9), - }, - } - } - } - } - /// Data structures for ser/de of report-related resources - pub mod report { - //! module containing information about a finished report of a user. - /// A struct containing info about a report. - pub struct Report { - /// The ID of the report. - pub id: String, - /// The action taken in response to the report. - pub action_taken: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Report { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Report { id: ref __self_0_0, action_taken: ref __self_0_1 - } => { - let mut debug_trait_builder = - f.debug_struct("Report"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("action_taken", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Report { - #[inline] - fn clone(&self) -> Report { - match *self { - Report { id: ref __self_0_0, action_taken: ref __self_0_1 - } => - Report{id: ::core::clone::Clone::clone(&(*__self_0_0)), - action_taken: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Report: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Report { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "action_taken" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"action_taken" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Report; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Report") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Report with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Report with 2 elements")); - } - }; - _serde::export::Ok(Report{id: __field0, - action_taken: - __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("action_taken")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("action_taken") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Report{id: __field0, - action_taken: - __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "action_taken"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Report", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Report { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Report { - #[inline] - fn eq(&self, other: &Report) -> bool { - match *other { - Report { id: ref __self_1_0, action_taken: ref __self_1_1 - } => - match *self { - Report { - id: ref __self_0_0, action_taken: ref __self_0_1 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Report) -> bool { - match *other { - Report { id: ref __self_1_0, action_taken: ref __self_1_1 - } => - match *self { - Report { - id: ref __self_0_0, action_taken: ref __self_0_1 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - } - /// Data structures for ser/de of search-related resources - pub mod search_result { - //! A module containing info relating to a search result. - use super::{prelude::{Account, Status}, status::Tag}; - /// A struct containing results of a search. - pub struct SearchResult { - /// An array of matched Accounts. - pub accounts: Vec, - /// An array of matched Statuses. - pub statuses: Vec, - /// An array of matched hashtags, as strings. - pub hashtags: Vec, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for SearchResult { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - SearchResult { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => { - let mut debug_trait_builder = - f.debug_struct("SearchResult"); - let _ = - debug_trait_builder.field("accounts", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("statuses", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("hashtags", - &&(*__self_0_2)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for SearchResult { - #[inline] - fn clone(&self) -> SearchResult { - match *self { - SearchResult { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => - SearchResult{accounts: - ::core::clone::Clone::clone(&(*__self_0_0)), - statuses: - ::core::clone::Clone::clone(&(*__self_0_1)), - hashtags: - ::core::clone::Clone::clone(&(*__self_0_2)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_SearchResult: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for SearchResult { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 3")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "accounts" => - _serde::export::Ok(__Field::__field0), - "statuses" => - _serde::export::Ok(__Field::__field1), - "hashtags" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"accounts" => - _serde::export::Ok(__Field::__field0), - b"statuses" => - _serde::export::Ok(__Field::__field1), - b"hashtags" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = SearchResult; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct SearchResult") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct SearchResult with 3 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct SearchResult with 3 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct SearchResult with 3 elements")); - } - }; - _serde::export::Ok(SearchResult{accounts: - __field0, - statuses: - __field1, - hashtags: - __field2,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("accounts")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("statuses")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("hashtags")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("accounts") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("statuses") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("hashtags") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(SearchResult{accounts: - __field0, - statuses: - __field1, - hashtags: - __field2,}) - } - } - const FIELDS: &'static [&'static str] = - &["accounts", "statuses", "hashtags"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "SearchResult", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for SearchResult { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for SearchResult { - #[inline] - fn eq(&self, other: &SearchResult) -> bool { - match *other { - SearchResult { - accounts: ref __self_1_0, - statuses: ref __self_1_1, - hashtags: ref __self_1_2 } => - match *self { - SearchResult { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2), - }, - } - } - #[inline] - fn ne(&self, other: &SearchResult) -> bool { - match *other { - SearchResult { - accounts: ref __self_1_0, - statuses: ref __self_1_1, - hashtags: ref __self_1_2 } => - match *self { - SearchResult { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2), - }, - } - } - } - /// A struct containing results of a search, with `Tag` objects in the - /// `hashtags` field - pub struct SearchResultV2 { - /// An array of matched Accounts. - pub accounts: Vec, - /// An array of matched Statuses. - pub statuses: Vec, - /// An array of matched hashtags, as `Tag` objects. - pub hashtags: Vec, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for SearchResultV2 { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - SearchResultV2 { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => { - let mut debug_trait_builder = - f.debug_struct("SearchResultV2"); - let _ = - debug_trait_builder.field("accounts", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("statuses", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("hashtags", - &&(*__self_0_2)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for SearchResultV2 { - #[inline] - fn clone(&self) -> SearchResultV2 { - match *self { - SearchResultV2 { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => - SearchResultV2{accounts: - ::core::clone::Clone::clone(&(*__self_0_0)), - statuses: - ::core::clone::Clone::clone(&(*__self_0_1)), - hashtags: - ::core::clone::Clone::clone(&(*__self_0_2)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_SearchResultV2: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for SearchResultV2 { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 3")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "accounts" => - _serde::export::Ok(__Field::__field0), - "statuses" => - _serde::export::Ok(__Field::__field1), - "hashtags" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"accounts" => - _serde::export::Ok(__Field::__field0), - b"statuses" => - _serde::export::Ok(__Field::__field1), - b"hashtags" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = SearchResultV2; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct SearchResultV2") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct SearchResultV2 with 3 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct SearchResultV2 with 3 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct SearchResultV2 with 3 elements")); - } - }; - _serde::export::Ok(SearchResultV2{accounts: - __field0, - statuses: - __field1, - hashtags: - __field2,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("accounts")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("statuses")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("hashtags")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("accounts") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("statuses") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("hashtags") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(SearchResultV2{accounts: - __field0, - statuses: - __field1, - hashtags: - __field2,}) - } - } - const FIELDS: &'static [&'static str] = - &["accounts", "statuses", "hashtags"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "SearchResultV2", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for SearchResultV2 { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for SearchResultV2 { - #[inline] - fn eq(&self, other: &SearchResultV2) -> bool { - match *other { - SearchResultV2 { - accounts: ref __self_1_0, - statuses: ref __self_1_1, - hashtags: ref __self_1_2 } => - match *self { - SearchResultV2 { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2), - }, - } - } - #[inline] - fn ne(&self, other: &SearchResultV2) -> bool { - match *other { - SearchResultV2 { - accounts: ref __self_1_0, - statuses: ref __self_1_1, - hashtags: ref __self_1_2 } => - match *self { - SearchResultV2 { - accounts: ref __self_0_0, - statuses: ref __self_0_1, - hashtags: ref __self_0_2 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2), - }, - } - } - } - } - /// Data structures for ser/de of status-related resources - pub mod status { - //! Module containing all info relating to a status. - use super::prelude::*; - use chrono::prelude::*; - use crate::entities::card::Card; - use crate::status_builder::Visibility; - /// A status from the instance. - pub struct Status { - /// The ID of the status. - pub id: String, - /// A Fediverse-unique resource ID. - pub uri: String, - /// URL to the status page (can be remote) - pub url: Option, - /// The Account which posted the status. - pub account: Account, - /// The ID of the status this status is replying to, if the status is - /// a reply. - pub in_reply_to_id: Option, - /// The ID of the account this status is replying to, if the status is - /// a reply. - pub in_reply_to_account_id: Option, - /// If this status is a reblogged Status of another User. - pub reblog: Option>, - /// Body of the status; this will contain HTML - /// (remote HTML already sanitized) - pub content: String, - /// The time the status was created. - pub created_at: DateTime, - /// An array of Emoji - pub emojis: Vec, - /// The numbef or replies to this status. - pub replies_count: Option, - /// The number of reblogs for the status. - pub reblogs_count: u64, - /// The number of favourites for the status. - pub favourites_count: u64, - /// Whether the application client has reblogged the status. - pub reblogged: Option, - /// Whether the application client has favourited the status. - pub favourited: Option, - /// Whether media attachments should be hidden by default. - pub sensitive: bool, - /// If not empty, warning text that should be displayed before the actual - /// content. - pub spoiler_text: String, - /// The visibilty of the status. - pub visibility: Visibility, - /// An array of attachments. - pub media_attachments: Vec, - /// An array of mentions. - pub mentions: Vec, - /// An array of tags. - pub tags: Vec, - /// The associated card - pub card: Option, - /// Name of application used to post status. - pub application: Option, - /// The detected language for the status, if detected. - pub language: Option, - /// Whether this is the pinned status for the account that posted it. - pub pinned: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Status { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Status { - id: ref __self_0_0, - uri: ref __self_0_1, - url: ref __self_0_2, - account: ref __self_0_3, - in_reply_to_id: ref __self_0_4, - in_reply_to_account_id: ref __self_0_5, - reblog: ref __self_0_6, - content: ref __self_0_7, - created_at: ref __self_0_8, - emojis: ref __self_0_9, - replies_count: ref __self_0_10, - reblogs_count: ref __self_0_11, - favourites_count: ref __self_0_12, - reblogged: ref __self_0_13, - favourited: ref __self_0_14, - sensitive: ref __self_0_15, - spoiler_text: ref __self_0_16, - visibility: ref __self_0_17, - media_attachments: ref __self_0_18, - mentions: ref __self_0_19, - tags: ref __self_0_20, - card: ref __self_0_21, - application: ref __self_0_22, - language: ref __self_0_23, - pinned: ref __self_0_24 } => { - let mut debug_trait_builder = - f.debug_struct("Status"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("uri", &&(*__self_0_1)); - let _ = - debug_trait_builder.field("url", &&(*__self_0_2)); - let _ = - debug_trait_builder.field("account", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("in_reply_to_id", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("in_reply_to_account_id", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("reblog", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("content", - &&(*__self_0_7)); - let _ = - debug_trait_builder.field("created_at", - &&(*__self_0_8)); - let _ = - debug_trait_builder.field("emojis", - &&(*__self_0_9)); - let _ = - debug_trait_builder.field("replies_count", - &&(*__self_0_10)); - let _ = - debug_trait_builder.field("reblogs_count", - &&(*__self_0_11)); - let _ = - debug_trait_builder.field("favourites_count", - &&(*__self_0_12)); - let _ = - debug_trait_builder.field("reblogged", - &&(*__self_0_13)); - let _ = - debug_trait_builder.field("favourited", - &&(*__self_0_14)); - let _ = - debug_trait_builder.field("sensitive", - &&(*__self_0_15)); - let _ = - debug_trait_builder.field("spoiler_text", - &&(*__self_0_16)); - let _ = - debug_trait_builder.field("visibility", - &&(*__self_0_17)); - let _ = - debug_trait_builder.field("media_attachments", - &&(*__self_0_18)); - let _ = - debug_trait_builder.field("mentions", - &&(*__self_0_19)); - let _ = - debug_trait_builder.field("tags", - &&(*__self_0_20)); - let _ = - debug_trait_builder.field("card", - &&(*__self_0_21)); - let _ = - debug_trait_builder.field("application", - &&(*__self_0_22)); - let _ = - debug_trait_builder.field("language", - &&(*__self_0_23)); - let _ = - debug_trait_builder.field("pinned", - &&(*__self_0_24)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Status { - #[inline] - fn clone(&self) -> Status { - match *self { - Status { - id: ref __self_0_0, - uri: ref __self_0_1, - url: ref __self_0_2, - account: ref __self_0_3, - in_reply_to_id: ref __self_0_4, - in_reply_to_account_id: ref __self_0_5, - reblog: ref __self_0_6, - content: ref __self_0_7, - created_at: ref __self_0_8, - emojis: ref __self_0_9, - replies_count: ref __self_0_10, - reblogs_count: ref __self_0_11, - favourites_count: ref __self_0_12, - reblogged: ref __self_0_13, - favourited: ref __self_0_14, - sensitive: ref __self_0_15, - spoiler_text: ref __self_0_16, - visibility: ref __self_0_17, - media_attachments: ref __self_0_18, - mentions: ref __self_0_19, - tags: ref __self_0_20, - card: ref __self_0_21, - application: ref __self_0_22, - language: ref __self_0_23, - pinned: ref __self_0_24 } => - Status{id: ::core::clone::Clone::clone(&(*__self_0_0)), - uri: ::core::clone::Clone::clone(&(*__self_0_1)), - url: ::core::clone::Clone::clone(&(*__self_0_2)), - account: - ::core::clone::Clone::clone(&(*__self_0_3)), - in_reply_to_id: - ::core::clone::Clone::clone(&(*__self_0_4)), - in_reply_to_account_id: - ::core::clone::Clone::clone(&(*__self_0_5)), - reblog: - ::core::clone::Clone::clone(&(*__self_0_6)), - content: - ::core::clone::Clone::clone(&(*__self_0_7)), - created_at: - ::core::clone::Clone::clone(&(*__self_0_8)), - emojis: - ::core::clone::Clone::clone(&(*__self_0_9)), - replies_count: - ::core::clone::Clone::clone(&(*__self_0_10)), - reblogs_count: - ::core::clone::Clone::clone(&(*__self_0_11)), - favourites_count: - ::core::clone::Clone::clone(&(*__self_0_12)), - reblogged: - ::core::clone::Clone::clone(&(*__self_0_13)), - favourited: - ::core::clone::Clone::clone(&(*__self_0_14)), - sensitive: - ::core::clone::Clone::clone(&(*__self_0_15)), - spoiler_text: - ::core::clone::Clone::clone(&(*__self_0_16)), - visibility: - ::core::clone::Clone::clone(&(*__self_0_17)), - media_attachments: - ::core::clone::Clone::clone(&(*__self_0_18)), - mentions: - ::core::clone::Clone::clone(&(*__self_0_19)), - tags: ::core::clone::Clone::clone(&(*__self_0_20)), - card: ::core::clone::Clone::clone(&(*__self_0_21)), - application: - ::core::clone::Clone::clone(&(*__self_0_22)), - language: - ::core::clone::Clone::clone(&(*__self_0_23)), - pinned: - ::core::clone::Clone::clone(&(*__self_0_24)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Status: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Status { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __field4, - __field5, - __field6, - __field7, - __field8, - __field9, - __field10, - __field11, - __field12, - __field13, - __field14, - __field15, - __field16, - __field17, - __field18, - __field19, - __field20, - __field21, - __field22, - __field23, - __field24, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - 4u64 => - _serde::export::Ok(__Field::__field4), - 5u64 => - _serde::export::Ok(__Field::__field5), - 6u64 => - _serde::export::Ok(__Field::__field6), - 7u64 => - _serde::export::Ok(__Field::__field7), - 8u64 => - _serde::export::Ok(__Field::__field8), - 9u64 => - _serde::export::Ok(__Field::__field9), - 10u64 => - _serde::export::Ok(__Field::__field10), - 11u64 => - _serde::export::Ok(__Field::__field11), - 12u64 => - _serde::export::Ok(__Field::__field12), - 13u64 => - _serde::export::Ok(__Field::__field13), - 14u64 => - _serde::export::Ok(__Field::__field14), - 15u64 => - _serde::export::Ok(__Field::__field15), - 16u64 => - _serde::export::Ok(__Field::__field16), - 17u64 => - _serde::export::Ok(__Field::__field17), - 18u64 => - _serde::export::Ok(__Field::__field18), - 19u64 => - _serde::export::Ok(__Field::__field19), - 20u64 => - _serde::export::Ok(__Field::__field20), - 21u64 => - _serde::export::Ok(__Field::__field21), - 22u64 => - _serde::export::Ok(__Field::__field22), - 23u64 => - _serde::export::Ok(__Field::__field23), - 24u64 => - _serde::export::Ok(__Field::__field24), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 25")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "id" => - _serde::export::Ok(__Field::__field0), - "uri" => - _serde::export::Ok(__Field::__field1), - "url" => - _serde::export::Ok(__Field::__field2), - "account" => - _serde::export::Ok(__Field::__field3), - "in_reply_to_id" => - _serde::export::Ok(__Field::__field4), - "in_reply_to_account_id" => - _serde::export::Ok(__Field::__field5), - "reblog" => - _serde::export::Ok(__Field::__field6), - "content" => - _serde::export::Ok(__Field::__field7), - "created_at" => - _serde::export::Ok(__Field::__field8), - "emojis" => - _serde::export::Ok(__Field::__field9), - "replies_count" => - _serde::export::Ok(__Field::__field10), - "reblogs_count" => - _serde::export::Ok(__Field::__field11), - "favourites_count" => - _serde::export::Ok(__Field::__field12), - "reblogged" => - _serde::export::Ok(__Field::__field13), - "favourited" => - _serde::export::Ok(__Field::__field14), - "sensitive" => - _serde::export::Ok(__Field::__field15), - "spoiler_text" => - _serde::export::Ok(__Field::__field16), - "visibility" => - _serde::export::Ok(__Field::__field17), - "media_attachments" => - _serde::export::Ok(__Field::__field18), - "mentions" => - _serde::export::Ok(__Field::__field19), - "tags" => - _serde::export::Ok(__Field::__field20), - "card" => - _serde::export::Ok(__Field::__field21), - "application" => - _serde::export::Ok(__Field::__field22), - "language" => - _serde::export::Ok(__Field::__field23), - "pinned" => - _serde::export::Ok(__Field::__field24), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"id" => - _serde::export::Ok(__Field::__field0), - b"uri" => - _serde::export::Ok(__Field::__field1), - b"url" => - _serde::export::Ok(__Field::__field2), - b"account" => - _serde::export::Ok(__Field::__field3), - b"in_reply_to_id" => - _serde::export::Ok(__Field::__field4), - b"in_reply_to_account_id" => - _serde::export::Ok(__Field::__field5), - b"reblog" => - _serde::export::Ok(__Field::__field6), - b"content" => - _serde::export::Ok(__Field::__field7), - b"created_at" => - _serde::export::Ok(__Field::__field8), - b"emojis" => - _serde::export::Ok(__Field::__field9), - b"replies_count" => - _serde::export::Ok(__Field::__field10), - b"reblogs_count" => - _serde::export::Ok(__Field::__field11), - b"favourites_count" => - _serde::export::Ok(__Field::__field12), - b"reblogged" => - _serde::export::Ok(__Field::__field13), - b"favourited" => - _serde::export::Ok(__Field::__field14), - b"sensitive" => - _serde::export::Ok(__Field::__field15), - b"spoiler_text" => - _serde::export::Ok(__Field::__field16), - b"visibility" => - _serde::export::Ok(__Field::__field17), - b"media_attachments" => - _serde::export::Ok(__Field::__field18), - b"mentions" => - _serde::export::Ok(__Field::__field19), - b"tags" => - _serde::export::Ok(__Field::__field20), - b"card" => - _serde::export::Ok(__Field::__field21), - b"application" => - _serde::export::Ok(__Field::__field22), - b"language" => - _serde::export::Ok(__Field::__field23), - b"pinned" => - _serde::export::Ok(__Field::__field24), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Status; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Status") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Status with 25 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Status with 25 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Status with 25 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Status with 25 elements")); - } - }; - let __field4 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(4usize, - &"struct Status with 25 elements")); - } - }; - let __field5 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(5usize, - &"struct Status with 25 elements")); - } - }; - let __field6 = - match match _serde::de::SeqAccess::next_element::>>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(6usize, - &"struct Status with 25 elements")); - } - }; - let __field7 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(7usize, - &"struct Status with 25 elements")); - } - }; - let __field8 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(8usize, - &"struct Status with 25 elements")); - } - }; - let __field9 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(9usize, - &"struct Status with 25 elements")); - } - }; - let __field10 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(10usize, - &"struct Status with 25 elements")); - } - }; - let __field11 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(11usize, - &"struct Status with 25 elements")); - } - }; - let __field12 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(12usize, - &"struct Status with 25 elements")); - } - }; - let __field13 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(13usize, - &"struct Status with 25 elements")); - } - }; - let __field14 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(14usize, - &"struct Status with 25 elements")); - } - }; - let __field15 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(15usize, - &"struct Status with 25 elements")); - } - }; - let __field16 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(16usize, - &"struct Status with 25 elements")); - } - }; - let __field17 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(17usize, - &"struct Status with 25 elements")); - } - }; - let __field18 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(18usize, - &"struct Status with 25 elements")); - } - }; - let __field19 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(19usize, - &"struct Status with 25 elements")); - } - }; - let __field20 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(20usize, - &"struct Status with 25 elements")); - } - }; - let __field21 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(21usize, - &"struct Status with 25 elements")); - } - }; - let __field22 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(22usize, - &"struct Status with 25 elements")); - } - }; - let __field23 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(23usize, - &"struct Status with 25 elements")); - } - }; - let __field24 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(24usize, - &"struct Status with 25 elements")); - } - }; - _serde::export::Ok(Status{id: __field0, - uri: __field1, - url: __field2, - account: __field3, - in_reply_to_id: - __field4, - in_reply_to_account_id: - __field5, - reblog: __field6, - content: __field7, - created_at: - __field8, - emojis: __field9, - replies_count: - __field10, - reblogs_count: - __field11, - favourites_count: - __field12, - reblogged: - __field13, - favourited: - __field14, - sensitive: - __field15, - spoiler_text: - __field16, - visibility: - __field17, - media_attachments: - __field18, - mentions: __field19, - tags: __field20, - card: __field21, - application: - __field22, - language: __field23, - pinned: __field24,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option> = - _serde::export::None; - let mut __field3: - _serde::export::Option = - _serde::export::None; - let mut __field4: - _serde::export::Option> = - _serde::export::None; - let mut __field5: - _serde::export::Option> = - _serde::export::None; - let mut __field6: - _serde::export::Option>> = - _serde::export::None; - let mut __field7: - _serde::export::Option = - _serde::export::None; - let mut __field8: - _serde::export::Option> = - _serde::export::None; - let mut __field9: - _serde::export::Option> = - _serde::export::None; - let mut __field10: - _serde::export::Option> = - _serde::export::None; - let mut __field11: - _serde::export::Option = - _serde::export::None; - let mut __field12: - _serde::export::Option = - _serde::export::None; - let mut __field13: - _serde::export::Option> = - _serde::export::None; - let mut __field14: - _serde::export::Option> = - _serde::export::None; - let mut __field15: - _serde::export::Option = - _serde::export::None; - let mut __field16: - _serde::export::Option = - _serde::export::None; - let mut __field17: - _serde::export::Option = - _serde::export::None; - let mut __field18: - _serde::export::Option> = - _serde::export::None; - let mut __field19: - _serde::export::Option> = - _serde::export::None; - let mut __field20: - _serde::export::Option> = - _serde::export::None; - let mut __field21: - _serde::export::Option> = - _serde::export::None; - let mut __field22: - _serde::export::Option> = - _serde::export::None; - let mut __field23: - _serde::export::Option> = - _serde::export::None; - let mut __field24: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("uri")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("account")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field4 => { - if _serde::export::Option::is_some(&__field4) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("in_reply_to_id")); - } - __field4 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field5 => { - if _serde::export::Option::is_some(&__field5) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("in_reply_to_account_id")); - } - __field5 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field6 => { - if _serde::export::Option::is_some(&__field6) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("reblog")); - } - __field6 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field7 => { - if _serde::export::Option::is_some(&__field7) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("content")); - } - __field7 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field8 => { - if _serde::export::Option::is_some(&__field8) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("created_at")); - } - __field8 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field9 => { - if _serde::export::Option::is_some(&__field9) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("emojis")); - } - __field9 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field10 => { - if _serde::export::Option::is_some(&__field10) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("replies_count")); - } - __field10 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field11 => { - if _serde::export::Option::is_some(&__field11) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("reblogs_count")); - } - __field11 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field12 => { - if _serde::export::Option::is_some(&__field12) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("favourites_count")); - } - __field12 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field13 => { - if _serde::export::Option::is_some(&__field13) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("reblogged")); - } - __field13 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field14 => { - if _serde::export::Option::is_some(&__field14) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("favourited")); - } - __field14 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field15 => { - if _serde::export::Option::is_some(&__field15) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("sensitive")); - } - __field15 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field16 => { - if _serde::export::Option::is_some(&__field16) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("spoiler_text")); - } - __field16 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field17 => { - if _serde::export::Option::is_some(&__field17) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("visibility")); - } - __field17 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field18 => { - if _serde::export::Option::is_some(&__field18) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("media_attachments")); - } - __field18 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field19 => { - if _serde::export::Option::is_some(&__field19) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("mentions")); - } - __field19 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field20 => { - if _serde::export::Option::is_some(&__field20) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("tags")); - } - __field20 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field21 => { - if _serde::export::Option::is_some(&__field21) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("card")); - } - __field21 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field22 => { - if _serde::export::Option::is_some(&__field22) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("application")); - } - __field22 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field23 => { - if _serde::export::Option::is_some(&__field23) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("language")); - } - __field23 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field24 => { - if _serde::export::Option::is_some(&__field24) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("pinned")); - } - __field24 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("uri") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("account") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field4 = - match __field4 { - _serde::export::Some(__field4) => - __field4, - _serde::export::None => - match _serde::private::de::missing_field("in_reply_to_id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field5 = - match __field5 { - _serde::export::Some(__field5) => - __field5, - _serde::export::None => - match _serde::private::de::missing_field("in_reply_to_account_id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field6 = - match __field6 { - _serde::export::Some(__field6) => - __field6, - _serde::export::None => - match _serde::private::de::missing_field("reblog") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field7 = - match __field7 { - _serde::export::Some(__field7) => - __field7, - _serde::export::None => - match _serde::private::de::missing_field("content") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field8 = - match __field8 { - _serde::export::Some(__field8) => - __field8, - _serde::export::None => - match _serde::private::de::missing_field("created_at") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field9 = - match __field9 { - _serde::export::Some(__field9) => - __field9, - _serde::export::None => - match _serde::private::de::missing_field("emojis") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field10 = - match __field10 { - _serde::export::Some(__field10) => - __field10, - _serde::export::None => - match _serde::private::de::missing_field("replies_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field11 = - match __field11 { - _serde::export::Some(__field11) => - __field11, - _serde::export::None => - match _serde::private::de::missing_field("reblogs_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field12 = - match __field12 { - _serde::export::Some(__field12) => - __field12, - _serde::export::None => - match _serde::private::de::missing_field("favourites_count") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field13 = - match __field13 { - _serde::export::Some(__field13) => - __field13, - _serde::export::None => - match _serde::private::de::missing_field("reblogged") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field14 = - match __field14 { - _serde::export::Some(__field14) => - __field14, - _serde::export::None => - match _serde::private::de::missing_field("favourited") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field15 = - match __field15 { - _serde::export::Some(__field15) => - __field15, - _serde::export::None => - match _serde::private::de::missing_field("sensitive") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field16 = - match __field16 { - _serde::export::Some(__field16) => - __field16, - _serde::export::None => - match _serde::private::de::missing_field("spoiler_text") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field17 = - match __field17 { - _serde::export::Some(__field17) => - __field17, - _serde::export::None => - match _serde::private::de::missing_field("visibility") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field18 = - match __field18 { - _serde::export::Some(__field18) => - __field18, - _serde::export::None => - match _serde::private::de::missing_field("media_attachments") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field19 = - match __field19 { - _serde::export::Some(__field19) => - __field19, - _serde::export::None => - match _serde::private::de::missing_field("mentions") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field20 = - match __field20 { - _serde::export::Some(__field20) => - __field20, - _serde::export::None => - match _serde::private::de::missing_field("tags") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field21 = - match __field21 { - _serde::export::Some(__field21) => - __field21, - _serde::export::None => - match _serde::private::de::missing_field("card") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field22 = - match __field22 { - _serde::export::Some(__field22) => - __field22, - _serde::export::None => - match _serde::private::de::missing_field("application") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field23 = - match __field23 { - _serde::export::Some(__field23) => - __field23, - _serde::export::None => - match _serde::private::de::missing_field("language") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field24 = - match __field24 { - _serde::export::Some(__field24) => - __field24, - _serde::export::None => - match _serde::private::de::missing_field("pinned") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Status{id: __field0, - uri: __field1, - url: __field2, - account: __field3, - in_reply_to_id: - __field4, - in_reply_to_account_id: - __field5, - reblog: __field6, - content: __field7, - created_at: - __field8, - emojis: __field9, - replies_count: - __field10, - reblogs_count: - __field11, - favourites_count: - __field12, - reblogged: - __field13, - favourited: - __field14, - sensitive: - __field15, - spoiler_text: - __field16, - visibility: - __field17, - media_attachments: - __field18, - mentions: __field19, - tags: __field20, - card: __field21, - application: - __field22, - language: __field23, - pinned: __field24,}) - } - } - const FIELDS: &'static [&'static str] = - &["id", "uri", "url", "account", "in_reply_to_id", - "in_reply_to_account_id", "reblog", "content", - "created_at", "emojis", "replies_count", - "reblogs_count", "favourites_count", - "reblogged", "favourited", "sensitive", - "spoiler_text", "visibility", - "media_attachments", "mentions", "tags", "card", - "application", "language", "pinned"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Status", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Status { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Status { - #[inline] - fn eq(&self, other: &Status) -> bool { - match *other { - Status { - id: ref __self_1_0, - uri: ref __self_1_1, - url: ref __self_1_2, - account: ref __self_1_3, - in_reply_to_id: ref __self_1_4, - in_reply_to_account_id: ref __self_1_5, - reblog: ref __self_1_6, - content: ref __self_1_7, - created_at: ref __self_1_8, - emojis: ref __self_1_9, - replies_count: ref __self_1_10, - reblogs_count: ref __self_1_11, - favourites_count: ref __self_1_12, - reblogged: ref __self_1_13, - favourited: ref __self_1_14, - sensitive: ref __self_1_15, - spoiler_text: ref __self_1_16, - visibility: ref __self_1_17, - media_attachments: ref __self_1_18, - mentions: ref __self_1_19, - tags: ref __self_1_20, - card: ref __self_1_21, - application: ref __self_1_22, - language: ref __self_1_23, - pinned: ref __self_1_24 } => - match *self { - Status { - id: ref __self_0_0, - uri: ref __self_0_1, - url: ref __self_0_2, - account: ref __self_0_3, - in_reply_to_id: ref __self_0_4, - in_reply_to_account_id: ref __self_0_5, - reblog: ref __self_0_6, - content: ref __self_0_7, - created_at: ref __self_0_8, - emojis: ref __self_0_9, - replies_count: ref __self_0_10, - reblogs_count: ref __self_0_11, - favourites_count: ref __self_0_12, - reblogged: ref __self_0_13, - favourited: ref __self_0_14, - sensitive: ref __self_0_15, - spoiler_text: ref __self_0_16, - visibility: ref __self_0_17, - media_attachments: ref __self_0_18, - mentions: ref __self_0_19, - tags: ref __self_0_20, - card: ref __self_0_21, - application: ref __self_0_22, - language: ref __self_0_23, - pinned: ref __self_0_24 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7) && - (*__self_0_8) == (*__self_1_8) && - (*__self_0_9) == (*__self_1_9) && - (*__self_0_10) == (*__self_1_10) && - (*__self_0_11) == (*__self_1_11) && - (*__self_0_12) == (*__self_1_12) && - (*__self_0_13) == (*__self_1_13) && - (*__self_0_14) == (*__self_1_14) && - (*__self_0_15) == (*__self_1_15) && - (*__self_0_16) == (*__self_1_16) && - (*__self_0_17) == (*__self_1_17) && - (*__self_0_18) == (*__self_1_18) && - (*__self_0_19) == (*__self_1_19) && - (*__self_0_20) == (*__self_1_20) && - (*__self_0_21) == (*__self_1_21) && - (*__self_0_22) == (*__self_1_22) && - (*__self_0_23) == (*__self_1_23) && - (*__self_0_24) == (*__self_1_24), - }, - } - } - #[inline] - fn ne(&self, other: &Status) -> bool { - match *other { - Status { - id: ref __self_1_0, - uri: ref __self_1_1, - url: ref __self_1_2, - account: ref __self_1_3, - in_reply_to_id: ref __self_1_4, - in_reply_to_account_id: ref __self_1_5, - reblog: ref __self_1_6, - content: ref __self_1_7, - created_at: ref __self_1_8, - emojis: ref __self_1_9, - replies_count: ref __self_1_10, - reblogs_count: ref __self_1_11, - favourites_count: ref __self_1_12, - reblogged: ref __self_1_13, - favourited: ref __self_1_14, - sensitive: ref __self_1_15, - spoiler_text: ref __self_1_16, - visibility: ref __self_1_17, - media_attachments: ref __self_1_18, - mentions: ref __self_1_19, - tags: ref __self_1_20, - card: ref __self_1_21, - application: ref __self_1_22, - language: ref __self_1_23, - pinned: ref __self_1_24 } => - match *self { - Status { - id: ref __self_0_0, - uri: ref __self_0_1, - url: ref __self_0_2, - account: ref __self_0_3, - in_reply_to_id: ref __self_0_4, - in_reply_to_account_id: ref __self_0_5, - reblog: ref __self_0_6, - content: ref __self_0_7, - created_at: ref __self_0_8, - emojis: ref __self_0_9, - replies_count: ref __self_0_10, - reblogs_count: ref __self_0_11, - favourites_count: ref __self_0_12, - reblogged: ref __self_0_13, - favourited: ref __self_0_14, - sensitive: ref __self_0_15, - spoiler_text: ref __self_0_16, - visibility: ref __self_0_17, - media_attachments: ref __self_0_18, - mentions: ref __self_0_19, - tags: ref __self_0_20, - card: ref __self_0_21, - application: ref __self_0_22, - language: ref __self_0_23, - pinned: ref __self_0_24 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7) || - (*__self_0_8) != (*__self_1_8) || - (*__self_0_9) != (*__self_1_9) || - (*__self_0_10) != (*__self_1_10) || - (*__self_0_11) != (*__self_1_11) || - (*__self_0_12) != (*__self_1_12) || - (*__self_0_13) != (*__self_1_13) || - (*__self_0_14) != (*__self_1_14) || - (*__self_0_15) != (*__self_1_15) || - (*__self_0_16) != (*__self_1_16) || - (*__self_0_17) != (*__self_1_17) || - (*__self_0_18) != (*__self_1_18) || - (*__self_0_19) != (*__self_1_19) || - (*__self_0_20) != (*__self_1_20) || - (*__self_0_21) != (*__self_1_21) || - (*__self_0_22) != (*__self_1_22) || - (*__self_0_23) != (*__self_1_23) || - (*__self_0_24) != (*__self_1_24), - }, - } - } - } - /// A mention of another user. - pub struct Mention { - /// URL of user's profile (can be remote). - pub url: String, - /// The username of the account. - pub username: String, - /// Equals `username` for local users, includes `@domain` for remote ones. - pub acct: String, - /// Account ID. - pub id: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Mention { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("Mention"); - let _ = - debug_trait_builder.field("url", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("username", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("acct", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("id", &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Mention { - #[inline] - fn clone(&self) -> Mention { - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => - Mention{url: ::core::clone::Clone::clone(&(*__self_0_0)), - username: - ::core::clone::Clone::clone(&(*__self_0_1)), - acct: ::core::clone::Clone::clone(&(*__self_0_2)), - id: ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Mention: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Mention { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __field3, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - 3u64 => - _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "url" => - _serde::export::Ok(__Field::__field0), - "username" => - _serde::export::Ok(__Field::__field1), - "acct" => - _serde::export::Ok(__Field::__field2), - "id" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"url" => - _serde::export::Ok(__Field::__field0), - b"username" => - _serde::export::Ok(__Field::__field1), - b"acct" => - _serde::export::Ok(__Field::__field2), - b"id" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Mention; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Mention") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Mention with 4 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Mention with 4 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Mention with 4 elements")); - } - }; - let __field3 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(3usize, - &"struct Mention with 4 elements")); - } - }; - _serde::export::Ok(Mention{url: __field0, - username: __field1, - acct: __field2, - id: __field3,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - let mut __field3: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("username")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("acct")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field3 => { - if _serde::export::Option::is_some(&__field3) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("id")); - } - __field3 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("username") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("acct") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field3 = - match __field3 { - _serde::export::Some(__field3) => - __field3, - _serde::export::None => - match _serde::private::de::missing_field("id") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Mention{url: __field0, - username: __field1, - acct: __field2, - id: __field3,}) - } - } - const FIELDS: &'static [&'static str] = - &["url", "username", "acct", "id"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Mention", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Mention { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Mention { - #[inline] - fn eq(&self, other: &Mention) -> bool { - match *other { - Mention { - url: ref __self_1_0, - username: ref __self_1_1, - acct: ref __self_1_2, - id: ref __self_1_3 } => - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3), - }, - } - } - #[inline] - fn ne(&self, other: &Mention) -> bool { - match *other { - Mention { - url: ref __self_1_0, - username: ref __self_1_1, - acct: ref __self_1_2, - id: ref __self_1_3 } => - match *self { - Mention { - url: ref __self_0_0, - username: ref __self_0_1, - acct: ref __self_0_2, - id: ref __self_0_3 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3), - }, - } - } - } - /// Struct representing an emoji within text. - pub struct Emoji { - /// The shortcode of the emoji - pub shortcode: String, - /// URL to the emoji static image - pub static_url: String, - /// URL to the emoji image - pub url: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Emoji { - #[inline] - fn clone(&self) -> Emoji { - match *self { - Emoji { - shortcode: ref __self_0_0, - static_url: ref __self_0_1, - url: ref __self_0_2 } => - Emoji{shortcode: - ::core::clone::Clone::clone(&(*__self_0_0)), - static_url: - ::core::clone::Clone::clone(&(*__self_0_1)), - url: ::core::clone::Clone::clone(&(*__self_0_2)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Emoji { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Emoji { - shortcode: ref __self_0_0, - static_url: ref __self_0_1, - url: ref __self_0_2 } => { - let mut debug_trait_builder = f.debug_struct("Emoji"); - let _ = - debug_trait_builder.field("shortcode", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("static_url", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("url", &&(*__self_0_2)); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Emoji: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Emoji { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { - __field0, - __field1, - __field2, - __ignore, - } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - 2u64 => - _serde::export::Ok(__Field::__field2), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 3")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "shortcode" => - _serde::export::Ok(__Field::__field0), - "static_url" => - _serde::export::Ok(__Field::__field1), - "url" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"shortcode" => - _serde::export::Ok(__Field::__field0), - b"static_url" => - _serde::export::Ok(__Field::__field1), - b"url" => - _serde::export::Ok(__Field::__field2), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Emoji; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Emoji") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Emoji with 3 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Emoji with 3 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(2usize, - &"struct Emoji with 3 elements")); - } - }; - _serde::export::Ok(Emoji{shortcode: __field0, - static_url: __field1, - url: __field2,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - let mut __field2: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("shortcode")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("static_url")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("shortcode") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("static_url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Emoji{shortcode: __field0, - static_url: __field1, - url: __field2,}) - } - } - const FIELDS: &'static [&'static str] = - &["shortcode", "static_url", "url"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Emoji", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Emoji { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Emoji { - #[inline] - fn eq(&self, other: &Emoji) -> bool { - match *other { - Emoji { - shortcode: ref __self_1_0, - static_url: ref __self_1_1, - url: ref __self_1_2 } => - match *self { - Emoji { - shortcode: ref __self_0_0, - static_url: ref __self_0_1, - url: ref __self_0_2 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2), - }, - } - } - #[inline] - fn ne(&self, other: &Emoji) -> bool { - match *other { - Emoji { - shortcode: ref __self_1_0, - static_url: ref __self_1_1, - url: ref __self_1_2 } => - match *self { - Emoji { - shortcode: ref __self_0_0, - static_url: ref __self_0_1, - url: ref __self_0_2 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2), - }, - } - } - } - /// Hashtags in the status. - pub struct Tag { - /// The hashtag, not including the preceding `#`. - pub name: String, - /// The URL of the hashtag. - pub url: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Tag { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Tag { name: ref __self_0_0, url: ref __self_0_1 } => { - let mut debug_trait_builder = f.debug_struct("Tag"); - let _ = - debug_trait_builder.field("name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("url", &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Tag { - #[inline] - fn clone(&self) -> Tag { - match *self { - Tag { name: ref __self_0_0, url: ref __self_0_1 } => - Tag{name: ::core::clone::Clone::clone(&(*__self_0_0)), - url: ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Tag: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Tag { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "name" => - _serde::export::Ok(__Field::__field0), - "url" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"name" => - _serde::export::Ok(__Field::__field0), - b"url" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Tag; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Tag") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Tag with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Tag with 2 elements")); - } - }; - _serde::export::Ok(Tag{name: __field0, - url: __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("name")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("url")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("name") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("url") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Tag{name: __field0, - url: __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["name", "url"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Tag", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Tag { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Tag { - #[inline] - fn eq(&self, other: &Tag) -> bool { - match *other { - Tag { name: ref __self_1_0, url: ref __self_1_1 } => - match *self { - Tag { name: ref __self_0_0, url: ref __self_0_1 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Tag) -> bool { - match *other { - Tag { name: ref __self_1_0, url: ref __self_1_1 } => - match *self { - Tag { name: ref __self_0_0, url: ref __self_0_1 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - /// Application details. - pub struct Application { - /// Name of the application. - pub name: String, - /// Homepage URL of the application. - pub website: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Application { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Application { - name: ref __self_0_0, website: ref __self_0_1 } => { - let mut debug_trait_builder = - f.debug_struct("Application"); - let _ = - debug_trait_builder.field("name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("website", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Application { - #[inline] - fn clone(&self) -> Application { - match *self { - Application { - name: ref __self_0_0, website: ref __self_0_1 } => - Application{name: - ::core::clone::Clone::clone(&(*__self_0_0)), - website: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Application: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Application { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor - { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => - _serde::export::Ok(__Field::__field0), - 1u64 => - _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "name" => - _serde::export::Ok(__Field::__field0), - "website" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"name" => - _serde::export::Ok(__Field::__field0), - b"website" => - _serde::export::Ok(__Field::__field1), - _ => { - _serde::export::Ok(__Field::__ignore) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> - { - type Value = Application; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Application") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> - _serde::export::Result where - __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct Application with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => - __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct Application with 2 elements")); - } - }; - _serde::export::Ok(Application{name: __field0, - website: - __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> - _serde::export::Result where - __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("name")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("website")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => - __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("name") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("website") - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(Application{name: __field0, - website: - __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["name", "website"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Application", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl ::core::marker::StructuralPartialEq for Application { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Application { - #[inline] - fn eq(&self, other: &Application) -> bool { - match *other { - Application { - name: ref __self_1_0, website: ref __self_1_1 } => - match *self { - Application { - name: ref __self_0_0, website: ref __self_0_1 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Application) -> bool { - match *other { - Application { - name: ref __self_1_0, website: ref __self_1_1 } => - match *self { - Application { - name: ref __self_0_0, website: ref __self_0_1 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - } - /// An empty JSON object. - pub struct Empty { - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Empty: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Empty { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 0")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> { - type Value = Empty; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct Empty") - } - #[inline] - fn visit_seq<__A>(self, _: __A) - -> _serde::export::Result - where __A: _serde::de::SeqAccess<'de> { - _serde::export::Ok(Empty{}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> _serde::export::Result - where __A: _serde::de::MapAccess<'de> { - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => - { - return _serde::export::Err(__err); - } - }; - } - } - } - _serde::export::Ok(Empty{}) - } - } - const FIELDS: &'static [&'static str] = &[]; - _serde::Deserializer::deserialize_struct(__deserializer, - "Empty", FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Empty { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - Empty { } => { - let mut debug_trait_builder = f.debug_struct("Empty"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Empty { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Empty { - #[inline] - fn clone(&self) -> Empty { { *self } } - } - impl ::core::marker::StructuralPartialEq for Empty { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Empty { - #[inline] - fn eq(&self, other: &Empty) -> bool { - match *other { - Empty { } => match *self { Empty { } => true, }, - } - } - } - /// The purpose of this module is to alleviate imports of many common - /// structs by adding a glob import to the top of mastodon heavy - /// modules: - pub mod prelude { - pub use super::{account::{Account, Source}, - attachment::{Attachment, MediaType}, card::Card, - context::Context, event::Event, - filter::{Filter, FilterContext}, instance::*, - list::List, mention::Mention, - notification::Notification, push::Subscription, - relationship::Relationship, report::Report, - search_result::{SearchResult, SearchResultV2}, - status::{Application, Emoji, Status}, Empty}; - } -} -/// Errors -pub mod errors { - use std::{error, fmt, io::Error as IoError}; - use hyper_old_types::Error as HeaderParseError; - use reqwest::{header::ToStrError as HeaderStrError, Error as HttpError, - StatusCode}; - use serde_json::Error as SerdeError; - use serde_qs::Error as SerdeQsError; - use serde_urlencoded::ser::Error as UrlEncodedError; - use url::ParseError as UrlError; - use tungstenite::error::Error as WebSocketError; - /// Convience type over `std::result::Result` with `Error` as the error type. - pub type Result = ::std::result::Result; - /// enum of possible errors encountered using the mastodon API. - pub enum Error { - - /// Error from the Mastodon API. This typically means something went - /// wrong with your authentication or data. - Api(ApiError), - - /// Error deserialising to json. Typically represents a breaking change in - /// the Mastodon API - Serde(SerdeError), - - /// Error serializing to url-encoded string - UrlEncoded(UrlEncodedError), - - /// Error encountered in the HTTP backend while requesting a route. - Http(HttpError), - - /// Wrapper around the `std::io::Error` struct. - Io(IoError), - - /// Wrapper around the `url::ParseError` struct. - Url(UrlError), - - /// Missing Client Id. - ClientIdRequired, - - /// Missing Client Secret. - ClientSecretRequired, - - /// Missing Access Token. - AccessTokenRequired, - - /// Generic client error. - Client(StatusCode), - - /// Generic server error. - Server(StatusCode), - - /// MastodonBuilder & AppBuilder error - MissingField(&'static str), - - /// Error converting an http header to a string - HeaderStrError(HeaderStrError), - - /// Error parsing the http Link header - HeaderParseError(HeaderParseError), - - /// Error serializing to a query string - SerdeQs(SerdeQsError), - - /// WebSocket error - WebSocket(WebSocketError), - - /// Other errors - Other(String), - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Error { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match (&*self,) { - (&Error::Api(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Api"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::Serde(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Serde"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::UrlEncoded(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("UrlEncoded"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::Http(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Http"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::Io(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Io"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::Url(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Url"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::ClientIdRequired,) => { - let mut debug_trait_builder = - f.debug_tuple("ClientIdRequired"); - debug_trait_builder.finish() - } - (&Error::ClientSecretRequired,) => { - let mut debug_trait_builder = - f.debug_tuple("ClientSecretRequired"); - debug_trait_builder.finish() - } - (&Error::AccessTokenRequired,) => { - let mut debug_trait_builder = - f.debug_tuple("AccessTokenRequired"); - debug_trait_builder.finish() - } - (&Error::Client(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Client"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::Server(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Server"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::MissingField(ref __self_0),) => { - let mut debug_trait_builder = - f.debug_tuple("MissingField"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::HeaderStrError(ref __self_0),) => { - let mut debug_trait_builder = - f.debug_tuple("HeaderStrError"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::HeaderParseError(ref __self_0),) => { - let mut debug_trait_builder = - f.debug_tuple("HeaderParseError"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::SerdeQs(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("SerdeQs"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::WebSocket(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("WebSocket"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Error::Other(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Other"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - } - } - } - impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_fmt(::core::fmt::Arguments::new_v1(&[""], - &match (&self,) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - })) - } - } - impl error::Error for Error { - fn source(&self) -> Option<&(dyn error::Error + 'static)> { - Some(match *self { - Error::Api(ref e) => e, - Error::Serde(ref e) => e, - Error::UrlEncoded(ref e) => e, - Error::Http(ref e) => e, - Error::Io(ref e) => e, - Error::Url(ref e) => e, - Error::HeaderStrError(ref e) => e, - Error::HeaderParseError(ref e) => e, - Error::SerdeQs(ref e) => e, - Error::WebSocket(ref e) => e, - Error::Client(..) | Error::Server(..) => { return None } - Error::ClientIdRequired => return None, - Error::ClientSecretRequired => return None, - Error::AccessTokenRequired => return None, - Error::MissingField(_) => return None, - Error::Other(..) => return None, - }) - } - } - /// Error returned from the Mastodon API. - pub struct ApiError { - /// The type of error. - pub error: Option, - /// The description of the error. - pub error_description: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for ApiError { - #[inline] - fn clone(&self) -> ApiError { - match *self { - ApiError { - error: ref __self_0_0, error_description: ref __self_0_1 } => - ApiError{error: ::core::clone::Clone::clone(&(*__self_0_0)), - error_description: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for ApiError { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - ApiError { - error: ref __self_0_0, error_description: ref __self_0_1 } => - { - let mut debug_trait_builder = f.debug_struct("ApiError"); - let _ = - debug_trait_builder.field("error", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("error_description", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_ApiError: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for ApiError { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => _serde::export::Ok(__Field::__field0), - 1u64 => _serde::export::Ok(__Field::__field1), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 2")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "error" => - _serde::export::Ok(__Field::__field0), - "error_description" => - _serde::export::Ok(__Field::__field1), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"error" => - _serde::export::Ok(__Field::__field0), - b"error_description" => - _serde::export::Ok(__Field::__field1), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> { - type Value = ApiError; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct ApiError") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> _serde::export::Result - where __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct ApiError with 2 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::>(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct ApiError with 2 elements")); - } - }; - _serde::export::Ok(ApiError{error: __field0, - error_description: - __field1,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> _serde::export::Result - where __A: _serde::de::MapAccess<'de> { - let mut __field0: - _serde::export::Option> = - _serde::export::None; - let mut __field1: - _serde::export::Option> = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("error")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("error_description")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::>(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => - { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("error") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("error_description") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(ApiError{error: __field0, - error_description: - __field1,}) - } - } - const FIELDS: &'static [&'static str] = - &["error", "error_description"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "ApiError", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl fmt::Display for ApiError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_fmt(::core::fmt::Arguments::new_v1(&[""], - &match (&self,) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - })) - } - } - impl error::Error for ApiError { } - macro_rules! from { - ($ ($ (# [$ met : meta]) * $ typ : ident, $ variant : ident,) *) => - { - $ - ($ (# [$ met]) * impl From < $ typ > for Error - { - fn from(from : $ typ) -> Self - { use crate :: Error :: * ; $ variant(from) } - }) * - } - } - impl From for Error { - fn from(from: HttpError) -> Self { - use crate::Error::*; - Http(from) - } - } - impl From for Error { - fn from(from: IoError) -> Self { - use crate::Error::*; - Io(from) - } - } - impl From for Error { - fn from(from: SerdeError) -> Self { - use crate::Error::*; - Serde(from) - } - } - impl From for Error { - fn from(from: UrlEncodedError) -> Self { - use crate::Error::*; - UrlEncoded(from) - } - } - impl From for Error { - fn from(from: UrlError) -> Self { - use crate::Error::*; - Url(from) - } - } - impl From for Error { - fn from(from: ApiError) -> Self { - use crate::Error::*; - Api(from) - } - } - impl From for Error { - fn from(from: HeaderStrError) -> Self { - use crate::Error::*; - HeaderStrError(from) - } - } - impl From for Error { - fn from(from: HeaderParseError) -> Self { - use crate::Error::*; - HeaderParseError(from) - } - } - impl From for Error { - fn from(from: SerdeQsError) -> Self { - use crate::Error::*; - SerdeQs(from) - } - } - impl From for Error { - fn from(from: WebSocketError) -> Self { - use crate::Error::*; - WebSocket(from) - } - } - impl From for Error { - fn from(from: String) -> Self { - use crate::Error::*; - Other(from) - } - } - #[macro_export] - /// Used to easily create errors from strings - macro_rules! format_err { - ($ ($ arg : tt) *) => - { { use elefren :: Error ; Error :: Other(format ! ($ ($ arg) *)) } } - } -} -/// Collection of helpers for serializing/deserializing `Data` objects -pub mod helpers { - /// Helpers for working with the command line - pub mod cli { - use std::io::{self, BufRead, Write}; - use crate::errors::Result; - use crate::registration::Registered; - use crate::Mastodon; - /// Finishes the authentication process for the given `Registered` object, - /// using the command-line - pub fn authenticate(registration: Registered) -> Result { - let url = registration.authorize_url()?; - let stdout = io::stdout(); - let stdin = io::stdin(); - let mut stdout = stdout.lock(); - let mut stdin = stdin.lock(); - (&mut stdout).write_fmt(::core::fmt::Arguments::new_v1(&["Click this link to authorize: ", - "\n"], - &match (&url,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - }))?; - (&mut stdout).write_fmt(::core::fmt::Arguments::new_v1(&["Paste the returned authorization code: "], - &match () { - () => - [], - }))?; - stdout.flush()?; - let mut input = String::new(); - stdin.read_line(&mut input)?; - let code = input.trim(); - Ok(registration.complete(code)?) - } - } -} -mod mastodon_client { - use async_trait::async_trait; - use std::borrow::Cow; - use crate::entities::prelude::*; - use crate::errors::Result; - use crate::page::Page; - use crate::requests::{AddFilterRequest, AddPushRequest, StatusesRequest, - UpdateCredsRequest, UpdatePushRequest}; - use crate::status_builder::NewStatus; - #[doc = - " Represents the set of methods that a Mastodon Client can do, so that"] - #[doc = " implementations might be swapped out for testing"] - #[allow(unused)] - pub trait MastodonClient { - #[doc = " GET /api/v1/favourites"] - #[must_use] - fn favourites<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __favourites(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__favourites::(self)) - } - #[doc = " GET /api/v1/blocks"] - #[must_use] - fn blocks<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __blocks(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__blocks::(self)) - } - #[doc = " GET /api/v1/domain_blocks"] - #[must_use] - fn domain_blocks<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __domain_blocks(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__domain_blocks::(self)) - } - #[doc = " GET /api/v1/follow_requests"] - #[must_use] - fn follow_requests<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __follow_requests(_self: - &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__follow_requests::(self)) - } - #[doc = " GET /api/v1/timelines/home"] - #[must_use] - fn get_home_timeline<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __get_home_timeline(_self: - &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__get_home_timeline::(self)) - } - #[doc = " GET /api/v1/custom_emojis"] - #[must_use] - fn get_emojis<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __get_emojis(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__get_emojis::(self)) - } - #[doc = " GET /api/v1/mutes"] - #[must_use] - fn mutes<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __mutes(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__mutes::(self)) - } - #[doc = " GET /api/v1/notifications"] - #[must_use] - fn notifications<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __notifications(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__notifications::(self)) - } - #[doc = " GET /api/v1/reports"] - #[must_use] - fn reports<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __reports(_self: &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__reports::(self)) - } - #[doc = " GET /api/v1/accounts/:id/followers"] - fn followers(&self, id: &str) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id/following"] - fn following(&self, id: &str) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/statuses/:id/reblogged_by"] - fn reblogged_by(&self, id: &str) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/statuses/:id/favourited_by"] - fn favourited_by(&self, id: &str) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " DELETE /api/v1/domain_blocks"] - fn unblock_domain(&self, domain: String) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/instance"] - fn instance(&self) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/verify_credentials"] - fn verify_credentials(&self) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/reports"] - fn report(&self, account_id: &str, status_ids: Vec<&str>, - comment: String) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/domain_blocks"] - fn block_domain(&self, domain: String) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/accounts/follow_requests/authorize"] - fn authorize_follow_request(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/accounts/follow_requests/reject"] - fn reject_follow_request(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/search"] - fn search<'a>(&self, q: &'a str, resolve: bool) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v2/search"] - fn search_v2<'a>(&self, q: &'a str, resolve: bool) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/follows"] - fn follows(&self, uri: Cow<'static, str>) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/media"] - fn media(&self, file: Cow<'static, str>) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/notifications/clear"] - fn clear_notifications(&self) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/notifications/dismiss"] - fn dismiss_notification(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id"] - fn get_account(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/accounts/:id/follow"] - fn follow(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/accounts/:id/unfollow"] - fn unfollow(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id/block"] - fn block(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id/unblock"] - fn unblock(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id/mute"] - fn mute(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id/unmute"] - fn unmute(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/notifications/:id"] - fn get_notification(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/statuses/:id"] - fn get_status(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/statuses/:id/context"] - fn get_context(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/statuses/:id/card"] - fn get_card(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/statuses/:id/reblog"] - fn reblog(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/statuses/:id/unreblog"] - fn unreblog(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/statuses/:id/favourite"] - fn favourite(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/statuses/:id/unfavourite"] - fn unfavourite(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " DELETE /api/v1/statuses/:id"] - fn delete_status(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " PATCH /api/v1/accounts/update_credentials"] - fn update_credentials(&self, builder: &mut UpdateCredsRequest) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/statuses"] - fn new_status(&self, status: NewStatus) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/timelines/public"] - fn get_public_timeline(&self, local: bool) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/timelines/tag/:hashtag"] - fn get_tagged_timeline(&self, hashtag: String, local: bool) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/:id/statuses"] - fn statuses<'a, 'b: 'a, S>(&'b self, id: &'b str, request: S) - -> Result> where S: Into>> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/accounts/relationships"] - fn relationships(&self, ids: &[&str]) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = - " GET /api/v1/accounts/search?q=:query&limit=:limit&following=:following"] - #[must_use] - fn search_accounts<'life0, 'life1, - 'async_trait>(&'life0 self, query: &'life1 str, - limit: Option, following: bool) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, 'life1: 'async_trait, - Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __search_accounts(_self: - &AsyncTrait, - query: &str, - limit: - Option, - following: bool) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__search_accounts::(self, query, limit, following)) - } - #[doc = " POST /api/v1/push/subscription"] - fn add_push_subscription(&self, request: &AddPushRequest) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " PUT /api/v1/push/subscription"] - fn update_push_data(&self, request: &UpdatePushRequest) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/push/subscription"] - fn get_push_subscription(&self) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " DELETE /api/v1/push/subscription"] - fn delete_push_subscription(&self) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/filters"] - fn get_filters(&self) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/filters"] - fn add_filter(&self, request: &mut AddFilterRequest) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/filters/:id"] - fn get_filter(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " PUT /api/v1/filters/:id"] - fn update_filter(&self, id: &str, request: &mut AddFilterRequest) - -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " DELETE /api/v1/filters/:id"] - fn delete_filter(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/suggestions"] - fn get_follow_suggestions(&self) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " DELETE /api/v1/suggestions/:account_id"] - fn delete_from_suggestions(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " GET /api/v1/endorsements"] - #[must_use] - fn get_endorsements<'life0, 'async_trait>(&'life0 self) - -> - ::core::pin::Pin>> + - ::core::marker::Send + 'async_trait>> where - 'life0: 'async_trait, Self: ::core::marker::Sync + 'async_trait { - #[allow(clippy :: missing_docs_in_private_items, clippy :: - type_repetition_in_bounds, clippy :: - used_underscore_binding,)] - async fn __get_endorsements(_self: - &AsyncTrait) - -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - Box::pin(__get_endorsements::(self)) - } - #[doc = " POST /api/v1/accounts/:id/pin"] - fn endorse_user(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " POST /api/v1/accounts/:id/unpin"] - fn unendorse_user(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = - " Shortcut for: `let me = client.verify_credentials(); client.followers()`"] - #[doc = ""] - #[doc = " ```no_run"] - #[doc = " # extern crate elefren;"] - #[doc = " # use std::error::Error;"] - #[doc = " # use elefren::prelude::*;"] - #[doc = " # fn main() -> Result<(), Box> {"] - #[doc = " # let data = Data {"] - #[doc = " # base: \"\".into(),"] - #[doc = " # client_id: \"\".into(),"] - #[doc = " # client_secret: \"\".into(),"] - #[doc = " # redirect: \"\".into(),"] - #[doc = " # token: \"\".into(),"] - #[doc = " # };"] - #[doc = " # let client = Mastodon::from(data);"] - #[doc = " let follows_me = client.follows_me()?;"] - #[doc = " # Ok(())"] - #[doc = " # }"] - fn follows_me(&self) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - #[doc = " Shortcut for"] - #[doc = - " `let me = client.verify_credentials(); client.following(&me.id)`"] - #[doc = ""] - #[doc = " ```no_run"] - #[doc = " # extern crate elefren;"] - #[doc = " # use std::error::Error;"] - #[doc = " # use elefren::prelude::*;"] - #[doc = " # fn main() -> Result<(), Box> {"] - #[doc = " # let data = Data {"] - #[doc = " # base: \"\".into(),"] - #[doc = " # client_id: \"\".into(),"] - #[doc = " # client_secret: \"\".into(),"] - #[doc = " # redirect: \"\".into(),"] - #[doc = " # token: \"\".into(),"] - #[doc = " # };"] - #[doc = " # let client = Mastodon::from(data);"] - #[doc = " let follows_me = client.followed_by_me()?;"] - #[doc = " # Ok(())"] - #[doc = " # }"] - fn followed_by_me(&self) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - } - /// Trait that represents clients that can make unauthenticated calls to a - /// mastodon instance - #[allow(unused)] - pub trait MastodonUnauthenticated { - /// GET /api/v1/statuses/:id - fn get_status(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - /// GET /api/v1/statuses/:id/context - fn get_context(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - /// GET /api/v1/statuses/:id/card - fn get_card(&self, id: &str) -> Result { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - /// GET /api/v1/statuses/:id/reblogged_by - fn reblogged_by(&self, id: &str) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - /// GET /api/v1/statuses/:id/favourited_by - fn favourited_by(&self, id: &str) -> Result> { - { - ::std::rt::begin_panic_fmt(&::core::fmt::Arguments::new_v1(&["not implemented: "], - &match (&::core::fmt::Arguments::new_v1(&["This method was not implemented"], - &match () - { - () - => - [], - }),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - }; - } - } -} -/// Handling multiple pages of entities. -pub mod page { - use super::{deserialise, Mastodon, Result}; - use hyper_old_types::header::{parsing, Link, RelationType}; - use reqwest::{header::LINK, Response}; - use serde::Deserialize; - use url::Url; - macro_rules! pages { - ($ ($ direction : ident : $ fun : ident), *) => - { - $ - (doc_comment ! - (concat ! - ("Method to retrieve the ", stringify ! ($ direction), - " page of results"), pub async fn $ fun(& mut self) -> Result < - Option < Vec < T >> > - { - let url = match self . $ direction . take() - { Some(s) => s, None => return Ok(None), } ; let response = - self . mastodon . send(self . mastodon . client . get(url)) - ? ; let(prev, next) = get_links(& response) ? ; self . next - = next ; self . prev = prev ; deserialise(response) - }) ;) * - } - } - /// Owned version of the `Page` struct in this module. Allows this to be more - /// easily stored for later use - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # use elefren::Mastodon; - /// # use elefren::page::OwnedPage; - /// # use elefren::entities::status::Status; - /// # use std::cell::RefCell; - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// struct HomeTimeline { - /// client: Mastodon, - /// page: RefCell>>, - /// } - /// let client = Mastodon::from(data); - /// let home = client.get_home_timeline()?.to_owned(); - /// let tl = HomeTimeline { - /// client, - /// page: RefCell::new(Some(home)), - /// }; - /// # Ok(()) - /// # } - /// ``` - pub struct OwnedPage Deserialize<'de>> { - mastodon: Mastodon, - next: Option, - prev: Option, - /// Initial set of items - pub initial_items: Vec, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl Deserialize<'de>> - ::core::fmt::Debug for OwnedPage { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - OwnedPage { - mastodon: ref __self_0_0, - next: ref __self_0_1, - prev: ref __self_0_2, - initial_items: ref __self_0_3 } => { - let mut debug_trait_builder = f.debug_struct("OwnedPage"); - let _ = - debug_trait_builder.field("mastodon", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("next", &&(*__self_0_1)); - let _ = - debug_trait_builder.field("prev", &&(*__self_0_2)); - let _ = - debug_trait_builder.field("initial_items", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl Deserialize<'de>> - ::core::clone::Clone for OwnedPage { - #[inline] - fn clone(&self) -> OwnedPage { - match *self { - OwnedPage { - mastodon: ref __self_0_0, - next: ref __self_0_1, - prev: ref __self_0_2, - initial_items: ref __self_0_3 } => - OwnedPage{mastodon: - ::core::clone::Clone::clone(&(*__self_0_0)), - next: ::core::clone::Clone::clone(&(*__self_0_1)), - prev: ::core::clone::Clone::clone(&(*__self_0_2)), - initial_items: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - impl Deserialize<'de>> OwnedPage { - #[doc = "Method to retrieve the next page of results"] - pub async fn next_page(&mut self) -> Result>> { - let url = - match self.next.take() { - Some(s) => s, - None => return Ok(None), - }; - let response = self.mastodon.send(self.mastodon.client.get(url))?; - let (prev, next) = get_links(&response)?; - self.next = next; - self.prev = prev; - deserialise(response) - } - #[doc = "Method to retrieve the prev page of results"] - pub async fn prev_page(&mut self) -> Result>> { - let url = - match self.prev.take() { - Some(s) => s, - None => return Ok(None), - }; - let response = self.mastodon.send(self.mastodon.client.get(url))?; - let (prev, next) = get_links(&response)?; - self.next = next; - self.prev = prev; - deserialise(response) - } - } - impl <'a, T: for<'de> Deserialize<'de>> From> for OwnedPage - { - fn from(page: Page<'a, T>) -> OwnedPage { - OwnedPage{mastodon: page.mastodon.clone(), - next: page.next, - prev: page.prev, - initial_items: page.initial_items,} - } - } - /// Represents a single page of API results - pub struct Page<'a, T: for<'de> Deserialize<'de>> { - mastodon: &'a Mastodon, - next: Option, - prev: Option, - /// Initial set of items - pub initial_items: Vec, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a, T: ::core::fmt::Debug + for<'de> Deserialize<'de>> - ::core::fmt::Debug for Page<'a, T> { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - Page { - mastodon: ref __self_0_0, - next: ref __self_0_1, - prev: ref __self_0_2, - initial_items: ref __self_0_3 } => { - let mut debug_trait_builder = f.debug_struct("Page"); - let _ = - debug_trait_builder.field("mastodon", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("next", &&(*__self_0_1)); - let _ = - debug_trait_builder.field("prev", &&(*__self_0_2)); - let _ = - debug_trait_builder.field("initial_items", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a, T: ::core::clone::Clone + for<'de> Deserialize<'de>> - ::core::clone::Clone for Page<'a, T> { - #[inline] - fn clone(&self) -> Page<'a, T> { - match *self { - Page { - mastodon: ref __self_0_0, - next: ref __self_0_1, - prev: ref __self_0_2, - initial_items: ref __self_0_3 } => - Page{mastodon: ::core::clone::Clone::clone(&(*__self_0_0)), - next: ::core::clone::Clone::clone(&(*__self_0_1)), - prev: ::core::clone::Clone::clone(&(*__self_0_2)), - initial_items: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - impl <'a, T: for<'de> Deserialize<'de>> Page<'a, T> { - #[doc = "Method to retrieve the next page of results"] - pub async fn next_page(&mut self) -> Result>> { - let url = - match self.next.take() { - Some(s) => s, - None => return Ok(None), - }; - let response = self.mastodon.send(self.mastodon.client.get(url))?; - let (prev, next) = get_links(&response)?; - self.next = next; - self.prev = prev; - deserialise(response) - } - #[doc = "Method to retrieve the prev page of results"] - pub async fn prev_page(&mut self) -> Result>> { - let url = - match self.prev.take() { - Some(s) => s, - None => return Ok(None), - }; - let response = self.mastodon.send(self.mastodon.client.get(url))?; - let (prev, next) = get_links(&response)?; - self.next = next; - self.prev = prev; - deserialise(response) - } - pub(crate) fn new(mastodon: &'a Mastodon, response: Response) - -> Result { - let (prev, next) = get_links(&response)?; - Ok(Page{initial_items: deserialise(response)?, - next, - prev, - mastodon,}) - } - } - impl <'a, T: Clone + for<'de> Deserialize<'de>> Page<'a, T> { - /// Returns an owned version of this struct that doesn't borrow the client - /// that created it - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # use elefren::Mastodon; - /// # use elefren::page::OwnedPage; - /// # use elefren::entities::status::Status; - /// # use std::cell::RefCell; - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// struct HomeTimeline { - /// client: Mastodon, - /// page: RefCell>>, - /// } - /// let client = Mastodon::from(data); - /// let home = client.get_home_timeline()?.to_owned(); - /// let tl = HomeTimeline { - /// client, - /// page: RefCell::new(Some(home)), - /// }; - /// # Ok(()) - /// # } - /// ``` - pub fn to_owned(self) -> OwnedPage { OwnedPage::from(self) } - } - fn get_links(response: &Response) -> Result<(Option, Option)> { - let mut prev = None; - let mut next = None; - if let Some(link_header) = response.headers().get(LINK) { - let link_header = link_header.to_str()?; - let link_header = link_header.as_bytes(); - let link_header: Link = parsing::from_raw_str(&link_header)?; - for value in link_header.values() { - if let Some(relations) = value.rel() { - if relations.contains(&RelationType::Next) { - next = Some(Url::parse(value.link())?); - } - if relations.contains(&RelationType::Prev) { - prev = Some(Url::parse(value.link())?); - } - } - } - } - Ok((prev, next)) - } -} -/// Registering your app. -pub mod registration { - use std::borrow::Cow; - use reqwest::{Client, RequestBuilder, Response}; - use try_from::TryInto; - use url::percent_encoding::{utf8_percent_encode, DEFAULT_ENCODE_SET}; - use crate::apps::{App, AppBuilder}; - use crate::scopes::Scopes; - use crate::Data; - use crate::Error; - use crate::Mastodon; - use crate::MastodonBuilder; - use crate::Result; - const DEFAULT_REDIRECT_URI: &'static str = "urn:ietf:wg:oauth:2.0:oob"; - /// Handles registering your mastodon app to your instance. It is recommended - /// you cache your data struct to avoid registering on every run. - pub struct Registration<'a> { - base: String, - client: Client, - app_builder: AppBuilder<'a>, - force_login: bool, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::fmt::Debug for Registration<'a> { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - Registration { - base: ref __self_0_0, - client: ref __self_0_1, - app_builder: ref __self_0_2, - force_login: ref __self_0_3 } => { - let mut debug_trait_builder = - f.debug_struct("Registration"); - let _ = - debug_trait_builder.field("base", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("client", &&(*__self_0_1)); - let _ = - debug_trait_builder.field("app_builder", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("force_login", - &&(*__self_0_3)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::clone::Clone for Registration<'a> { - #[inline] - fn clone(&self) -> Registration<'a> { - match *self { - Registration { - base: ref __self_0_0, - client: ref __self_0_1, - app_builder: ref __self_0_2, - force_login: ref __self_0_3 } => - Registration{base: - ::core::clone::Clone::clone(&(*__self_0_0)), - client: - ::core::clone::Clone::clone(&(*__self_0_1)), - app_builder: - ::core::clone::Clone::clone(&(*__self_0_2)), - force_login: - ::core::clone::Clone::clone(&(*__self_0_3)),}, - } - } - } - struct OAuth { - client_id: String, - client_secret: String, - #[serde(default = "default_redirect_uri")] - redirect_uri: String, - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_OAuth: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for OAuth { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __field2, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => _serde::export::Ok(__Field::__field0), - 1u64 => _serde::export::Ok(__Field::__field1), - 2u64 => _serde::export::Ok(__Field::__field2), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 3")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "client_id" => - _serde::export::Ok(__Field::__field0), - "client_secret" => - _serde::export::Ok(__Field::__field1), - "redirect_uri" => - _serde::export::Ok(__Field::__field2), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"client_id" => - _serde::export::Ok(__Field::__field0), - b"client_secret" => - _serde::export::Ok(__Field::__field1), - b"redirect_uri" => - _serde::export::Ok(__Field::__field2), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> { - type Value = OAuth; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct OAuth") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> _serde::export::Result - where __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct OAuth with 3 elements")); - } - }; - let __field1 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(1usize, - &"struct OAuth with 3 elements")); - } - }; - let __field2 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - default_redirect_uri() - } - }; - _serde::export::Ok(OAuth{client_id: __field0, - client_secret: __field1, - redirect_uri: __field2,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> _serde::export::Result - where __A: _serde::de::MapAccess<'de> { - let mut __field0: _serde::export::Option = - _serde::export::None; - let mut __field1: _serde::export::Option = - _serde::export::None; - let mut __field2: _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("client_id")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field1 => { - if _serde::export::Option::is_some(&__field1) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("client_secret")); - } - __field1 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - __Field::__field2 => { - if _serde::export::Option::is_some(&__field2) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("redirect_uri")); - } - __field2 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => - { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("client_id") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field1 = - match __field1 { - _serde::export::Some(__field1) => - __field1, - _serde::export::None => - match _serde::private::de::missing_field("client_secret") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - let __field2 = - match __field2 { - _serde::export::Some(__field2) => - __field2, - _serde::export::None => - default_redirect_uri(), - }; - _serde::export::Ok(OAuth{client_id: __field0, - client_secret: __field1, - redirect_uri: __field2,}) - } - } - const FIELDS: &'static [&'static str] = - &["client_id", "client_secret", "redirect_uri"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "OAuth", FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - fn default_redirect_uri() -> String { DEFAULT_REDIRECT_URI.to_string() } - struct AccessToken { - access_token: String, - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_AccessToken: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for AccessToken { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __ignore, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "field identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => _serde::export::Ok(__Field::__field0), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"field index 0 <= i < 1")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "access_token" => - _serde::export::Ok(__Field::__field0), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"access_token" => - _serde::export::Ok(__Field::__field0), - _ => { _serde::export::Ok(__Field::__ignore) } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> { - type Value = AccessToken; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "struct AccessToken") - } - #[inline] - fn visit_seq<__A>(self, mut __seq: __A) - -> _serde::export::Result - where __A: _serde::de::SeqAccess<'de> { - let __field0 = - match match _serde::de::SeqAccess::next_element::(&mut __seq) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - _serde::export::Some(__value) => __value, - _serde::export::None => { - return _serde::export::Err(_serde::de::Error::invalid_length(0usize, - &"struct AccessToken with 1 element")); - } - }; - _serde::export::Ok(AccessToken{access_token: - __field0,}) - } - #[inline] - fn visit_map<__A>(self, mut __map: __A) - -> _serde::export::Result - where __A: _serde::de::MapAccess<'de> { - let mut __field0: _serde::export::Option = - _serde::export::None; - while let _serde::export::Some(__key) = - match _serde::de::MapAccess::next_key::<__Field>(&mut __map) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - match __key { - __Field::__field0 => { - if _serde::export::Option::is_some(&__field0) - { - return _serde::export::Err(<__A::Error - as - _serde::de::Error>::duplicate_field("access_token")); - } - __field0 = - _serde::export::Some(match _serde::de::MapAccess::next_value::(&mut __map) - { - _serde::export::Ok(__val) - => __val, - _serde::export::Err(__err) - => { - return _serde::export::Err(__err); - } - }); - } - _ => { - let _ = - match _serde::de::MapAccess::next_value::<_serde::de::IgnoredAny>(&mut __map) - { - _serde::export::Ok(__val) => - __val, - _serde::export::Err(__err) => - { - return _serde::export::Err(__err); - } - }; - } - } - } - let __field0 = - match __field0 { - _serde::export::Some(__field0) => - __field0, - _serde::export::None => - match _serde::private::de::missing_field("access_token") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }, - }; - _serde::export::Ok(AccessToken{access_token: - __field0,}) - } - } - const FIELDS: &'static [&'static str] = &["access_token"]; - _serde::Deserializer::deserialize_struct(__deserializer, - "AccessToken", - FIELDS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - impl <'a> Registration<'a> { - /// Construct a new registration process to the instance of the `base` url. - /// ``` - /// use elefren::prelude::*; - /// - /// let registration = Registration::new("https://mastodon.social"); - /// ``` - pub fn new>(base: I) -> Self { - Registration{base: base.into(), - client: Client::new(), - app_builder: AppBuilder::new(), - force_login: false,} - } - } - impl <'a> Registration<'a> { - /// Sets the name of this app - /// - /// This is required, and if this isn't set then the AppBuilder::build - /// method will fail - pub fn client_name>>(&mut self, name: I) - -> &mut Self { - self.app_builder.client_name(name.into()); - self - } - /// Sets the redirect uris that this app uses - pub fn redirect_uris>>(&mut self, uris: I) - -> &mut Self { - self.app_builder.redirect_uris(uris); - self - } - /// Sets the scopes that this app requires - /// - /// The default for an app is Scopes::Read - pub fn scopes(&mut self, scopes: Scopes) -> &mut Self { - self.app_builder.scopes(scopes); - self - } - /// Sets the optional "website" to register the app with - pub fn website>>(&mut self, website: I) - -> &mut Self { - self.app_builder.website(website); - self - } - /// Forces the user to re-login (useful if you need to re-auth as a - /// different user on the same instance - pub fn force_login(&mut self, force_login: bool) -> &mut Self { - self.force_login = force_login; - self - } - fn send(&self, req: RequestBuilder) -> Result { - let req = req.build()?; - Ok(self.client.execute(req)?) - } - /// Register the given application - /// - /// ```no_run - /// # extern crate elefren; - /// # fn main () -> elefren::Result<()> { - /// use elefren::{apps::App, prelude::*}; - /// - /// let mut app = App::builder(); - /// app.client_name("elefren_test"); - /// - /// let registration = Registration::new("https://mastodon.social").register(app)?; - /// let url = registration.authorize_url()?; - /// // Here you now need to open the url in the browser - /// // And handle a the redirect url coming back with the code. - /// let code = String::from("RETURNED_FROM_BROWSER"); - /// let mastodon = registration.complete(&code)?; - /// - /// println!("{:?}", mastodon.get_home_timeline()?.initial_items); - /// # Ok(()) - /// # } - /// ``` - pub fn register>(&mut self, app: I) - -> Result where Error: From<>::Err> { - let app = app.try_into()?; - let oauth = self.send_app(&app)?; - Ok(Registered{base: self.base.clone(), - client: self.client.clone(), - client_id: oauth.client_id, - client_secret: oauth.client_secret, - redirect: oauth.redirect_uri, - scopes: app.scopes().clone(), - force_login: self.force_login,}) - } - /// Register the application with the server from the `base` url. - /// - /// ```no_run - /// # extern crate elefren; - /// # fn main () -> elefren::Result<()> { - /// use elefren::prelude::*; - /// - /// let registration = Registration::new("https://mastodon.social") - /// .client_name("elefren_test") - /// .build()?; - /// let url = registration.authorize_url()?; - /// // Here you now need to open the url in the browser - /// // And handle a the redirect url coming back with the code. - /// let code = String::from("RETURNED_FROM_BROWSER"); - /// let mastodon = registration.complete(&code)?; - /// - /// println!("{:?}", mastodon.get_home_timeline()?.initial_items); - /// # Ok(()) - /// # } - /// ``` - pub fn build(&mut self) -> Result { - let app: App = self.app_builder.clone().build()?; - let oauth = self.send_app(&app)?; - Ok(Registered{base: self.base.clone(), - client: self.client.clone(), - client_id: oauth.client_id, - client_secret: oauth.client_secret, - redirect: oauth.redirect_uri, - scopes: app.scopes().clone(), - force_login: self.force_login,}) - } - fn send_app(&self, app: &App) -> Result { - let url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - "/api/v1/apps"], - &match (&self.base,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - Ok(self.send(self.client.post(&url).json(&app))?.json()?) - } - } - impl Registered { - /// Skip having to retrieve the client id and secret from the server by - /// creating a `Registered` struct directly - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # fn main() -> elefren::Result<()> { - /// use elefren::{prelude::*, registration::Registered}; - /// - /// let registration = Registered::from_parts( - /// "https://example.com", - /// "the-client-id", - /// "the-client-secret", - /// "https://example.com/redirect", - /// Scopes::read_all(), - /// false, - /// ); - /// let url = registration.authorize_url()?; - /// // Here you now need to open the url in the browser - /// // And handle a the redirect url coming back with the code. - /// let code = String::from("RETURNED_FROM_BROWSER"); - /// let mastodon = registration.complete(&code)?; - /// - /// println!("{:?}", mastodon.get_home_timeline()?.initial_items); - /// # Ok(()) - /// # } - /// ``` - pub fn from_parts(base: &str, client_id: &str, client_secret: &str, - redirect: &str, scopes: Scopes, force_login: bool) - -> Registered { - Registered{base: base.to_string(), - client: Client::new(), - client_id: client_id.to_string(), - client_secret: client_secret.to_string(), - redirect: redirect.to_string(), - scopes, - force_login,} - } - } - impl Registered { - fn send(&self, req: RequestBuilder) -> Result { - let req = req.build()?; - Ok(self.client.execute(req)?) - } - /// Returns the parts of the `Registered` struct that can be used to - /// recreate another `Registered` struct - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::{prelude::*, registration::Registered}; - /// # fn main() -> Result<(), Box> { - /// - /// let origbase = "https://example.social"; - /// let origclient_id = "some-client_id"; - /// let origclient_secret = "some-client-secret"; - /// let origredirect = "https://example.social/redirect"; - /// let origscopes = Scopes::all(); - /// let origforce_login = false; - /// - /// let registered = Registered::from_parts( - /// origbase, - /// origclient_id, - /// origclient_secret, - /// origredirect, - /// origscopes.clone(), - /// origforce_login, - /// ); - /// - /// let (base, client_id, client_secret, redirect, scopes, force_login) = registered.into_parts(); - /// - /// assert_eq!(origbase, &base); - /// assert_eq!(origclient_id, &client_id); - /// assert_eq!(origclient_secret, &client_secret); - /// assert_eq!(origredirect, &redirect); - /// assert_eq!(origscopes, scopes); - /// assert_eq!(origforce_login, force_login); - /// # Ok(()) - /// # } - /// ``` - pub fn into_parts(self) - -> (String, String, String, String, Scopes, bool) { - (self.base, self.client_id, self.client_secret, self.redirect, - self.scopes, self.force_login) - } - /// Returns the full url needed for authorisation. This needs to be opened - /// in a browser. - pub fn authorize_url(&self) -> Result { - let scopes = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], - &match (&self.scopes,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - let scopes: String = - utf8_percent_encode(&scopes, DEFAULT_ENCODE_SET).collect(); - let url = - if self.force_login { - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - "/oauth/authorize?client_id=", - "&redirect_uri=", - "&scope=", - "&force_login=true&response_type=code"], - &match (&self.base, - &self.client_id, - &self.redirect, - &scopes) - { - (arg0, - arg1, - arg2, - arg3) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg2, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg3, - ::core::fmt::Display::fmt)], - })); - res - } - } else { - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - "/oauth/authorize?client_id=", - "&redirect_uri=", - "&scope=", - "&response_type=code"], - &match (&self.base, - &self.client_id, - &self.redirect, - &scopes) - { - (arg0, - arg1, - arg2, - arg3) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg2, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg3, - ::core::fmt::Display::fmt)], - })); - res - } - }; - Ok(url) - } - /// Create an access token from the client id, client secret, and code - /// provided by the authorisation url. - pub fn complete(&self, code: &str) -> Result { - let url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - "/oauth/token?client_id=", - "&client_secret=", - "&code=", - "&grant_type=authorization_code&redirect_uri="], - &match (&self.base, - &self.client_id, - &self.client_secret, - &code, - &self.redirect) - { - (arg0, - arg1, - arg2, - arg3, - arg4) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg2, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg3, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg4, - ::core::fmt::Display::fmt)], - })); - res - }; - let token: AccessToken = - self.send(self.client.post(&url))?.json()?; - let data = - Data{base: self.base.clone().into(), - client_id: self.client_id.clone().into(), - client_secret: self.client_secret.clone().into(), - redirect: self.redirect.clone().into(), - token: token.access_token.into(),}; - let mut builder = MastodonBuilder::new(); - builder.client(self.client.clone()).data(data); - Ok(builder.build()?) - } - } - /// Represents the state of the auth flow when the app has been registered but - /// the user is not authenticated - pub struct Registered { - base: String, - client: Client, - client_id: String, - client_secret: String, - redirect: String, - scopes: Scopes, - force_login: bool, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Registered { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - Registered { - base: ref __self_0_0, - client: ref __self_0_1, - client_id: ref __self_0_2, - client_secret: ref __self_0_3, - redirect: ref __self_0_4, - scopes: ref __self_0_5, - force_login: ref __self_0_6 } => { - let mut debug_trait_builder = - f.debug_struct("Registered"); - let _ = - debug_trait_builder.field("base", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("client", &&(*__self_0_1)); - let _ = - debug_trait_builder.field("client_id", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("client_secret", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("redirect", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("scopes", &&(*__self_0_5)); - let _ = - debug_trait_builder.field("force_login", - &&(*__self_0_6)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Registered { - #[inline] - fn clone(&self) -> Registered { - match *self { - Registered { - base: ref __self_0_0, - client: ref __self_0_1, - client_id: ref __self_0_2, - client_secret: ref __self_0_3, - redirect: ref __self_0_4, - scopes: ref __self_0_5, - force_login: ref __self_0_6 } => - Registered{base: ::core::clone::Clone::clone(&(*__self_0_0)), - client: - ::core::clone::Clone::clone(&(*__self_0_1)), - client_id: - ::core::clone::Clone::clone(&(*__self_0_2)), - client_secret: - ::core::clone::Clone::clone(&(*__self_0_3)), - redirect: - ::core::clone::Clone::clone(&(*__self_0_4)), - scopes: - ::core::clone::Clone::clone(&(*__self_0_5)), - force_login: - ::core::clone::Clone::clone(&(*__self_0_6)),}, - } - } - } -} -/// Requests -pub mod requests { - /// Data structure for the MastodonClient::add_filter method - pub use self::filter::AddFilterRequest; - /// Data structure for the MastodonClient::add_push_subscription method - pub use self::push::{AddPushRequest, Keys, UpdatePushRequest}; - /// Data structure for the MastodonClient::statuses method - pub use self::statuses::StatusesRequest; - /// Data structure for the MastodonClient::update_credentials method - pub use self::update_credentials::UpdateCredsRequest; - mod filter { - use crate::entities::filter::FilterContext; - use std::time::Duration; - /// Form used to create a filter - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::{entities::filter::FilterContext, requests::AddFilterRequest}; - /// # fn main() -> Result<(), Box> { - /// let request = AddFilterRequest::new("foo", FilterContext::Home); - /// # Ok(()) - /// # } - /// ``` - pub struct AddFilterRequest { - phrase: String, - context: FilterContext, - irreversible: Option, - whole_word: Option, - #[serde(serialize_with = "serialize_duration::ser")] - expires_in: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for AddFilterRequest { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - AddFilterRequest { - phrase: ref __self_0_0, - context: ref __self_0_1, - irreversible: ref __self_0_2, - whole_word: ref __self_0_3, - expires_in: ref __self_0_4 } => { - let mut debug_trait_builder = - f.debug_struct("AddFilterRequest"); - let _ = - debug_trait_builder.field("phrase", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("context", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("irreversible", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("whole_word", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("expires_in", - &&(*__self_0_4)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for AddFilterRequest { - #[inline] - fn clone(&self) -> AddFilterRequest { - match *self { - AddFilterRequest { - phrase: ref __self_0_0, - context: ref __self_0_1, - irreversible: ref __self_0_2, - whole_word: ref __self_0_3, - expires_in: ref __self_0_4 } => - AddFilterRequest{phrase: - ::core::clone::Clone::clone(&(*__self_0_0)), - context: - ::core::clone::Clone::clone(&(*__self_0_1)), - irreversible: - ::core::clone::Clone::clone(&(*__self_0_2)), - whole_word: - ::core::clone::Clone::clone(&(*__self_0_3)), - expires_in: - ::core::clone::Clone::clone(&(*__self_0_4)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for AddFilterRequest { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for AddFilterRequest { - #[inline] - fn eq(&self, other: &AddFilterRequest) -> bool { - match *other { - AddFilterRequest { - phrase: ref __self_1_0, - context: ref __self_1_1, - irreversible: ref __self_1_2, - whole_word: ref __self_1_3, - expires_in: ref __self_1_4 } => - match *self { - AddFilterRequest { - phrase: ref __self_0_0, - context: ref __self_0_1, - irreversible: ref __self_0_2, - whole_word: ref __self_0_3, - expires_in: ref __self_0_4 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4), - }, - } - } - #[inline] - fn ne(&self, other: &AddFilterRequest) -> bool { - match *other { - AddFilterRequest { - phrase: ref __self_1_0, - context: ref __self_1_1, - irreversible: ref __self_1_2, - whole_word: ref __self_1_3, - expires_in: ref __self_1_4 } => - match *self { - AddFilterRequest { - phrase: ref __self_0_0, - context: ref __self_0_1, - irreversible: ref __self_0_2, - whole_word: ref __self_0_3, - expires_in: ref __self_0_4 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_AddFilterRequest: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for AddFilterRequest { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "AddFilterRequest", - false - as - usize - + 1 - + 1 - + 1 - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "phrase", - &self.phrase) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "context", - &self.context) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "irreversible", - &self.irreversible) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "whole_word", - &self.whole_word) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "expires_in", - { - struct __SerializeWith<'__a> { - values: (&'__a Option,), - phantom: _serde::export::PhantomData, - } - impl <'__a> - _serde::Serialize - for - __SerializeWith<'__a> - { - fn serialize<__S>(&self, - __s: - __S) - -> - _serde::export::Result<__S::Ok, - __S::Error> - where - __S: _serde::Serializer { - serialize_duration::ser(self.values.0, - __s) - } - } - &__SerializeWith{values: - (&self.expires_in,), - phantom: - _serde::export::PhantomData::,} - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl AddFilterRequest { - /// Create a new AddFilterRequest - pub fn new(phrase: &str, context: FilterContext) - -> AddFilterRequest { - AddFilterRequest{phrase: phrase.to_string(), - context, - irreversible: None, - whole_word: None, - expires_in: None,} - } - /// Set `irreversible` to `true` - pub fn irreversible(&mut self) -> &mut Self { - self.irreversible = Some(true); - self - } - /// Set `whole_word` to `true` - pub fn whole_word(&mut self) -> &mut Self { - self.whole_word = Some(true); - self - } - /// Set `expires_in` to a duration - pub fn expires_in(&mut self, d: Duration) -> &mut Self { - self.expires_in = Some(d); - self - } - } - mod serialize_duration { - use serde::ser::Serializer; - use std::time::Duration; - pub(crate) fn ser(duration: &Option, s: S) - -> Result where S: Serializer { - if let Some(d) = duration { - let sec = d.as_secs(); - s.serialize_u64(sec) - } else { s.serialize_none() } - } - } - } - mod push { - use crate::entities::push::{add_subscription, update_data}; - use crate::errors::Result; - /// Container for the key & auth strings for an AddPushRequest - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::requests::Keys; - /// - /// let keys = Keys::new("anetohias===", "oeatssah="); - /// ``` - pub struct Keys { - pub(crate) p256dh: String, - pub(crate) auth: String, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Keys { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - Keys { p256dh: ref __self_0_0, auth: ref __self_0_1 } => { - let mut debug_trait_builder = f.debug_struct("Keys"); - let _ = - debug_trait_builder.field("p256dh", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("auth", - &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for Keys { - #[inline] - fn default() -> Keys { - Keys{p256dh: ::core::default::Default::default(), - auth: ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Keys { - #[inline] - fn clone(&self) -> Keys { - match *self { - Keys { p256dh: ref __self_0_0, auth: ref __self_0_1 } => - Keys{p256dh: ::core::clone::Clone::clone(&(*__self_0_0)), - auth: ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for Keys { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Keys { - #[inline] - fn eq(&self, other: &Keys) -> bool { - match *other { - Keys { p256dh: ref __self_1_0, auth: ref __self_1_1 } => - match *self { - Keys { p256dh: ref __self_0_0, auth: ref __self_0_1 } - => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1), - }, - } - } - #[inline] - fn ne(&self, other: &Keys) -> bool { - match *other { - Keys { p256dh: ref __self_1_0, auth: ref __self_1_1 } => - match *self { - Keys { p256dh: ref __self_0_0, auth: ref __self_0_1 } - => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1), - }, - } - } - } - impl Keys { - /// Create the `Keys` container - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::requests::Keys; - /// - /// let keys = Keys::new("anetohias===", "oeatssah="); - /// ``` - pub fn new(p256dh: &str, auth: &str) -> Keys { - Keys{p256dh: p256dh.to_string(), auth: auth.to_string(),} - } - } - /// Builder to pass to the Mastodon::add_push_subscription method - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # use elefren::{MastodonClient, Mastodon, Data}; - /// # fn main() -> Result<(), elefren::Error> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// use elefren::requests::{AddPushRequest, Keys}; - /// - /// let client = Mastodon::from(data); - /// - /// let keys = Keys::new("stahesuahoei293ise===", "tasecoa,nmeozka=="); - /// let mut request = AddPushRequest::new("http://example.com/push/endpoint", &keys); - /// request.follow().reblog(); - /// - /// client.add_push_subscription(&request)?; - /// # Ok(()) - /// # } - /// ``` - pub struct AddPushRequest { - endpoint: String, - p256dh: String, - auth: String, - follow: Option, - favourite: Option, - reblog: Option, - mention: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for AddPushRequest { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - AddPushRequest { - endpoint: ref __self_0_0, - p256dh: ref __self_0_1, - auth: ref __self_0_2, - follow: ref __self_0_3, - favourite: ref __self_0_4, - reblog: ref __self_0_5, - mention: ref __self_0_6 } => { - let mut debug_trait_builder = - f.debug_struct("AddPushRequest"); - let _ = - debug_trait_builder.field("endpoint", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("p256dh", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("auth", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("follow", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("favourite", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("reblog", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("mention", - &&(*__self_0_6)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for AddPushRequest { - #[inline] - fn default() -> AddPushRequest { - AddPushRequest{endpoint: ::core::default::Default::default(), - p256dh: ::core::default::Default::default(), - auth: ::core::default::Default::default(), - follow: ::core::default::Default::default(), - favourite: ::core::default::Default::default(), - reblog: ::core::default::Default::default(), - mention: ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for AddPushRequest { - #[inline] - fn clone(&self) -> AddPushRequest { - match *self { - AddPushRequest { - endpoint: ref __self_0_0, - p256dh: ref __self_0_1, - auth: ref __self_0_2, - follow: ref __self_0_3, - favourite: ref __self_0_4, - reblog: ref __self_0_5, - mention: ref __self_0_6 } => - AddPushRequest{endpoint: - ::core::clone::Clone::clone(&(*__self_0_0)), - p256dh: - ::core::clone::Clone::clone(&(*__self_0_1)), - auth: - ::core::clone::Clone::clone(&(*__self_0_2)), - follow: - ::core::clone::Clone::clone(&(*__self_0_3)), - favourite: - ::core::clone::Clone::clone(&(*__self_0_4)), - reblog: - ::core::clone::Clone::clone(&(*__self_0_5)), - mention: - ::core::clone::Clone::clone(&(*__self_0_6)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for AddPushRequest { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for AddPushRequest { - #[inline] - fn eq(&self, other: &AddPushRequest) -> bool { - match *other { - AddPushRequest { - endpoint: ref __self_1_0, - p256dh: ref __self_1_1, - auth: ref __self_1_2, - follow: ref __self_1_3, - favourite: ref __self_1_4, - reblog: ref __self_1_5, - mention: ref __self_1_6 } => - match *self { - AddPushRequest { - endpoint: ref __self_0_0, - p256dh: ref __self_0_1, - auth: ref __self_0_2, - follow: ref __self_0_3, - favourite: ref __self_0_4, - reblog: ref __self_0_5, - mention: ref __self_0_6 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6), - }, - } - } - #[inline] - fn ne(&self, other: &AddPushRequest) -> bool { - match *other { - AddPushRequest { - endpoint: ref __self_1_0, - p256dh: ref __self_1_1, - auth: ref __self_1_2, - follow: ref __self_1_3, - favourite: ref __self_1_4, - reblog: ref __self_1_5, - mention: ref __self_1_6 } => - match *self { - AddPushRequest { - endpoint: ref __self_0_0, - p256dh: ref __self_0_1, - auth: ref __self_0_2, - follow: ref __self_0_3, - favourite: ref __self_0_4, - reblog: ref __self_0_5, - mention: ref __self_0_6 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6), - }, - } - } - } - impl AddPushRequest { - /// Construct a new AddPushRequest - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::requests::{AddPushRequest, Keys}; - /// let keys = Keys::new("abcdef===", "foobar=="); - /// let push_endpoint = "https://example.com/push/endpoint"; - /// let request = AddPushRequest::new(push_endpoint, &keys); - /// ``` - pub fn new(endpoint: &str, keys: &Keys) -> AddPushRequest { - AddPushRequest{endpoint: endpoint.to_string(), - p256dh: keys.p256dh.clone(), - auth: keys.auth.clone(), ..Default::default()} - } - /// A flag that indicates if you want follow notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::{AddPushRequest, Keys}; - /// let keys = Keys::new("abcdef===", "foobar=="); - /// let push_endpoint = "https://example.com/push/endpoint"; - /// let mut request = AddPushRequest::new(push_endpoint, &keys); - /// request.follow(); - /// ``` - pub fn follow(&mut self) -> &mut Self { - self.follow = Some(true); - self - } - /// A flag that indicates if you want favourite notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::{AddPushRequest, Keys}; - /// let keys = Keys::new("abcdef===", "foobar=="); - /// let push_endpoint = "https://example.com/push/endpoint"; - /// let mut request = AddPushRequest::new(push_endpoint, &keys); - /// request.favourite(); - /// ``` - pub fn favourite(&mut self) -> &mut Self { - self.favourite = Some(true); - self - } - /// A flag that indicates if you want reblog notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::{AddPushRequest, Keys}; - /// let keys = Keys::new("abcdef===", "foobar=="); - /// let push_endpoint = "https://example.com/push/endpoint"; - /// let mut request = AddPushRequest::new(push_endpoint, &keys); - /// request.reblog(); - /// ``` - pub fn reblog(&mut self) -> &mut Self { - self.reblog = Some(true); - self - } - /// A flag that indicates if you want mention notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::{AddPushRequest, Keys}; - /// let keys = Keys::new("abcdef===", "foobar=="); - /// let push_endpoint = "https://example.com/push/endpoint"; - /// let mut request = AddPushRequest::new(push_endpoint, &keys); - /// request.mention(); - /// ``` - pub fn mention(&mut self) -> &mut Self { - self.mention = Some(true); - self - } - fn flags_present(&self) -> bool { - self.follow.is_some() || self.favourite.is_some() || - self.reblog.is_some() || self.mention.is_some() - } - pub(crate) fn build(&self) -> Result { - use crate::entities::push::{add_subscription::{Data, Form, - Keys, - Subscription}, - Alerts}; - let mut form = - Form{subscription: - Subscription{endpoint: self.endpoint.clone(), - keys: - Keys{p256dh: - self.p256dh.clone(), - auth: - self.auth.clone(),},}, - data: None,}; - if self.flags_present() { - let mut alerts = Alerts::default(); - if let Some(follow) = self.follow { - alerts.follow = Some(follow); - } - if let Some(favourite) = self.favourite { - alerts.favourite = Some(favourite); - } - if let Some(reblog) = self.reblog { - alerts.reblog = Some(reblog); - } - if let Some(mention) = self.mention { - alerts.mention = Some(mention); - } - form.data = Some(Data{alerts: Some(alerts),}); - } - Ok(form) - } - } - /// Builder to pass to the Mastodon::update_push_data method - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # use elefren::{MastodonClient, Mastodon, Data}; - /// # fn main() -> Result<(), elefren::Error> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// use elefren::requests::UpdatePushRequest; - /// - /// let client = Mastodon::from(data); - /// - /// let mut request = UpdatePushRequest::new("foobar"); - /// request.follow(true).reblog(true); - /// - /// client.update_push_data(&request)?; - /// # Ok(()) - /// # } - /// ``` - pub struct UpdatePushRequest { - id: String, - follow: Option, - favourite: Option, - reblog: Option, - mention: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for UpdatePushRequest { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - UpdatePushRequest { - id: ref __self_0_0, - follow: ref __self_0_1, - favourite: ref __self_0_2, - reblog: ref __self_0_3, - mention: ref __self_0_4 } => { - let mut debug_trait_builder = - f.debug_struct("UpdatePushRequest"); - let _ = - debug_trait_builder.field("id", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("follow", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("favourite", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("reblog", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("mention", - &&(*__self_0_4)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for UpdatePushRequest { - #[inline] - fn default() -> UpdatePushRequest { - UpdatePushRequest{id: ::core::default::Default::default(), - follow: ::core::default::Default::default(), - favourite: - ::core::default::Default::default(), - reblog: ::core::default::Default::default(), - mention: - ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for UpdatePushRequest { - #[inline] - fn clone(&self) -> UpdatePushRequest { - match *self { - UpdatePushRequest { - id: ref __self_0_0, - follow: ref __self_0_1, - favourite: ref __self_0_2, - reblog: ref __self_0_3, - mention: ref __self_0_4 } => - UpdatePushRequest{id: - ::core::clone::Clone::clone(&(*__self_0_0)), - follow: - ::core::clone::Clone::clone(&(*__self_0_1)), - favourite: - ::core::clone::Clone::clone(&(*__self_0_2)), - reblog: - ::core::clone::Clone::clone(&(*__self_0_3)), - mention: - ::core::clone::Clone::clone(&(*__self_0_4)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for UpdatePushRequest { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for UpdatePushRequest { - #[inline] - fn eq(&self, other: &UpdatePushRequest) -> bool { - match *other { - UpdatePushRequest { - id: ref __self_1_0, - follow: ref __self_1_1, - favourite: ref __self_1_2, - reblog: ref __self_1_3, - mention: ref __self_1_4 } => - match *self { - UpdatePushRequest { - id: ref __self_0_0, - follow: ref __self_0_1, - favourite: ref __self_0_2, - reblog: ref __self_0_3, - mention: ref __self_0_4 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4), - }, - } - } - #[inline] - fn ne(&self, other: &UpdatePushRequest) -> bool { - match *other { - UpdatePushRequest { - id: ref __self_1_0, - follow: ref __self_1_1, - favourite: ref __self_1_2, - reblog: ref __self_1_3, - mention: ref __self_1_4 } => - match *self { - UpdatePushRequest { - id: ref __self_0_0, - follow: ref __self_0_1, - favourite: ref __self_0_2, - reblog: ref __self_0_3, - mention: ref __self_0_4 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_UpdatePushRequest: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for UpdatePushRequest { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "UpdatePushRequest", - false - as - usize - + 1 - + 1 - + 1 - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "id", - &self.id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "follow", - &self.follow) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "favourite", - &self.favourite) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "reblog", - &self.reblog) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "mention", - &self.mention) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl UpdatePushRequest { - /// Construct a new UpdatePushRequest - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::requests::UpdatePushRequest; - /// let request = UpdatePushRequest::new("some-id"); - /// ``` - pub fn new(id: &str) -> UpdatePushRequest { - UpdatePushRequest{id: id.to_string(), ..Default::default()} - } - /// A flag that indicates if you want follow notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::UpdatePushRequest; - /// let mut request = UpdatePushRequest::new("foobar"); - /// request.follow(true); - /// ``` - pub fn follow(&mut self, follow: bool) -> &mut Self { - self.follow = Some(follow); - self - } - /// A flag that indicates if you want favourite notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::UpdatePushRequest; - /// let mut request = UpdatePushRequest::new("foobar"); - /// request.favourite(true); - /// ``` - pub fn favourite(&mut self, favourite: bool) -> &mut Self { - self.favourite = Some(favourite); - self - } - /// A flag that indicates if you want reblog notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::UpdatePushRequest; - /// let mut request = UpdatePushRequest::new("foobar"); - /// request.reblog(true); - /// ``` - pub fn reblog(&mut self, reblog: bool) -> &mut Self { - self.reblog = Some(reblog); - self - } - /// A flag that indicates if you want mention notifications pushed - /// - /// # Example - /// ``` - /// # extern crate elefren; - /// use elefren::requests::UpdatePushRequest; - /// let mut request = UpdatePushRequest::new("foobar"); - /// request.mention(true); - /// ``` - pub fn mention(&mut self, mention: bool) -> &mut Self { - self.mention = Some(mention); - self - } - fn flags_present(&self) -> bool { - self.follow.is_some() || self.favourite.is_some() || - self.reblog.is_some() || self.mention.is_some() - } - pub(crate) fn build(&self) -> update_data::Form { - use crate::entities::push::{update_data::{Data, Form}, - Alerts}; - let mut form = - Form{id: self.id.clone(), ..Default::default()}; - if self.flags_present() { - let mut alerts = Alerts::default(); - if let Some(follow) = self.follow { - alerts.follow = Some(follow); - } - if let Some(favourite) = self.favourite { - alerts.favourite = Some(favourite); - } - if let Some(reblog) = self.reblog { - alerts.reblog = Some(reblog); - } - if let Some(mention) = self.mention { - alerts.mention = Some(mention); - } - form.data = Data{alerts: Some(alerts),}; - } - form - } - } - } - mod statuses { - use crate::errors::Error; - use serde_qs; - use std::{borrow::Cow, convert::Into}; - mod bool_qs_serialize { - use serde::Serializer; - pub fn is_false(b: &bool) -> bool { !*b } - pub fn serialize(b: &bool, s: S) - -> Result { - if *b { s.serialize_i64(1) } else { s.serialize_i64(0) } - } - } - /// Builder for making a client.statuses() call - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// request.only_media().pinned().since_id("foo"); - /// # assert_eq!(&request.to_querystring().expect("Couldn't serialize qs")[..], "?only_media=1&pinned=1&since_id=foo"); - /// ``` - pub struct StatusesRequest<'a> { - #[serde(skip_serializing_if = "bool_qs_serialize::is_false")] - #[serde(serialize_with = "bool_qs_serialize::serialize")] - only_media: bool, - #[serde(skip_serializing_if = "bool_qs_serialize::is_false")] - #[serde(serialize_with = "bool_qs_serialize::serialize")] - exclude_replies: bool, - #[serde(skip_serializing_if = "bool_qs_serialize::is_false")] - #[serde(serialize_with = "bool_qs_serialize::serialize")] - pinned: bool, - #[serde(skip_serializing_if = "Option::is_none")] - max_id: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - since_id: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - limit: Option, - #[serde(skip_serializing_if = "Option::is_none")] - min_id: Option>, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::clone::Clone for StatusesRequest<'a> { - #[inline] - fn clone(&self) -> StatusesRequest<'a> { - match *self { - StatusesRequest { - only_media: ref __self_0_0, - exclude_replies: ref __self_0_1, - pinned: ref __self_0_2, - max_id: ref __self_0_3, - since_id: ref __self_0_4, - limit: ref __self_0_5, - min_id: ref __self_0_6 } => - StatusesRequest{only_media: - ::core::clone::Clone::clone(&(*__self_0_0)), - exclude_replies: - ::core::clone::Clone::clone(&(*__self_0_1)), - pinned: - ::core::clone::Clone::clone(&(*__self_0_2)), - max_id: - ::core::clone::Clone::clone(&(*__self_0_3)), - since_id: - ::core::clone::Clone::clone(&(*__self_0_4)), - limit: - ::core::clone::Clone::clone(&(*__self_0_5)), - min_id: - ::core::clone::Clone::clone(&(*__self_0_6)),}, - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::fmt::Debug for StatusesRequest<'a> { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - StatusesRequest { - only_media: ref __self_0_0, - exclude_replies: ref __self_0_1, - pinned: ref __self_0_2, - max_id: ref __self_0_3, - since_id: ref __self_0_4, - limit: ref __self_0_5, - min_id: ref __self_0_6 } => { - let mut debug_trait_builder = - f.debug_struct("StatusesRequest"); - let _ = - debug_trait_builder.field("only_media", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("exclude_replies", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("pinned", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("max_id", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("since_id", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("limit", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("min_id", - &&(*__self_0_6)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::default::Default for StatusesRequest<'a> { - #[inline] - fn default() -> StatusesRequest<'a> { - StatusesRequest{only_media: - ::core::default::Default::default(), - exclude_replies: - ::core::default::Default::default(), - pinned: ::core::default::Default::default(), - max_id: ::core::default::Default::default(), - since_id: ::core::default::Default::default(), - limit: ::core::default::Default::default(), - min_id: ::core::default::Default::default(),} - } - } - impl <'a> ::core::marker::StructuralPartialEq for StatusesRequest<'a> - { - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl <'a> ::core::cmp::PartialEq for StatusesRequest<'a> { - #[inline] - fn eq(&self, other: &StatusesRequest<'a>) -> bool { - match *other { - StatusesRequest { - only_media: ref __self_1_0, - exclude_replies: ref __self_1_1, - pinned: ref __self_1_2, - max_id: ref __self_1_3, - since_id: ref __self_1_4, - limit: ref __self_1_5, - min_id: ref __self_1_6 } => - match *self { - StatusesRequest { - only_media: ref __self_0_0, - exclude_replies: ref __self_0_1, - pinned: ref __self_0_2, - max_id: ref __self_0_3, - since_id: ref __self_0_4, - limit: ref __self_0_5, - min_id: ref __self_0_6 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6), - }, - } - } - #[inline] - fn ne(&self, other: &StatusesRequest<'a>) -> bool { - match *other { - StatusesRequest { - only_media: ref __self_1_0, - exclude_replies: ref __self_1_1, - pinned: ref __self_1_2, - max_id: ref __self_1_3, - since_id: ref __self_1_4, - limit: ref __self_1_5, - min_id: ref __self_1_6 } => - match *self { - StatusesRequest { - only_media: ref __self_0_0, - exclude_replies: ref __self_0_1, - pinned: ref __self_0_2, - max_id: ref __self_0_3, - since_id: ref __self_0_4, - limit: ref __self_0_5, - min_id: ref __self_0_6 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6), - }, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_StatusesRequest: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'a> _serde::Serialize for StatusesRequest<'a> { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "StatusesRequest", - false - as - usize - + - if bool_qs_serialize::is_false(&self.only_media) - { - 0 - } else { - 1 - } + - if bool_qs_serialize::is_false(&self.exclude_replies) - { - 0 - } else { - 1 - } + - if bool_qs_serialize::is_false(&self.pinned) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.max_id) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.since_id) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.limit) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.min_id) - { - 0 - } else { - 1 - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if !bool_qs_serialize::is_false(&self.only_media) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "only_media", - { - struct __SerializeWith<'__a, - 'a: '__a> { - values: (&'__a bool,), - phantom: _serde::export::PhantomData>, - } - impl <'__a, - 'a: '__a> - _serde::Serialize - for - __SerializeWith<'__a, - 'a> - { - fn serialize<__S>(&self, - __s: - __S) - -> - _serde::export::Result<__S::Ok, - __S::Error> - where - __S: _serde::Serializer { - bool_qs_serialize::serialize(self.values.0, - __s) - } - } - &__SerializeWith{values: - (&self.only_media,), - phantom: - _serde::export::PhantomData::>,} - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "only_media") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !bool_qs_serialize::is_false(&self.exclude_replies) - { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "exclude_replies", - { - struct __SerializeWith<'__a, - 'a: '__a> { - values: (&'__a bool,), - phantom: _serde::export::PhantomData>, - } - impl <'__a, - 'a: '__a> - _serde::Serialize - for - __SerializeWith<'__a, - 'a> - { - fn serialize<__S>(&self, - __s: - __S) - -> - _serde::export::Result<__S::Ok, - __S::Error> - where - __S: _serde::Serializer { - bool_qs_serialize::serialize(self.values.0, - __s) - } - } - &__SerializeWith{values: - (&self.exclude_replies,), - phantom: - _serde::export::PhantomData::>,} - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "exclude_replies") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !bool_qs_serialize::is_false(&self.pinned) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "pinned", - { - struct __SerializeWith<'__a, - 'a: '__a> { - values: (&'__a bool,), - phantom: _serde::export::PhantomData>, - } - impl <'__a, - 'a: '__a> - _serde::Serialize - for - __SerializeWith<'__a, - 'a> - { - fn serialize<__S>(&self, - __s: - __S) - -> - _serde::export::Result<__S::Ok, - __S::Error> - where - __S: _serde::Serializer { - bool_qs_serialize::serialize(self.values.0, - __s) - } - } - &__SerializeWith{values: - (&self.pinned,), - phantom: - _serde::export::PhantomData::>,} - }) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "pinned") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.max_id) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "max_id", - &self.max_id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "max_id") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.since_id) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "since_id", - &self.since_id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "since_id") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.limit) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "limit", - &self.limit) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "limit") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.min_id) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "min_id", - &self.min_id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "min_id") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl <'a> Into>> for - &'a mut StatusesRequest<'a> { - fn into(self) -> Option> { - Some(StatusesRequest{only_media: self.only_media, - exclude_replies: self.exclude_replies, - pinned: self.pinned, - max_id: self.max_id.clone(), - since_id: self.since_id.clone(), - limit: self.limit.clone(), - min_id: self.min_id.clone(),}) - } - } - impl <'a> StatusesRequest<'a> { - /// Construct a new `StatusesRequest` object - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let request = StatusesRequest::new(); - /// ``` - pub fn new() -> Self { Self::default() } - /// Set the `?only_media=1` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!(&request.only_media().to_querystring().expect("Couldn't serialize qs"), "?only_media=1"); - pub fn only_media(&mut self) -> &mut Self { - self.only_media = true; - self - } - /// Set the `?exclude_replies=1` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .exclude_replies() - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?exclude_replies=1" - /// ); - /// ``` - pub fn exclude_replies(&mut self) -> &mut Self { - self.exclude_replies = true; - self - } - /// Set the `?pinned=1` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .pinned() - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?pinned=1" - /// ); - /// ``` - pub fn pinned(&mut self) -> &mut Self { self.pinned = true; self } - /// Set the `?max_id=:max_id` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .max_id("foo") - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?max_id=foo" - /// ); - /// ``` - pub fn max_id>>(&mut self, max_id: S) - -> &mut Self { - self.max_id = Some(max_id.into()); - self - } - /// Set the `?since_id=:since_id` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .since_id("foo") - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?since_id=foo" - /// ); - /// ``` - pub fn since_id>>(&mut self, since_id: S) - -> &mut Self { - self.since_id = Some(since_id.into()); - self - } - /// Set the `?limit=:limit` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .limit(10) - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?limit=10" - /// ); - /// ``` - pub fn limit(&mut self, limit: usize) -> &mut Self { - self.limit = Some(limit); - self - } - /// Set the `?min_id=:min_id` flag for the .statuses() request - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .min_id("foobar") - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?min_id=foobar" - /// ); - /// ``` - pub fn min_id>>(&mut self, min_id: S) - -> &mut Self { - self.min_id = Some(min_id.into()); - self - } - /// Turns this builder into a querystring - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::StatusesRequest; - /// let mut request = StatusesRequest::new(); - /// assert_eq!( - /// &request - /// .limit(10) - /// .pinned() - /// .to_querystring() - /// .expect("Couldn't serialize qs"), - /// "?pinned=1&limit=10" - /// ); - /// ``` - pub fn to_querystring(&self) -> Result { - Ok({ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["?"], - &match (&serde_qs::to_string(&self)?,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }) - } - } - } - mod update_credentials { - use std::{fmt::Display, path::{Path, PathBuf}}; - use crate::entities::account::{Credentials, MetadataField, - UpdateSource}; - use crate::errors::Result; - use crate::status_builder; - /// Builder to pass to the Mastodon::update_credentials method - /// - /// # Example - /// - /// ```no_run - /// # extern crate elefren; - /// # use elefren::Data; - /// # fn main() -> Result<(), elefren::Error> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// use elefren::{prelude::*, status_builder::Visibility, UpdateCredsRequest}; - /// - /// let client = Mastodon::from(data); - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.privacy(Visibility::Unlisted); - /// - /// let result = client.update_credentials(&mut builder)?; - /// # Ok(()) - /// # } - /// ``` - pub struct UpdateCredsRequest { - display_name: Option, - note: Option, - avatar: Option, - header: Option, - field_attributes: Vec, - privacy: Option, - sensitive: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for UpdateCredsRequest { - fn fmt(&self, f: &mut ::core::fmt::Formatter) - -> ::core::fmt::Result { - match *self { - UpdateCredsRequest { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - field_attributes: ref __self_0_4, - privacy: ref __self_0_5, - sensitive: ref __self_0_6 } => { - let mut debug_trait_builder = - f.debug_struct("UpdateCredsRequest"); - let _ = - debug_trait_builder.field("display_name", - &&(*__self_0_0)); - let _ = - debug_trait_builder.field("note", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("avatar", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("header", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("field_attributes", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("privacy", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("sensitive", - &&(*__self_0_6)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for UpdateCredsRequest { - #[inline] - fn default() -> UpdateCredsRequest { - UpdateCredsRequest{display_name: - ::core::default::Default::default(), - note: ::core::default::Default::default(), - avatar: - ::core::default::Default::default(), - header: - ::core::default::Default::default(), - field_attributes: - ::core::default::Default::default(), - privacy: - ::core::default::Default::default(), - sensitive: - ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for UpdateCredsRequest { - #[inline] - fn clone(&self) -> UpdateCredsRequest { - match *self { - UpdateCredsRequest { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - field_attributes: ref __self_0_4, - privacy: ref __self_0_5, - sensitive: ref __self_0_6 } => - UpdateCredsRequest{display_name: - ::core::clone::Clone::clone(&(*__self_0_0)), - note: - ::core::clone::Clone::clone(&(*__self_0_1)), - avatar: - ::core::clone::Clone::clone(&(*__self_0_2)), - header: - ::core::clone::Clone::clone(&(*__self_0_3)), - field_attributes: - ::core::clone::Clone::clone(&(*__self_0_4)), - privacy: - ::core::clone::Clone::clone(&(*__self_0_5)), - sensitive: - ::core::clone::Clone::clone(&(*__self_0_6)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for UpdateCredsRequest { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for UpdateCredsRequest { - #[inline] - fn eq(&self, other: &UpdateCredsRequest) -> bool { - match *other { - UpdateCredsRequest { - display_name: ref __self_1_0, - note: ref __self_1_1, - avatar: ref __self_1_2, - header: ref __self_1_3, - field_attributes: ref __self_1_4, - privacy: ref __self_1_5, - sensitive: ref __self_1_6 } => - match *self { - UpdateCredsRequest { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - field_attributes: ref __self_0_4, - privacy: ref __self_0_5, - sensitive: ref __self_0_6 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6), - }, - } - } - #[inline] - fn ne(&self, other: &UpdateCredsRequest) -> bool { - match *other { - UpdateCredsRequest { - display_name: ref __self_1_0, - note: ref __self_1_1, - avatar: ref __self_1_2, - header: ref __self_1_3, - field_attributes: ref __self_1_4, - privacy: ref __self_1_5, - sensitive: ref __self_1_6 } => - match *self { - UpdateCredsRequest { - display_name: ref __self_0_0, - note: ref __self_0_1, - avatar: ref __self_0_2, - header: ref __self_0_3, - field_attributes: ref __self_0_4, - privacy: ref __self_0_5, - sensitive: ref __self_0_6 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6), - }, - } - } - } - impl UpdateCredsRequest { - /// Create a new UpdateCredsRequest - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// ``` - pub fn new() -> UpdateCredsRequest { Default::default() } - /// Set the new display_name value - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.display_name("my new display name"); - /// ``` - pub fn display_name(&mut self, name: D) -> &mut Self { - self.display_name = Some(name.to_string()); - self - } - /// Set the new note value - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.note("my new note"); - /// ``` - pub fn note(&mut self, note: D) -> &mut Self { - self.note = Some(note.to_string()); - self - } - /// Set the new avatar value - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.avatar("/path/to/my/new/avatar"); - /// ``` - pub fn avatar>(&mut self, path: P) -> &mut Self { - let path = path.as_ref(); - let path = path.to_path_buf(); - self.avatar = Some(path); - self - } - /// Set the new header value - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.header("/path/to/my/new/header"); - /// ``` - pub fn header>(&mut self, path: P) -> &mut Self { - let path = path.as_ref(); - let path = path.to_path_buf(); - self.header = Some(path); - self - } - /// Set the new privacy value - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::{status_builder::Visibility, UpdateCredsRequest}; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.privacy(Visibility::Public); - /// ``` - pub fn privacy(&mut self, privacy: status_builder::Visibility) - -> &mut Self { - self.privacy = Some(privacy); - self - } - /// Set the new sensitive value - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.sensitive(true); - /// ``` - pub fn sensitive(&mut self, sensitive: bool) -> &mut Self { - self.sensitive = Some(sensitive); - self - } - /// Add a metadata field - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// use elefren::UpdateCredsRequest; - /// - /// let mut builder = UpdateCredsRequest::new(); - /// - /// builder.field_attribute("some key", "some value"); - /// ``` - pub fn field_attribute(&mut self, name: &str, value: &str) - -> &mut Self { - self.field_attributes.push(MetadataField::new(name, value)); - self - } - pub(crate) fn build(&mut self) -> Result { - Ok(Credentials{display_name: self.display_name.clone(), - note: self.note.clone(), - avatar: self.avatar.clone(), - header: self.avatar.clone(), - source: - Some(UpdateSource{privacy: - self.privacy.clone(), - sensitive: - self.sensitive.clone(),}), - fields_attributes: - self.field_attributes.clone(),}) - } - } - } -} -/// OAuth Scopes -pub mod scopes { - use std::{cmp::{Ordering, PartialEq, PartialOrd}, collections::HashSet, - fmt, ops::BitOr, str::FromStr}; - use serde::ser::{Serialize, Serializer}; - use crate::errors::Error; - use serde::{Deserialize, Deserializer}; - use serde::de::{self, Visitor}; - /// Represents a set of OAuth scopes - /// - /// # Example - /// - /// ```rust - /// use elefren::prelude::*; - /// - /// let read = Scopes::read_all(); - /// let write = Scopes::write_all(); - /// let follow = Scopes::follow(); - /// let all = read | write | follow; - /// ``` - pub struct Scopes { - scopes: HashSet, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Scopes { - #[inline] - fn clone(&self) -> Scopes { - match *self { - Scopes { scopes: ref __self_0_0 } => - Scopes{scopes: ::core::clone::Clone::clone(&(*__self_0_0)),}, - } - } - } - impl FromStr for Scopes { - type Err = Error; - fn from_str(s: &str) -> Result { - let mut set = HashSet::new(); - for scope in s.split_whitespace() { - let scope = Scope::from_str(&scope)?; - set.insert(scope); - } - Ok(Scopes{scopes: set,}) - } - } - impl Serialize for Scopes { - fn serialize(&self, serializer: S) - -> ::std::result::Result where S: Serializer { - let repr = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], - &match (&self,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - serializer.serialize_str(&repr) - } - } - struct DeserializeScopesVisitor; - impl <'de> Visitor<'de> for DeserializeScopesVisitor { - type Value = Scopes; - fn expecting(&self, formatter: &mut fmt::Formatter) - -> Result<(), fmt::Error> { - formatter.write_fmt(::core::fmt::Arguments::new_v1(&["space separated scopes"], - &match () { - () => [], - })) - } - fn visit_str(self, v: &str) -> Result where - E: de::Error { - Scopes::from_str(v).map_err(de::Error::custom) - } - } - impl <'de> Deserialize<'de> for Scopes { - fn deserialize(deserializer: D) - -> Result>::Error> where - D: Deserializer<'de> { - deserializer.deserialize_str(DeserializeScopesVisitor) - } - } - impl Scopes { - /// Represents all available oauth scopes: "read write follow push" - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::Scopes; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::all(); - /// assert_eq!(&format!("{}", scope), "read write follow push"); - /// # Ok(()) - /// # } - /// ``` - pub fn all() -> Scopes { - Scopes::read_all() | Scopes::write_all() | Scopes::follow() | - Scopes::push() - } - /// Represents the full "read" scope - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::Scopes; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::read_all(); - /// assert_eq!(&format!("{}", scope), "read"); - /// # Ok(()) - /// # } - /// ``` - pub fn read_all() -> Scopes { Scopes::_read(None) } - /// Represents a specific "read:___" scope - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::{Read, Scopes}; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::read(Read::Accounts); - /// assert_eq!(&format!("{}", scope), "read:accounts"); - /// # Ok(()) - /// # } - /// ``` - pub fn read(subscope: Read) -> Scopes { - Scopes::_read(Some(subscope)) - } - /// Represents the full "write" scope - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::Scopes; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::write_all(); - /// assert_eq!(&format!("{}", scope), "write"); - /// # Ok(()) - /// # } - /// ``` - pub fn write_all() -> Scopes { Scopes::_write(None) } - /// Represents a specific "write:___" scope - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::{Scopes, Write}; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::write(Write::Accounts); - /// assert_eq!(&format!("{}", scope), "write:accounts"); - /// # Ok(()) - /// # } - /// ``` - pub fn write(subscope: Write) -> Scopes { - Scopes::_write(Some(subscope)) - } - /// Represents the "follow" scope - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::Scopes; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::follow(); - /// assert_eq!(&format!("{}", scope), "follow"); - /// # Ok(()) - /// # } - /// ``` - pub fn follow() -> Scopes { Scopes::new(Scope::Follow) } - /// Represents the full "push" scope - /// - /// ``` - /// # extern crate elefren; - /// # use std::error::Error; - /// use elefren::scopes::Scopes; - /// - /// # fn main() -> Result<(), Box> { - /// let scope = Scopes::push(); - /// assert_eq!(&format!("{}", scope), "push"); - /// # Ok(()) - /// # } - /// ``` - pub fn push() -> Scopes { Scopes::new(Scope::Push) } - /// Combines 2 scopes together - /// - /// # Example - /// - /// ```rust - /// use elefren::prelude::*; - /// - /// let read = Scopes::read_all(); - /// let write = Scopes::write_all(); - /// let read_write = read.and(write); - /// ``` - pub fn and(self, other: Scopes) -> Scopes { - let newset: HashSet<_> = - self.scopes.union(&other.scopes).into_iter().map(|s| - *s).collect(); - Scopes{scopes: newset,} - } - fn _write(subscope: Option) -> Scopes { - Scopes::new(Scope::Write(subscope)) - } - fn _read(subscope: Option) -> Scopes { - Scopes::new(Scope::Read(subscope)) - } - fn new(scope: Scope) -> Scopes { - let mut set = HashSet::new(); - set.insert(scope); - Scopes{scopes: set,} - } - } - impl BitOr for Scopes { - type Output = Scopes; - fn bitor(self, other: Scopes) -> Self::Output { self.and(other) } - } - impl PartialEq for Scopes { - fn eq(&self, other: &Scopes) -> bool { - self.scopes.symmetric_difference(&other.scopes).next().is_none() - } - } - impl Default for Scopes { - fn default() -> Scopes { Scopes::read_all() } - } - impl fmt::Debug for Scopes { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_fmt(::core::fmt::Arguments::new_v1(&["["], - &match () { - () => [], - }))?; - for scope in &self.scopes { - f.write_fmt(::core::fmt::Arguments::new_v1(&[""], - &match (&&scope,) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - }))?; - } - Ok(f.write_fmt(::core::fmt::Arguments::new_v1(&["]"], - &match () { - () => [], - }))?) - } - } - impl fmt::Display for Scopes { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let mut start = true; - let scopes = - { - let mut scopes = self.scopes.iter().collect::>(); - scopes.sort(); - scopes - }; - for scope in &scopes { - if !start { - f.write_fmt(::core::fmt::Arguments::new_v1(&[" "], - &match () { - () => [], - }))?; - } else { start = false; } - f.write_fmt(::core::fmt::Arguments::new_v1(&[""], - &match (&&scope,) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - }))?; - } - Ok(()) - } - } - /// Permission scope of the application. - /// [Details on what each permission provides][1] - /// [1]: https://github.com/tootsuite/documentation/blob/master/Using-the-API/OAuth-details.md) - enum Scope { - - /// Read only permissions. - #[serde(rename = "read")] - Read(Option), - - /// Write only permissions. - #[serde(rename = "write")] - Write(Option), - - /// Only permission to add and remove followers. - #[serde(rename = "follow")] - Follow, - - /// Push permissions - #[serde(rename = "push")] - Push, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Scope { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match (&*self,) { - (&Scope::Read(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Read"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Scope::Write(ref __self_0),) => { - let mut debug_trait_builder = f.debug_tuple("Write"); - let _ = debug_trait_builder.field(&&(*__self_0)); - debug_trait_builder.finish() - } - (&Scope::Follow,) => { - let mut debug_trait_builder = f.debug_tuple("Follow"); - debug_trait_builder.finish() - } - (&Scope::Push,) => { - let mut debug_trait_builder = f.debug_tuple("Push"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Scope { - #[inline] - fn clone(&self) -> Scope { - { - let _: ::core::clone::AssertParamIsClone>; - let _: ::core::clone::AssertParamIsClone>; - *self - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Scope { } - impl ::core::marker::StructuralPartialEq for Scope { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Scope { - #[inline] - fn eq(&self, other: &Scope) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - (*__self_0) == (*__arg_1_0), - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - (*__self_0) == (*__arg_1_0), - _ => true, - } - } else { false } - } - } - #[inline] - fn ne(&self, other: &Scope) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - (*__self_0) != (*__arg_1_0), - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - (*__self_0) != (*__arg_1_0), - _ => false, - } - } else { true } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialOrd for Scope { - #[inline] - fn partial_cmp(&self, other: &Scope) - -> ::core::option::Option<::core::cmp::Ordering> { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - match ::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)) - { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - ::core::option::Option::Some(::core::cmp::Ordering::Equal), - cmp => cmp, - }, - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - match ::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)) - { - ::core::option::Option::Some(::core::cmp::Ordering::Equal) - => - ::core::option::Option::Some(::core::cmp::Ordering::Equal), - cmp => cmp, - }, - _ => - ::core::option::Option::Some(::core::cmp::Ordering::Equal), - } - } else { __self_vi.partial_cmp(&__arg_1_vi) } - } - } - #[inline] - fn lt(&self, other: &Scope) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Greater) - == ::core::cmp::Ordering::Less, - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Greater) - == ::core::cmp::Ordering::Less, - _ => false, - } - } else { __self_vi.lt(&__arg_1_vi) } - } - } - #[inline] - fn le(&self, other: &Scope) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Greater) - != ::core::cmp::Ordering::Greater, - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Greater) - != ::core::cmp::Ordering::Greater, - _ => true, - } - } else { __self_vi.le(&__arg_1_vi) } - } - } - #[inline] - fn gt(&self, other: &Scope) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Less) - == ::core::cmp::Ordering::Greater, - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Less) - == ::core::cmp::Ordering::Greater, - _ => false, - } - } else { __self_vi.gt(&__arg_1_vi) } - } - } - #[inline] - fn ge(&self, other: &Scope) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { - (&Scope::Read(ref __self_0), - &Scope::Read(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Less) - != ::core::cmp::Ordering::Less, - (&Scope::Write(ref __self_0), - &Scope::Write(ref __arg_1_0)) => - ::core::option::Option::unwrap_or(::core::cmp::PartialOrd::partial_cmp(&(*__self_0), - &(*__arg_1_0)), - ::core::cmp::Ordering::Less) - != ::core::cmp::Ordering::Less, - _ => true, - } - } else { __self_vi.ge(&__arg_1_vi) } - } - } - } - impl ::core::marker::StructuralEq for Scope { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::Eq for Scope { - #[inline] - #[doc(hidden)] - fn assert_receiver_is_total_eq(&self) -> () { - { - let _: ::core::cmp::AssertParamIsEq>; - let _: ::core::cmp::AssertParamIsEq>; - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::hash::Hash for Scope { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - match (&*self,) { - (&Scope::Read(ref __self_0),) => { - ::core::hash::Hash::hash(&unsafe { - ::core::intrinsics::discriminant_value(self) - }, state); - ::core::hash::Hash::hash(&(*__self_0), state) - } - (&Scope::Write(ref __self_0),) => { - ::core::hash::Hash::hash(&unsafe { - ::core::intrinsics::discriminant_value(self) - }, state); - ::core::hash::Hash::hash(&(*__self_0), state) - } - _ => { - ::core::hash::Hash::hash(&unsafe { - ::core::intrinsics::discriminant_value(self) - }, state) - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Scope: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Scope { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - match *self { - Scope::Read(ref __field0) => - _serde::Serializer::serialize_newtype_variant(__serializer, - "Scope", - 0u32, - "read", - __field0), - Scope::Write(ref __field0) => - _serde::Serializer::serialize_newtype_variant(__serializer, - "Scope", - 1u32, - "write", - __field0), - Scope::Follow => - _serde::Serializer::serialize_unit_variant(__serializer, - "Scope", - 2u32, - "follow"), - Scope::Push => - _serde::Serializer::serialize_unit_variant(__serializer, - "Scope", - 3u32, - "push"), - } - } - } - }; - impl FromStr for Scope { - type Err = Error; - fn from_str(s: &str) -> Result { - Ok(match s { - "read" => Scope::Read(None), - "write" => Scope::Write(None), - "follow" => Scope::Follow, - "push" => Scope::Push, - read if read.starts_with("read:") => { - let r: Read = Read::from_str(&read[5..])?; - Scope::Read(Some(r)) - } - write if write.starts_with("write:") => { - let w: Write = Write::from_str(&write[6..])?; - Scope::Write(Some(w)) - } - _ => return Err(Error::Other("Unknown scope".to_string())), - }) - } - } - impl Ord for Scope { - fn cmp(&self, other: &Scope) -> Ordering { - match (*self, *other) { - (Scope::Read(None), Scope::Read(None)) => Ordering::Equal, - (Scope::Read(None), Scope::Read(Some(..))) => Ordering::Less, - (Scope::Read(Some(..)), Scope::Read(None)) => - Ordering::Greater, - (Scope::Read(Some(ref a)), Scope::Read(Some(ref b))) => - a.cmp(b), - (Scope::Write(None), Scope::Write(None)) => Ordering::Equal, - (Scope::Write(None), Scope::Write(Some(..))) => - Ordering::Less, - (Scope::Write(Some(..)), Scope::Write(None)) => - Ordering::Greater, - (Scope::Write(Some(ref a)), Scope::Write(Some(ref b))) => - a.cmp(b), - (Scope::Read(..), Scope::Write(..)) => Ordering::Less, - (Scope::Read(..), Scope::Follow) => Ordering::Less, - (Scope::Read(..), Scope::Push) => Ordering::Less, - (Scope::Write(..), Scope::Read(..)) => Ordering::Greater, - (Scope::Write(..), Scope::Follow) => Ordering::Less, - (Scope::Write(..), Scope::Push) => Ordering::Less, - (Scope::Follow, Scope::Read(..)) => Ordering::Greater, - (Scope::Follow, Scope::Write(..)) => Ordering::Greater, - (Scope::Follow, Scope::Follow) => Ordering::Equal, - (Scope::Follow, Scope::Push) => Ordering::Less, - (Scope::Push, Scope::Push) => Ordering::Equal, - (Scope::Push, _) => Ordering::Greater, - } - } - } - impl fmt::Display for Scope { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use self::Scope::*; - let s = - match *self { - Read(Some(ref r)) => return fmt::Display::fmt(r, f), - Read(None) => "read", - Write(Some(ref w)) => return fmt::Display::fmt(w, f), - Write(None) => "write", - Follow => "follow", - Push => "push", - }; - f.write_fmt(::core::fmt::Arguments::new_v1(&[""], - &match (&s,) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - } - } - impl Default for Scope { - fn default() -> Self { Scope::Read(None) } - } - /// Represents the granular "read:___" oauth scopes - pub enum Read { - - /// Accounts - #[serde(rename = "accounts")] - Accounts, - - /// Blocks - #[serde(rename = "blocks")] - Blocks, - - /// Favourites - #[serde(rename = "favourites")] - Favourites, - - /// Filters - #[serde(rename = "filters")] - Filters, - - /// Follows - #[serde(rename = "follows")] - Follows, - - /// Lists - #[serde(rename = "lists")] - Lists, - - /// Mutes - #[serde(rename = "mutes")] - Mutes, - - /// Notifications - #[serde(rename = "notifications")] - Notifications, - - /// Reports - #[serde(rename = "reports")] - Reports, - - /// Search - #[serde(rename = "search")] - Search, - - /// Statuses - #[serde(rename = "statuses")] - Statuses, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Read { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match (&*self,) { - (&Read::Accounts,) => { - let mut debug_trait_builder = f.debug_tuple("Accounts"); - debug_trait_builder.finish() - } - (&Read::Blocks,) => { - let mut debug_trait_builder = f.debug_tuple("Blocks"); - debug_trait_builder.finish() - } - (&Read::Favourites,) => { - let mut debug_trait_builder = f.debug_tuple("Favourites"); - debug_trait_builder.finish() - } - (&Read::Filters,) => { - let mut debug_trait_builder = f.debug_tuple("Filters"); - debug_trait_builder.finish() - } - (&Read::Follows,) => { - let mut debug_trait_builder = f.debug_tuple("Follows"); - debug_trait_builder.finish() - } - (&Read::Lists,) => { - let mut debug_trait_builder = f.debug_tuple("Lists"); - debug_trait_builder.finish() - } - (&Read::Mutes,) => { - let mut debug_trait_builder = f.debug_tuple("Mutes"); - debug_trait_builder.finish() - } - (&Read::Notifications,) => { - let mut debug_trait_builder = - f.debug_tuple("Notifications"); - debug_trait_builder.finish() - } - (&Read::Reports,) => { - let mut debug_trait_builder = f.debug_tuple("Reports"); - debug_trait_builder.finish() - } - (&Read::Search,) => { - let mut debug_trait_builder = f.debug_tuple("Search"); - debug_trait_builder.finish() - } - (&Read::Statuses,) => { - let mut debug_trait_builder = f.debug_tuple("Statuses"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Read { - #[inline] - fn clone(&self) -> Read { { *self } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Read { } - impl ::core::marker::StructuralPartialEq for Read { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Read { - #[inline] - fn eq(&self, other: &Read) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { _ => true, } - } else { false } - } - } - } - impl ::core::marker::StructuralEq for Read { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::Eq for Read { - #[inline] - #[doc(hidden)] - fn assert_receiver_is_total_eq(&self) -> () { { } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::hash::Hash for Read { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - match (&*self,) { - _ => { - ::core::hash::Hash::hash(&unsafe { - ::core::intrinsics::discriminant_value(self) - }, state) - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Read: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Read { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - match *self { - Read::Accounts => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 0u32, - "accounts"), - Read::Blocks => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 1u32, - "blocks"), - Read::Favourites => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 2u32, - "favourites"), - Read::Filters => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 3u32, - "filters"), - Read::Follows => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 4u32, - "follows"), - Read::Lists => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 5u32, - "lists"), - Read::Mutes => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 6u32, - "mutes"), - Read::Notifications => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 7u32, - "notifications"), - Read::Reports => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 8u32, - "reports"), - Read::Search => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 9u32, - "search"), - Read::Statuses => - _serde::Serializer::serialize_unit_variant(__serializer, - "Read", - 10u32, - "statuses"), - } - } - } - }; - impl FromStr for Read { - type Err = Error; - fn from_str(s: &str) -> Result { - Ok(match s { - "accounts" => Read::Accounts, - "blocks" => Read::Blocks, - "favourites" => Read::Favourites, - "filters" => Read::Filters, - "follows" => Read::Follows, - "lists" => Read::Lists, - "mutes" => Read::Mutes, - "notifications" => Read::Notifications, - "reports" => Read::Reports, - "search" => Read::Search, - "statuses" => Read::Statuses, - _ => - return Err(Error::Other("Unknown 'read' subcategory".to_string())), - }) - } - } - impl PartialOrd for Read { - fn partial_cmp(&self, other: &Read) -> Option { - Some(self.cmp(other)) - } - } - impl Ord for Read { - fn cmp(&self, other: &Read) -> Ordering { - let a = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], - &match (&self,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - })); - res - }; - let b = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], - &match (&other,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - })); - res - }; - a.cmp(&b) - } - } - impl fmt::Display for Read { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_fmt(::core::fmt::Arguments::new_v1(&["read:"], - &match (&match *self { - Read::Accounts - => - "accounts", - Read::Blocks - => - "blocks", - Read::Favourites - => - "favourites", - Read::Filters - => - "filters", - Read::Follows - => - "follows", - Read::Lists - => - "lists", - Read::Mutes - => - "mutes", - Read::Notifications - => - "notifications", - Read::Reports - => - "reports", - Read::Search - => - "search", - Read::Statuses - => - "statuses", - },) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - } - } - /// Represents the granular "write:___" oauth scopes - pub enum Write { - - /// Accounts - #[serde(rename = "accounts")] - Accounts, - - /// Blocks - #[serde(rename = "blocks")] - Blocks, - - /// Favourites - #[serde(rename = "favourites")] - Favourites, - - /// Filters - #[serde(rename = "filters")] - Filters, - - /// Follows - #[serde(rename = "follows")] - Follows, - - /// Lists - #[serde(rename = "lists")] - Lists, - - /// Media - #[serde(rename = "media")] - Media, - - /// Mutes - #[serde(rename = "mutes")] - Mutes, - - /// Notifications - #[serde(rename = "notifications")] - Notifications, - - /// Reports - #[serde(rename = "reports")] - Reports, - - /// Statuses - #[serde(rename = "statuses")] - Statuses, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Write { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match (&*self,) { - (&Write::Accounts,) => { - let mut debug_trait_builder = f.debug_tuple("Accounts"); - debug_trait_builder.finish() - } - (&Write::Blocks,) => { - let mut debug_trait_builder = f.debug_tuple("Blocks"); - debug_trait_builder.finish() - } - (&Write::Favourites,) => { - let mut debug_trait_builder = f.debug_tuple("Favourites"); - debug_trait_builder.finish() - } - (&Write::Filters,) => { - let mut debug_trait_builder = f.debug_tuple("Filters"); - debug_trait_builder.finish() - } - (&Write::Follows,) => { - let mut debug_trait_builder = f.debug_tuple("Follows"); - debug_trait_builder.finish() - } - (&Write::Lists,) => { - let mut debug_trait_builder = f.debug_tuple("Lists"); - debug_trait_builder.finish() - } - (&Write::Media,) => { - let mut debug_trait_builder = f.debug_tuple("Media"); - debug_trait_builder.finish() - } - (&Write::Mutes,) => { - let mut debug_trait_builder = f.debug_tuple("Mutes"); - debug_trait_builder.finish() - } - (&Write::Notifications,) => { - let mut debug_trait_builder = - f.debug_tuple("Notifications"); - debug_trait_builder.finish() - } - (&Write::Reports,) => { - let mut debug_trait_builder = f.debug_tuple("Reports"); - debug_trait_builder.finish() - } - (&Write::Statuses,) => { - let mut debug_trait_builder = f.debug_tuple("Statuses"); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Write { - #[inline] - fn clone(&self) -> Write { { *self } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Write { } - impl ::core::marker::StructuralPartialEq for Write { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Write { - #[inline] - fn eq(&self, other: &Write) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { _ => true, } - } else { false } - } - } - } - impl ::core::marker::StructuralEq for Write { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::Eq for Write { - #[inline] - #[doc(hidden)] - fn assert_receiver_is_total_eq(&self) -> () { { } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::hash::Hash for Write { - fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { - match (&*self,) { - _ => { - ::core::hash::Hash::hash(&unsafe { - ::core::intrinsics::discriminant_value(self) - }, state) - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Write: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Write { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - match *self { - Write::Accounts => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 0u32, - "accounts"), - Write::Blocks => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 1u32, - "blocks"), - Write::Favourites => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 2u32, - "favourites"), - Write::Filters => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 3u32, - "filters"), - Write::Follows => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 4u32, - "follows"), - Write::Lists => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 5u32, - "lists"), - Write::Media => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 6u32, - "media"), - Write::Mutes => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 7u32, - "mutes"), - Write::Notifications => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 8u32, - "notifications"), - Write::Reports => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 9u32, - "reports"), - Write::Statuses => - _serde::Serializer::serialize_unit_variant(__serializer, - "Write", - 10u32, - "statuses"), - } - } - } - }; - impl FromStr for Write { - type Err = Error; - fn from_str(s: &str) -> Result { - Ok(match s { - "accounts" => Write::Accounts, - "blocks" => Write::Blocks, - "favourites" => Write::Favourites, - "filters" => Write::Filters, - "follows" => Write::Follows, - "lists" => Write::Lists, - "media" => Write::Media, - "mutes" => Write::Mutes, - "notifications" => Write::Notifications, - "reports" => Write::Reports, - "statuses" => Write::Statuses, - _ => - return Err(Error::Other("Unknown 'write' subcategory".to_string())), - }) - } - } - impl PartialOrd for Write { - fn partial_cmp(&self, other: &Write) -> Option { - Some(self.cmp(other)) - } - } - impl Ord for Write { - fn cmp(&self, other: &Write) -> Ordering { - let a = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], - &match (&self,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - })); - res - }; - let b = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&[""], - &match (&other,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Debug::fmt)], - })); - res - }; - a.cmp(&b) - } - } - impl fmt::Display for Write { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_fmt(::core::fmt::Arguments::new_v1(&["write:"], - &match (&match *self { - Write::Accounts - => - "accounts", - Write::Blocks - => - "blocks", - Write::Favourites - => - "favourites", - Write::Filters - => - "filters", - Write::Follows - => - "follows", - Write::Lists - => - "lists", - Write::Media - => - "media", - Write::Mutes - => - "mutes", - Write::Notifications - => - "notifications", - Write::Reports - => - "reports", - Write::Statuses - => - "statuses", - },) { - (arg0,) => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })) - } - } -} -/// Constructing a status -pub mod status_builder { - use isolang::Language; - /// A builder pattern struct for constructing a status. - /// - /// # Example - /// - /// ``` - /// # extern crate elefren; - /// # use elefren::{Language, StatusBuilder}; - /// - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .status("a status") - /// .sensitive(true) - /// .spoiler_text("a CW") - /// .language(Language::Eng) - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub struct StatusBuilder { - status: Option, - in_reply_to_id: Option, - media_ids: Option>, - sensitive: Option, - spoiler_text: Option, - content_type: Option, - visibility: Option, - language: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for StatusBuilder { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - StatusBuilder { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - content_type: ref __self_0_5, - visibility: ref __self_0_6, - language: ref __self_0_7 } => { - let mut debug_trait_builder = - f.debug_struct("StatusBuilder"); - let _ = - debug_trait_builder.field("status", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("in_reply_to_id", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("media_ids", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("sensitive", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("spoiler_text", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("content_type", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("visibility", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("language", - &&(*__self_0_7)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for StatusBuilder { - #[inline] - fn default() -> StatusBuilder { - StatusBuilder{status: ::core::default::Default::default(), - in_reply_to_id: ::core::default::Default::default(), - media_ids: ::core::default::Default::default(), - sensitive: ::core::default::Default::default(), - spoiler_text: ::core::default::Default::default(), - content_type: ::core::default::Default::default(), - visibility: ::core::default::Default::default(), - language: ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for StatusBuilder { - #[inline] - fn clone(&self) -> StatusBuilder { - match *self { - StatusBuilder { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - content_type: ref __self_0_5, - visibility: ref __self_0_6, - language: ref __self_0_7 } => - StatusBuilder{status: - ::core::clone::Clone::clone(&(*__self_0_0)), - in_reply_to_id: - ::core::clone::Clone::clone(&(*__self_0_1)), - media_ids: - ::core::clone::Clone::clone(&(*__self_0_2)), - sensitive: - ::core::clone::Clone::clone(&(*__self_0_3)), - spoiler_text: - ::core::clone::Clone::clone(&(*__self_0_4)), - content_type: - ::core::clone::Clone::clone(&(*__self_0_5)), - visibility: - ::core::clone::Clone::clone(&(*__self_0_6)), - language: - ::core::clone::Clone::clone(&(*__self_0_7)),}, - } - } - } - impl ::core::marker::StructuralPartialEq for StatusBuilder { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for StatusBuilder { - #[inline] - fn eq(&self, other: &StatusBuilder) -> bool { - match *other { - StatusBuilder { - status: ref __self_1_0, - in_reply_to_id: ref __self_1_1, - media_ids: ref __self_1_2, - sensitive: ref __self_1_3, - spoiler_text: ref __self_1_4, - content_type: ref __self_1_5, - visibility: ref __self_1_6, - language: ref __self_1_7 } => - match *self { - StatusBuilder { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - content_type: ref __self_0_5, - visibility: ref __self_0_6, - language: ref __self_0_7 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7), - }, - } - } - #[inline] - fn ne(&self, other: &StatusBuilder) -> bool { - match *other { - StatusBuilder { - status: ref __self_1_0, - in_reply_to_id: ref __self_1_1, - media_ids: ref __self_1_2, - sensitive: ref __self_1_3, - spoiler_text: ref __self_1_4, - content_type: ref __self_1_5, - visibility: ref __self_1_6, - language: ref __self_1_7 } => - match *self { - StatusBuilder { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - content_type: ref __self_0_5, - visibility: ref __self_0_6, - language: ref __self_0_7 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7), - }, - } - } - } - impl StatusBuilder { - /// Create a StatusBuilder object - /// - /// # Example - /// - /// ```rust,no_run - /// # use elefren::prelude::*; - /// # use elefren::status_builder::Visibility; - /// # fn main() -> Result<(), elefren::Error> { - /// # let data = Data { - /// # base: "".into(), - /// # client_id: "".into(), - /// # client_secret: "".into(), - /// # redirect: "".into(), - /// # token: "".into(), - /// # }; - /// # let client = Mastodon::from(data); - /// let status = StatusBuilder::new() - /// .status("a status") - /// .visibility(Visibility::Public) - /// .build()?; - /// client.new_status(status)?; - /// # Ok(()) - /// # } - /// ``` - pub fn new() -> StatusBuilder { StatusBuilder::default() } - /// Set the text for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new().status("awoooooo").build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn status>(&mut self, status: I) -> &mut Self { - self.status = Some(status.into()); - self - } - /// Set the in_reply_to_id for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .status("awooooo") - /// .in_reply_to("12345") - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn in_reply_to>(&mut self, id: I) -> &mut Self { - self.in_reply_to_id = Some(id.into()); - self - } - /// Set the media_ids for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new().media_ids(&["foo", "bar"]).build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn media_ids>(&mut self, ids: I) - -> &mut Self { - self.media_ids = - Some(ids.into_iter().map(|s| - s.to_string()).collect::>()); - self - } - /// Set the sensitive attribute for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .media_ids(&["foo", "bar"]) - /// .sensitive(true) - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn sensitive(&mut self, sensitive: bool) -> &mut Self { - self.sensitive = Some(sensitive); - self - } - /// Set the spoiler text/CW for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .status("awoooo!!") - /// .spoiler_text("awoo inside") - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn spoiler_text>(&mut self, spoiler_text: I) - -> &mut Self { - self.spoiler_text = Some(spoiler_text.into()); - self - } - /// Set the content type of the post - /// - /// This is a Pleroma and Glitch-soc extension of the API. - /// - /// # Possible values - /// - `text/plain` - /// - `text/html` - /// - `text/markdown` - /// - `text/bbcode` (Pleroma only) - /// - /// The set of supported content types may vary by server. - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .status("thicc") - /// .content_type("text/html") - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn content_type>(&mut self, content_type: I) - -> &mut Self { - self.content_type = Some(content_type.into()); - self - } - /// Set the visibility for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # use elefren::status_builder::Visibility; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .status("awooooooo") - /// .visibility(Visibility::Public) - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn visibility(&mut self, visibility: Visibility) -> &mut Self { - self.visibility = Some(visibility); - self - } - /// Set the language for the post - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # use elefren::Language; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new() - /// .status("awoo!!!!") - /// .language(Language::Eng) - /// .build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn language(&mut self, language: Language) -> &mut Self { - self.language = Some(language); - self - } - /// Constructs a NewStatus - /// - /// # Example - /// - /// ```rust - /// # use elefren::prelude::*; - /// # fn main() -> Result<(), elefren::Error> { - /// let status = StatusBuilder::new().status("awoo!").build()?; - /// # Ok(()) - /// # } - /// ``` - pub fn build(&self) -> Result { - if self.status.is_none() && self.media_ids.is_none() { - return Err(crate::Error::Other("status text or media ids are required in order to post a status".to_string())); - } - Ok(NewStatus{status: self.status.clone(), - in_reply_to_id: self.in_reply_to_id.clone(), - media_ids: self.media_ids.clone(), - sensitive: self.sensitive.clone(), - spoiler_text: self.spoiler_text.clone(), - visibility: self.visibility.clone(), - language: self.language.clone(), - content_type: self.content_type.clone(),}) - } - } - /// Represents a post that can be sent to the POST /api/v1/status endpoint - pub struct NewStatus { - #[serde(skip_serializing_if = "Option::is_none")] - status: Option, - #[serde(skip_serializing_if = "Option::is_none")] - in_reply_to_id: Option, - #[serde(skip_serializing_if = "Option::is_none")] - media_ids: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - sensitive: Option, - #[serde(skip_serializing_if = "Option::is_none")] - spoiler_text: Option, - #[serde(skip_serializing_if = "Option::is_none")] - visibility: Option, - #[serde(skip_serializing_if = "Option::is_none")] - language: Option, - #[serde(skip_serializing_if = "Option::is_none")] - content_type: Option, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for NewStatus { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - NewStatus { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - visibility: ref __self_0_5, - language: ref __self_0_6, - content_type: ref __self_0_7 } => { - let mut debug_trait_builder = f.debug_struct("NewStatus"); - let _ = - debug_trait_builder.field("status", &&(*__self_0_0)); - let _ = - debug_trait_builder.field("in_reply_to_id", - &&(*__self_0_1)); - let _ = - debug_trait_builder.field("media_ids", - &&(*__self_0_2)); - let _ = - debug_trait_builder.field("sensitive", - &&(*__self_0_3)); - let _ = - debug_trait_builder.field("spoiler_text", - &&(*__self_0_4)); - let _ = - debug_trait_builder.field("visibility", - &&(*__self_0_5)); - let _ = - debug_trait_builder.field("language", - &&(*__self_0_6)); - let _ = - debug_trait_builder.field("content_type", - &&(*__self_0_7)); - debug_trait_builder.finish() - } - } - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::default::Default for NewStatus { - #[inline] - fn default() -> NewStatus { - NewStatus{status: ::core::default::Default::default(), - in_reply_to_id: ::core::default::Default::default(), - media_ids: ::core::default::Default::default(), - sensitive: ::core::default::Default::default(), - spoiler_text: ::core::default::Default::default(), - visibility: ::core::default::Default::default(), - language: ::core::default::Default::default(), - content_type: ::core::default::Default::default(),} - } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for NewStatus { - #[inline] - fn clone(&self) -> NewStatus { - match *self { - NewStatus { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - visibility: ref __self_0_5, - language: ref __self_0_6, - content_type: ref __self_0_7 } => - NewStatus{status: ::core::clone::Clone::clone(&(*__self_0_0)), - in_reply_to_id: - ::core::clone::Clone::clone(&(*__self_0_1)), - media_ids: - ::core::clone::Clone::clone(&(*__self_0_2)), - sensitive: - ::core::clone::Clone::clone(&(*__self_0_3)), - spoiler_text: - ::core::clone::Clone::clone(&(*__self_0_4)), - visibility: - ::core::clone::Clone::clone(&(*__self_0_5)), - language: - ::core::clone::Clone::clone(&(*__self_0_6)), - content_type: - ::core::clone::Clone::clone(&(*__self_0_7)),}, - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_NewStatus: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for NewStatus { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "NewStatus", - false as - usize + - if Option::is_none(&self.status) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.in_reply_to_id) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.media_ids) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.sensitive) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.spoiler_text) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.visibility) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.language) - { - 0 - } else { - 1 - } + - if Option::is_none(&self.content_type) - { - 0 - } else { - 1 - }) { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if !Option::is_none(&self.status) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "status", - &self.status) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "status") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.in_reply_to_id) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "in_reply_to_id", - &self.in_reply_to_id) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "in_reply_to_id") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.media_ids) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "media_ids", - &self.media_ids) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "media_ids") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.sensitive) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "sensitive", - &self.sensitive) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "sensitive") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.spoiler_text) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "spoiler_text", - &self.spoiler_text) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "spoiler_text") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.visibility) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "visibility", - &self.visibility) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "visibility") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.language) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "language", - &self.language) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "language") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - if !Option::is_none(&self.content_type) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "content_type", - &self.content_type) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "content_type") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - impl ::core::marker::StructuralPartialEq for NewStatus { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for NewStatus { - #[inline] - fn eq(&self, other: &NewStatus) -> bool { - match *other { - NewStatus { - status: ref __self_1_0, - in_reply_to_id: ref __self_1_1, - media_ids: ref __self_1_2, - sensitive: ref __self_1_3, - spoiler_text: ref __self_1_4, - visibility: ref __self_1_5, - language: ref __self_1_6, - content_type: ref __self_1_7 } => - match *self { - NewStatus { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - visibility: ref __self_0_5, - language: ref __self_0_6, - content_type: ref __self_0_7 } => - (*__self_0_0) == (*__self_1_0) && - (*__self_0_1) == (*__self_1_1) && - (*__self_0_2) == (*__self_1_2) && - (*__self_0_3) == (*__self_1_3) && - (*__self_0_4) == (*__self_1_4) && - (*__self_0_5) == (*__self_1_5) && - (*__self_0_6) == (*__self_1_6) && - (*__self_0_7) == (*__self_1_7), - }, - } - } - #[inline] - fn ne(&self, other: &NewStatus) -> bool { - match *other { - NewStatus { - status: ref __self_1_0, - in_reply_to_id: ref __self_1_1, - media_ids: ref __self_1_2, - sensitive: ref __self_1_3, - spoiler_text: ref __self_1_4, - visibility: ref __self_1_5, - language: ref __self_1_6, - content_type: ref __self_1_7 } => - match *self { - NewStatus { - status: ref __self_0_0, - in_reply_to_id: ref __self_0_1, - media_ids: ref __self_0_2, - sensitive: ref __self_0_3, - spoiler_text: ref __self_0_4, - visibility: ref __self_0_5, - language: ref __self_0_6, - content_type: ref __self_0_7 } => - (*__self_0_0) != (*__self_1_0) || - (*__self_0_1) != (*__self_1_1) || - (*__self_0_2) != (*__self_1_2) || - (*__self_0_3) != (*__self_1_3) || - (*__self_0_4) != (*__self_1_4) || - (*__self_0_5) != (*__self_1_5) || - (*__self_0_6) != (*__self_1_6) || - (*__self_0_7) != (*__self_1_7), - }, - } - } - } - /// The visibility of a status. - #[serde(rename_all = "lowercase")] - pub enum Visibility { - - /// A Direct message to a user - Direct, - - /// Only available to followers - Private, - - /// Not shown in public timelines - Unlisted, - - /// Posted to public timelines - Public, - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::clone::Clone for Visibility { - #[inline] - fn clone(&self) -> Visibility { { *self } } - } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::marker::Copy for Visibility { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::fmt::Debug for Visibility { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match (&*self,) { - (&Visibility::Direct,) => { - let mut debug_trait_builder = f.debug_tuple("Direct"); - debug_trait_builder.finish() - } - (&Visibility::Private,) => { - let mut debug_trait_builder = f.debug_tuple("Private"); - debug_trait_builder.finish() - } - (&Visibility::Unlisted,) => { - let mut debug_trait_builder = f.debug_tuple("Unlisted"); - debug_trait_builder.finish() - } - (&Visibility::Public,) => { - let mut debug_trait_builder = f.debug_tuple("Public"); - debug_trait_builder.finish() - } - } - } - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_DESERIALIZE_FOR_Visibility: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'de> _serde::Deserialize<'de> for Visibility { - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - #[allow(non_camel_case_types)] - enum __Field { __field0, __field1, __field2, __field3, } - struct __FieldVisitor; - impl <'de> _serde::de::Visitor<'de> for __FieldVisitor { - type Value = __Field; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "variant identifier") - } - fn visit_u64<__E>(self, __value: u64) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - 0u64 => _serde::export::Ok(__Field::__field0), - 1u64 => _serde::export::Ok(__Field::__field1), - 2u64 => _serde::export::Ok(__Field::__field2), - 3u64 => _serde::export::Ok(__Field::__field3), - _ => - _serde::export::Err(_serde::de::Error::invalid_value(_serde::de::Unexpected::Unsigned(__value), - &"variant index 0 <= i < 4")), - } - } - fn visit_str<__E>(self, __value: &str) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - "direct" => - _serde::export::Ok(__Field::__field0), - "private" => - _serde::export::Ok(__Field::__field1), - "unlisted" => - _serde::export::Ok(__Field::__field2), - "public" => - _serde::export::Ok(__Field::__field3), - _ => { - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - fn visit_bytes<__E>(self, __value: &[u8]) - -> _serde::export::Result where - __E: _serde::de::Error { - match __value { - b"direct" => - _serde::export::Ok(__Field::__field0), - b"private" => - _serde::export::Ok(__Field::__field1), - b"unlisted" => - _serde::export::Ok(__Field::__field2), - b"public" => - _serde::export::Ok(__Field::__field3), - _ => { - let __value = - &_serde::export::from_utf8_lossy(__value); - _serde::export::Err(_serde::de::Error::unknown_variant(__value, - VARIANTS)) - } - } - } - } - impl <'de> _serde::Deserialize<'de> for __Field { - #[inline] - fn deserialize<__D>(__deserializer: __D) - -> _serde::export::Result where - __D: _serde::Deserializer<'de> { - _serde::Deserializer::deserialize_identifier(__deserializer, - __FieldVisitor) - } - } - struct __Visitor<'de> { - marker: _serde::export::PhantomData, - lifetime: _serde::export::PhantomData<&'de ()>, - } - impl <'de> _serde::de::Visitor<'de> for __Visitor<'de> { - type Value = Visibility; - fn expecting(&self, - __formatter: - &mut _serde::export::Formatter) - -> _serde::export::fmt::Result { - _serde::export::Formatter::write_str(__formatter, - "enum Visibility") - } - fn visit_enum<__A>(self, __data: __A) - -> _serde::export::Result - where __A: _serde::de::EnumAccess<'de> { - match match _serde::de::EnumAccess::variant(__data) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - } { - (__Field::__field0, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(Visibility::Direct) - } - (__Field::__field1, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(Visibility::Private) - } - (__Field::__field2, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(Visibility::Unlisted) - } - (__Field::__field3, __variant) => { - match _serde::de::VariantAccess::unit_variant(__variant) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::export::Ok(Visibility::Public) - } - } - } - } - const VARIANTS: &'static [&'static str] = - &["direct", "private", "unlisted", "public"]; - _serde::Deserializer::deserialize_enum(__deserializer, - "Visibility", - VARIANTS, - __Visitor{marker: - _serde::export::PhantomData::, - lifetime: - _serde::export::PhantomData,}) - } - } - }; - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Visibility: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl _serde::Serialize for Visibility { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - match *self { - Visibility::Direct => - _serde::Serializer::serialize_unit_variant(__serializer, - "Visibility", - 0u32, - "direct"), - Visibility::Private => - _serde::Serializer::serialize_unit_variant(__serializer, - "Visibility", - 1u32, - "private"), - Visibility::Unlisted => - _serde::Serializer::serialize_unit_variant(__serializer, - "Visibility", - 2u32, - "unlisted"), - Visibility::Public => - _serde::Serializer::serialize_unit_variant(__serializer, - "Visibility", - 3u32, - "public"), - } - } - } - }; - impl ::core::marker::StructuralPartialEq for Visibility { } - #[automatically_derived] - #[allow(unused_qualifications)] - impl ::core::cmp::PartialEq for Visibility { - #[inline] - fn eq(&self, other: &Visibility) -> bool { - { - let __self_vi = - unsafe { ::core::intrinsics::discriminant_value(&*self) }; - let __arg_1_vi = - unsafe { - ::core::intrinsics::discriminant_value(&*other) - }; - if true && __self_vi == __arg_1_vi { - match (&*self, &*other) { _ => true, } - } else { false } - } - } - } - impl Default for Visibility { - fn default() -> Self { Visibility::Public } - } -} -#[macro_use] -mod macros { - macro_rules! methods { - ($ ($ method : ident,) +) => - { - $ - (fn $ method < T : for < 'de > serde :: Deserialize < 'de >> - (& self, url : String) -> Result < T > - { - let response = self . send(self . client . $ method(& url)) ? - ; deserialise(response) - }) + - } ; - } - macro_rules! paged_routes { - (($ method : ident) $ name : ident : $ url : expr => $ ret : ty, $ - ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `", stringify ! ($ method), " /api/v1/", $ - url, "`\n# Errors\nIf `access_token` is not set.", "\n", - "```no_run", "# extern crate elefren;\n", - "# use elefren::prelude::*;\n", - "# fn main() -> Result<(), Box<::std::error::Error>> {\n", - "# let data = Data {\n", - "# base: \"https://example.com\".into(),\n", - "# client_id: \"taosuah\".into(),\n", - "# client_secret: \"htnjdiuae\".into(),\n", - "# redirect: \"https://example.com\".into(),\n", - "# token: \"tsaohueaheis\".into(),\n", "# };\n", - "let client = Mastodon::from(data);\n", "client.", stringify - ! ($ name), "();\n", "# Ok(())\n", "# }\n", "```"), async - fn $ name(& self) -> Result < Page < '_, $ ret >> - { - let url = self . route(concat ! ("/api/v1/", $ url)) ; let - response = self . send(self . client . $ method(& url)) ? - ; Page :: new(self, response) - } - } paged_routes ! { $ ($ rest) * } - } ; - ((get($ ($ (# [$ m : meta]) * $ param : ident : $ typ : ty,) *)) $ - name : ident : $ url : expr => $ ret : ty, $ ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `get /api/v1/", $ url, - "`\n# Errors\nIf `access_token` is not set."), async fn $ - name < 'a > (& self, $ ($ param : $ typ,) *) -> Result < Page - < '_, $ ret >> - { - use serde_urlencoded ; # [derive(Serialize)] struct Data < - 'a > - { - $ ($ (# [$ m]) * $ param : $ typ,) * # [serde(skip)] - _marker : :: std :: marker :: PhantomData < & 'a () >, - } let qs_data = Data - { - $ ($ param : $ param,) * _marker : :: std :: marker :: - PhantomData, - } ; let qs = serde_urlencoded :: to_string(& qs_data) ? ; - let url = format ! - (concat ! ("/api/v1/", $ url, "?{}"), & qs) ; let response - = self . send(self . client . get(& url)) ? ; Page :: - new(self, response) - } - } paged_routes ! { $ ($ rest) * } - } ; () => { } - } - macro_rules! route_v2 { - ((get($ ($ param : ident : $ typ : ty,) *)) $ name : ident : $ url : - expr => $ ret : ty, $ ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `get /api/v2/", $ url, - "`\n# Errors\nIf `access_token` is not set."), fn $ name < 'a - > (& self, $ ($ param : $ typ,) *) -> Result < $ ret > - { - use serde_urlencoded ; # [derive(Serialize)] struct Data < - 'a > - { - $ ($ param : $ typ,) * # [serde(skip)] _marker : :: - std :: marker :: PhantomData < & 'a () >, - } let qs_data = Data - { - $ ($ param : $ param,) * _marker : :: std :: marker :: - PhantomData, - } ; let qs = serde_urlencoded :: to_string(& qs_data) ? ; - let url = format ! - (concat ! ("/api/v2/", $ url, "?{}"), & qs) ; - Ok(self . get(self . route(& url)) ?) - } - } route_v2 ! { $ ($ rest) * } - } ; () => { } - } - macro_rules! route { - ((post multipart($ ($ param : ident : $ typ : ty,) *)) $ name : ident - : $ url : expr => $ ret : ty, $ ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `post /api/v1/", $ url, - "`\n# Errors\nIf `access_token` is not set."), fn $ - name(& self, $ ($ param : $ typ,) *) -> Result < $ ret > - { - use reqwest :: multipart :: Form ; let form_data = Form :: - new() $ - (. file(stringify ! ($ param), $ param . as_ref()) ?) * ; - let response = self . - send(self . client . - post(& self . route(concat ! ("/api/v1/", $ url))) . - multipart(form_data)) ? ; let status = response . - status() . clone() ; if status . is_client_error() - { return Err(Error :: Client(status)) ; } else if status . - is_server_error() - { return Err(Error :: Server(status)) ; } - deserialise(response) - } - } route ! { $ ($ rest) * } - } ; - ((get($ ($ param : ident : $ typ : ty,) *)) $ name : ident : $ url : - expr => $ ret : ty, $ ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `get /api/v1/", $ url, - "`\n# Errors\nIf `access_token` is not set."), fn $ name < 'a - > (& self, $ ($ param : $ typ,) *) -> Result < $ ret > - { - use serde_urlencoded ; # [derive(Serialize)] struct Data < - 'a > - { - $ ($ param : $ typ,) * # [serde(skip)] _marker : :: - std :: marker :: PhantomData < & 'a () >, - } let qs_data = Data - { - $ ($ param : $ param,) * _marker : :: std :: marker :: - PhantomData, - } ; let qs = serde_urlencoded :: to_string(& qs_data) ? ; - let url = format ! - (concat ! ("/api/v1/", $ url, "?{}"), & qs) ; - Ok(self . get(self . route(& url)) ?) - } - } route ! { $ ($ rest) * } - } ; - (($ method : ident($ ($ param : ident : $ typ : ty,) *)) $ name : - ident : $ url : expr => $ ret : ty, $ ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `", stringify ! ($ method), " /api/v1/", $ - url, "`\n# Errors\nIf `access_token` is not set.",), fn $ - name(& self, $ ($ param : $ typ,) *) -> Result < $ ret > - { - let form_data = json ! - ({ $ (stringify ! ($ param) : $ param,) * }) ; let - response = self . - send(self . client . $ - method(& self . route(concat ! ("/api/v1/", $ url))) - . json(& form_data)) ? ; let status = response . - status() . clone() ; if status . is_client_error() - { return Err(Error :: Client(status)) ; } else if status . - is_server_error() - { return Err(Error :: Server(status)) ; } - deserialise(response) - } - } route ! { $ ($ rest) * } - } ; - (($ method : ident) $ name : ident : $ url : expr => $ ret : ty, $ - ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `", stringify ! ($ method), " /api/v1/", $ - url, "`\n# Errors\nIf `access_token` is not set.", "\n", - "```no_run", "# extern crate elefren;\n", - "# use elefren::prelude::*;\n", - "# fn main() -> Result<(), Box<::std::error::Error>> {\n", - "# let data = Data {\n", - "# base: \"https://example.com\".into(),\n", - "# client_id: \"taosuah\".into(),\n", - "# client_secret: \"htnjdiuae\".into(),\n", - "# redirect: \"https://example.com\".into(),\n", - "# token: \"tsaohueaheis\".into(),\n", "# };\n", - "let client = Mastodon::from(data);\n", "client.", stringify - ! ($ name), "();\n", "# Ok(())\n", "# }\n", "```"), fn $ - name(& self) -> Result < $ ret > - { - self . $ - method(self . route(concat ! ("/api/v1/", $ url))) - } - } route ! { $ ($ rest) * } - } ; () => { } - } - macro_rules! route_id { - ($ (($ method : ident) $ name : ident : $ url : expr => $ ret : ty,) - *) => - { - $ - (doc_comment ! - { - concat ! - ("Equivalent to `", stringify ! ($ method), " /api/v1/", $ - url, "`\n# Errors\nIf `access_token` is not set.", "\n", - "```no_run", "# extern crate elefren;\n", - "# use elefren::prelude::*;\n", - "# fn main() -> Result<(), Box<::std::error::Error>> {\n", - "# let data = Data {\n", - "# base: \"https://example.com\".into(),\n", - "# client_id: \"taosuah\".into(),\n", - "# client_secret: \"htnjdiuae\".into(),\n", - "# redirect: \"https://example.com\".into(),\n", - "# token: \"tsaohueaheis\".into(),\n", "# };\n", - "let client = Mastodon::from(data);\n", "client.", stringify - ! ($ name), "(\"42\");\n", "# Ok(())\n", "# }\n", "```"), - fn $ name(& self, id : & str) -> Result < $ ret > - { - self . $ - method(self . - route(& format ! - (concat ! ("/api/v1/", $ url), id))) - } - }) * - } - } - macro_rules! paged_routes_with_id { - (($ method : ident) $ name : ident : $ url : expr => $ ret : ty, $ - ($ rest : tt) *) => - { - doc_comment ! - { - concat ! - ("Equivalent to `", stringify ! ($ method), " /api/v1/", $ - url, "`\n# Errors\nIf `access_token` is not set.", "\n", - "```no_run", "# extern crate elefren;\n", - "# use elefren::prelude::*;\n", - "# fn main() -> Result<(), Box<::std::error::Error>> {\n", - "# let data = Data {\n", - "# base: \"https://example.com\".into(),\n", - "# client_id: \"taosuah\".into(),\n", - "# client_secret: \"htnjdiuae\".into(),\n", - "# redirect: \"https://example.com\".into(),\n", - "# token: \"tsaohueaheis\".into(),\n", "# };\n", - "let client = Mastodon::from(data);\n", "client.", stringify - ! ($ name), "(\"some-id\");\n", "# Ok(())\n", "# }\n", - "```"), fn $ name(& self, id : & str) -> Result < Page < $ - ret >> - { - let url = self . - route(& format ! (concat ! ("/api/v1/", $ url), id)) ; let - response = self . send(self . client . $ method(& url)) ? - ; Page :: new(self, response) - } - } paged_routes_with_id ! { $ ($ rest) * } - } ; () => { } - } -} -/// Automatically import the things you need -pub mod prelude { - pub use crate::scopes::Scopes; - pub use crate::Data; - pub use crate::Mastodon; - pub use crate::MastodonClient; - pub use crate::NewStatus; - pub use crate::Registration; - pub use crate::StatusBuilder; - pub use crate::StatusesRequest; -} -/// Your mastodon application client, handles all requests to and from Mastodon. -pub struct Mastodon { - client: Client, - /// Raw data about your mastodon instance. - pub data: Data, -} -#[automatically_derived] -#[allow(unused_qualifications)] -impl ::core::clone::Clone for Mastodon { - #[inline] - fn clone(&self) -> Mastodon { - match *self { - Mastodon { client: ref __self_0_0, data: ref __self_0_1 } => - Mastodon{client: ::core::clone::Clone::clone(&(*__self_0_0)), - data: ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } -} -#[automatically_derived] -#[allow(unused_qualifications)] -impl ::core::fmt::Debug for Mastodon { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - Mastodon { client: ref __self_0_0, data: ref __self_0_1 } => { - let mut debug_trait_builder = f.debug_struct("Mastodon"); - let _ = debug_trait_builder.field("client", &&(*__self_0_0)); - let _ = debug_trait_builder.field("data", &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } -} -impl Mastodon { - fn get serde::Deserialize<'de>>(&self, url: String) - -> Result { - let response = self.send(self.client.get(&url))?; - deserialise(response) - } - fn post serde::Deserialize<'de>>(&self, url: String) - -> Result { - let response = self.send(self.client.post(&url))?; - deserialise(response) - } - fn delete serde::Deserialize<'de>>(&self, url: String) - -> Result { - let response = self.send(self.client.delete(&url))?; - deserialise(response) - } - fn route(&self, url: &str) -> String { - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", ""], - &match (&self.base, - &url) - { - (arg0, - arg1) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt)], - })); - res - } - } - pub(crate) fn send(&self, req: RequestBuilder) -> Result { - let req = req.bearer_auth(&self.token).build()?; - Ok(self.client.execute(req)?) - } -} -impl From for Mastodon { - /// Creates a mastodon instance from the data struct. - fn from(data: Data) -> Mastodon { - let mut builder = MastodonBuilder::new(); - builder.data(data); - builder.build().expect("We know `data` is present, so this should be fine") - } -} -impl MastodonClient for Mastodon { - #[doc = - "Equivalent to `get /api/v1/favourites`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.favourites();\n# Ok(())\n# }\n```"] - async fn favourites(&self) -> Result> { - let url = self.route("/api/v1/favourites"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/blocks`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.blocks();\n# Ok(())\n# }\n```"] - async fn blocks(&self) -> Result> { - let url = self.route("/api/v1/blocks"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/domain_blocks`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.domain_blocks();\n# Ok(())\n# }\n```"] - async fn domain_blocks(&self) -> Result> { - let url = self.route("/api/v1/domain_blocks"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/follow_requests`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.follow_requests();\n# Ok(())\n# }\n```"] - async fn follow_requests(&self) -> Result> { - let url = self.route("/api/v1/follow_requests"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/timelines/home`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_home_timeline();\n# Ok(())\n# }\n```"] - async fn get_home_timeline(&self) -> Result> { - let url = self.route("/api/v1/timelines/home"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/custom_emojis`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_emojis();\n# Ok(())\n# }\n```"] - async fn get_emojis(&self) -> Result> { - let url = self.route("/api/v1/custom_emojis"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/mutes`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.mutes();\n# Ok(())\n# }\n```"] - async fn mutes(&self) -> Result> { - let url = self.route("/api/v1/mutes"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/notifications`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.notifications();\n# Ok(())\n# }\n```"] - async fn notifications(&self) -> Result> { - let url = self.route("/api/v1/notifications"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/reports`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.reports();\n# Ok(())\n# }\n```"] - async fn reports(&self) -> Result> { - let url = self.route("/api/v1/reports"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/accounts/search`\n# Errors\nIf `access_token` is not set."] - async fn search_accounts<'a>(&self, q: &'a str, limit: Option, - following: bool) - -> Result> { - use serde_urlencoded; - struct Data<'a> { - q: &'a str, - #[serde(skip_serializing_if = "Option::is_none")] - limit: Option, - following: bool, - #[serde(skip)] - _marker: ::std::marker::PhantomData<&'a ()>, - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'a> _serde::Serialize for Data<'a> { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false - as - usize - + 1 - + - if Option::is_none(&self.limit) - { - 0 - } else { - 1 - } + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "q", - &self.q) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - if !Option::is_none(&self.limit) { - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "limit", - &self.limit) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } else { - match _serde::ser::SerializeStruct::skip_field(&mut __serde_state, - "limit") - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - } - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "following", - &self.following) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - let qs_data = - Data{q: q, - limit: limit, - following: following, - _marker: ::std::marker::PhantomData,}; - let qs = serde_urlencoded::to_string(&qs_data)?; - let url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/search?"], - &match (&&qs,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/endorsements`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_endorsements();\n# Ok(())\n# }\n```"] - async fn get_endorsements(&self) -> Result> { - let url = self.route("/api/v1/endorsements"); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/accounts/{}/followers`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.followers(\"some-id\");\n# Ok(())\n# }\n```"] - fn followers(&self, id: &str) -> Result> { - let url = - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/followers"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/accounts/{}/following`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.following(\"some-id\");\n# Ok(())\n# }\n```"] - fn following(&self, id: &str) -> Result> { - let url = - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/following"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/statuses/{}/reblogged_by`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.reblogged_by(\"some-id\");\n# Ok(())\n# }\n```"] - fn reblogged_by(&self, id: &str) -> Result> { - let url = - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/reblogged_by"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `get /api/v1/statuses/{}/favourited_by`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.favourited_by(\"some-id\");\n# Ok(())\n# }\n```"] - fn favourited_by(&self, id: &str) -> Result> { - let url = - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/favourited_by"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }); - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - "Equivalent to `delete /api/v1/domain_blocks`\n# Errors\nIf `access_token` is not set."] - fn unblock_domain(&self, domain: String) -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("domain").into(), - ::serde_json::to_value(&domain).unwrap()); - object - }); - let response = - self.send(self.client.delete(&self.route("/api/v1/domain_blocks")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `get /api/v1/instance`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.instance();\n# Ok(())\n# }\n```"] - fn instance(&self) -> Result { - self.get(self.route("/api/v1/instance")) - } - #[doc = - "Equivalent to `get /api/v1/accounts/verify_credentials`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.verify_credentials();\n# Ok(())\n# }\n```"] - fn verify_credentials(&self) -> Result { - self.get(self.route("/api/v1/accounts/verify_credentials")) - } - #[doc = - "Equivalent to `post /api/v1/reports`\n# Errors\nIf `access_token` is not set."] - fn report(&self, account_id: &str, status_ids: Vec<&str>, comment: String) - -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("account_id").into(), - ::serde_json::to_value(&account_id).unwrap()); - let _ = - object.insert(("status_ids").into(), - ::serde_json::to_value(&status_ids).unwrap()); - let _ = - object.insert(("comment").into(), - ::serde_json::to_value(&comment).unwrap()); - object - }); - let response = - self.send(self.client.post(&self.route("/api/v1/reports")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `post /api/v1/domain_blocks`\n# Errors\nIf `access_token` is not set."] - fn block_domain(&self, domain: String) -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("domain").into(), - ::serde_json::to_value(&domain).unwrap()); - object - }); - let response = - self.send(self.client.post(&self.route("/api/v1/domain_blocks")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `post /api/v1/accounts/follow_requests/authorize`\n# Errors\nIf `access_token` is not set."] - fn authorize_follow_request(&self, id: &str) -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("id").into(), - ::serde_json::to_value(&id).unwrap()); - object - }); - let response = - self.send(self.client.post(&self.route("/api/v1/accounts/follow_requests/authorize")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `post /api/v1/accounts/follow_requests/reject`\n# Errors\nIf `access_token` is not set."] - fn reject_follow_request(&self, id: &str) -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("id").into(), - ::serde_json::to_value(&id).unwrap()); - object - }); - let response = - self.send(self.client.post(&self.route("/api/v1/accounts/follow_requests/reject")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `get /api/v1/search`\n# Errors\nIf `access_token` is not set."] - fn search<'a>(&self, q: &'a str, resolve: bool) -> Result { - use serde_urlencoded; - struct Data<'a> { - q: &'a str, - resolve: bool, - #[serde(skip)] - _marker: ::std::marker::PhantomData<&'a ()>, - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'a> _serde::Serialize for Data<'a> { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false - as - usize - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "q", - &self.q) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "resolve", - &self.resolve) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - let qs_data = - Data{q: q, - resolve: resolve, - _marker: ::std::marker::PhantomData,}; - let qs = serde_urlencoded::to_string(&qs_data)?; - let url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/search?"], - &match (&&qs,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - Ok(self.get(self.route(&url))?) - } - #[doc = - "Equivalent to `get /api/v1/timelines/public`\n# Errors\nIf `access_token` is not set."] - fn get_public_timeline<'a>(&self, local: bool) -> Result> { - use serde_urlencoded; - struct Data<'a> { - local: bool, - #[serde(skip)] - _marker: ::std::marker::PhantomData<&'a ()>, - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'a> _serde::Serialize for Data<'a> { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false - as - usize - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "local", - &self.local) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - let qs_data = - Data{local: local, _marker: ::std::marker::PhantomData,}; - let qs = serde_urlencoded::to_string(&qs_data)?; - let url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/timelines/public?"], - &match (&&qs,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - Ok(self.get(self.route(&url))?) - } - #[doc = - "Equivalent to `post /api/v1/follows`\n# Errors\nIf `access_token` is not set."] - fn follows(&self, uri: Cow<'static, str>) -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("uri").into(), - ::serde_json::to_value(&uri).unwrap()); - object - }); - let response = - self.send(self.client.post(&self.route("/api/v1/follows")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `post /api/v1/media`\n# Errors\nIf `access_token` is not set."] - fn media(&self, file: Cow<'static, str>) -> Result { - use reqwest::multipart::Form; - let form_data = Form::new().file("file", file.as_ref())?; - let response = - self.send(self.client.post(&self.route("/api/v1/media")).multipart(form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `post /api/v1/notifications/clear`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.clear_notifications();\n# Ok(())\n# }\n```"] - fn clear_notifications(&self) -> Result { - self.post(self.route("/api/v1/notifications/clear")) - } - #[doc = - "Equivalent to `post /api/v1/notifications/dismiss`\n# Errors\nIf `access_token` is not set."] - fn dismiss_notification(&self, id: &str) -> Result { - let form_data = - ::serde_json::Value::Object({ - let mut object = - ::serde_json::Map::new(); - let _ = - object.insert(("id").into(), - ::serde_json::to_value(&id).unwrap()); - object - }); - let response = - self.send(self.client.post(&self.route("/api/v1/notifications/dismiss")).json(&form_data))?; - let status = response.status().clone(); - if status.is_client_error() { - return Err(Error::Client(status)); - } else if status.is_server_error() { - return Err(Error::Server(status)); - } - deserialise(response) - } - #[doc = - "Equivalent to `get /api/v1/push/subscription`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_push_subscription();\n# Ok(())\n# }\n```"] - fn get_push_subscription(&self) -> Result { - self.get(self.route("/api/v1/push/subscription")) - } - #[doc = - "Equivalent to `delete /api/v1/push/subscription`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.delete_push_subscription();\n# Ok(())\n# }\n```"] - fn delete_push_subscription(&self) -> Result { - self.delete(self.route("/api/v1/push/subscription")) - } - #[doc = - "Equivalent to `get /api/v1/filters`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_filters();\n# Ok(())\n# }\n```"] - fn get_filters(&self) -> Result> { - self.get(self.route("/api/v1/filters")) - } - #[doc = - "Equivalent to `get /api/v1/suggestions`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_follow_suggestions();\n# Ok(())\n# }\n```"] - fn get_follow_suggestions(&self) -> Result> { - self.get(self.route("/api/v1/suggestions")) - } - #[doc = - "Equivalent to `get /api/v2/search`\n# Errors\nIf `access_token` is not set."] - fn search_v2<'a>(&self, q: &'a str, resolve: bool) - -> Result { - use serde_urlencoded; - struct Data<'a> { - q: &'a str, - resolve: bool, - #[serde(skip)] - _marker: ::std::marker::PhantomData<&'a ()>, - } - #[doc(hidden)] - #[allow(non_upper_case_globals, unused_attributes, - unused_qualifications)] - const _IMPL_SERIALIZE_FOR_Data: () = - { - #[allow(rust_2018_idioms, clippy :: useless_attribute)] - extern crate serde as _serde; - #[allow(unused_macros)] - macro_rules! try { - ($ __expr : expr) => - { - match $ __expr - { - _serde :: export :: Ok(__val) => __val, _serde :: - export :: Err(__err) => - { return _serde :: export :: Err(__err) ; } - } - } - } - #[automatically_derived] - impl <'a> _serde::Serialize for Data<'a> { - fn serialize<__S>(&self, __serializer: __S) - -> _serde::export::Result<__S::Ok, __S::Error> where - __S: _serde::Serializer { - let mut __serde_state = - match _serde::Serializer::serialize_struct(__serializer, - "Data", - false - as - usize - + 1 - + - 1) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "q", - &self.q) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - match _serde::ser::SerializeStruct::serialize_field(&mut __serde_state, - "resolve", - &self.resolve) - { - _serde::export::Ok(__val) => __val, - _serde::export::Err(__err) => { - return _serde::export::Err(__err); - } - }; - _serde::ser::SerializeStruct::end(__serde_state) - } - } - }; - let qs_data = - Data{q: q, - resolve: resolve, - _marker: ::std::marker::PhantomData,}; - let qs = serde_urlencoded::to_string(&qs_data)?; - let url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v2/search?"], - &match (&&qs,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }; - Ok(self.get(self.route(&url))?) - } - #[doc = - "Equivalent to `get /api/v1/accounts/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_account(\"42\");\n# Ok(())\n# }\n```"] - fn get_account(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/accounts/{}/follow`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.follow(\"42\");\n# Ok(())\n# }\n```"] - fn follow(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/follow"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/accounts/{}/unfollow`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.unfollow(\"42\");\n# Ok(())\n# }\n```"] - fn unfollow(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/unfollow"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/accounts/{}/block`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.block(\"42\");\n# Ok(())\n# }\n```"] - fn block(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/block"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/accounts/{}/unblock`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.unblock(\"42\");\n# Ok(())\n# }\n```"] - fn unblock(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/unblock"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/accounts/{}/mute`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.mute(\"42\");\n# Ok(())\n# }\n```"] - fn mute(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/mute"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/accounts/{}/unmute`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.unmute(\"42\");\n# Ok(())\n# }\n```"] - fn unmute(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/unmute"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/notifications/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_notification(\"42\");\n# Ok(())\n# }\n```"] - fn get_notification(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/notifications/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/statuses/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_status(\"42\");\n# Ok(())\n# }\n```"] - fn get_status(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/statuses/{}/context`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_context(\"42\");\n# Ok(())\n# }\n```"] - fn get_context(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/context"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/statuses/{}/card`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_card(\"42\");\n# Ok(())\n# }\n```"] - fn get_card(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/card"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/statuses/{}/reblog`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.reblog(\"42\");\n# Ok(())\n# }\n```"] - fn reblog(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/reblog"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/statuses/{}/unreblog`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.unreblog(\"42\");\n# Ok(())\n# }\n```"] - fn unreblog(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/unreblog"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/statuses/{}/favourite`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.favourite(\"42\");\n# Ok(())\n# }\n```"] - fn favourite(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/favourite"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/statuses/{}/unfavourite`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.unfavourite(\"42\");\n# Ok(())\n# }\n```"] - fn unfavourite(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/", - "/unfavourite"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `delete /api/v1/statuses/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.delete_status(\"42\");\n# Ok(())\n# }\n```"] - fn delete_status(&self, id: &str) -> Result { - self.delete(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/statuses/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `get /api/v1/filters/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.get_filter(\"42\");\n# Ok(())\n# }\n```"] - fn get_filter(&self, id: &str) -> Result { - self.get(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/filters/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `delete /api/v1/filters/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.delete_filter(\"42\");\n# Ok(())\n# }\n```"] - fn delete_filter(&self, id: &str) -> Result { - self.delete(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/filters/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `delete /api/v1/suggestions/{}`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.delete_from_suggestions(\"42\");\n# Ok(())\n# }\n```"] - fn delete_from_suggestions(&self, id: &str) -> Result { - self.delete(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/suggestions/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/accounts/{}/pin`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.endorse_user(\"42\");\n# Ok(())\n# }\n```"] - fn endorse_user(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/pin"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - #[doc = - "Equivalent to `post /api/v1/accounts/{}/unpin`\n# Errors\nIf `access_token` is not set.\n```no_run# extern crate elefren;\n# use elefren::prelude::*;\n# fn main() -> Result<(), Box<::std::error::Error>> {\n# let data = Data {\n# base: \"https://example.com\".into(),\n# client_id: \"taosuah\".into(),\n# client_secret: \"htnjdiuae\".into(),\n# redirect: \"https://example.com\".into(),\n# token: \"tsaohueaheis\".into(),\n# };\nlet client = Mastodon::from(data);\nclient.unendorse_user(\"42\");\n# Ok(())\n# }\n```"] - fn unendorse_user(&self, id: &str) -> Result { - self.post(self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/accounts/", - "/unpin"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - })) - } - fn add_filter(&self, request: &mut AddFilterRequest) -> Result { - let url = self.route("/api/v1/filters"); - let response = self.send(self.client.post(&url).json(&request))?; - let status = response.status(); - if status.is_client_error() { - return Err(Error::Client(status.clone())); - } else if status.is_server_error() { - return Err(Error::Server(status.clone())); - } - deserialise(response) - } - #[doc = " PUT /api/v1/filters/:id"] - fn update_filter(&self, id: &str, request: &mut AddFilterRequest) - -> Result { - let url = - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["/api/v1/filters/"], - &match (&id,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - }); - let response = self.send(self.client.put(&url).json(&request))?; - let status = response.status(); - if status.is_client_error() { - return Err(Error::Client(status.clone())); - } else if status.is_server_error() { - return Err(Error::Server(status.clone())); - } - deserialise(response) - } - fn update_credentials(&self, builder: &mut UpdateCredsRequest) - -> Result { - let changes = builder.build()?; - let url = self.route("/api/v1/accounts/update_credentials"); - let response = self.send(self.client.patch(&url).json(&changes))?; - let status = response.status(); - if status.is_client_error() { - return Err(Error::Client(status.clone())); - } else if status.is_server_error() { - return Err(Error::Server(status.clone())); - } - deserialise(response) - } - #[doc = " Post a new status to the account."] - fn new_status(&self, status: NewStatus) -> Result { - let response = - self.send(self.client.post(&self.route("/api/v1/statuses")).json(&status))?; - deserialise(response) - } - #[doc = - " Get timeline filtered by a hashtag(eg. `#coffee`) either locally or"] - #[doc = " federated."] - fn get_tagged_timeline(&self, hashtag: String, local: bool) - -> Result> { - let base = "/api/v1/timelines/tag/"; - let url = - if local { - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - "", - "?local=1"], - &match (&base, - &hashtag) - { - (arg0, - arg1) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt)], - })); - res - }) - } else { - self.route(&{ - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - ""], - &match (&base, - &hashtag) - { - (arg0, - arg1) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt)], - })); - res - }) - }; - self.get(url) - } - #[doc = - " Get statuses of a single account by id. Optionally only with pictures"] - #[doc = " and or excluding replies."] - #[doc = ""] - #[doc = " # Example"] - #[doc = ""] - #[doc = " ```no_run"] - #[doc = " # extern crate elefren;"] - #[doc = " # use elefren::prelude::*;"] - #[doc = " # use std::error::Error;"] - #[doc = " # fn main() -> Result<(), Box> {"] - #[doc = " # let data = Data {"] - #[doc = " # base: \"\".into(),"] - #[doc = " # client_id: \"\".into(),"] - #[doc = " # client_secret: \"\".into(),"] - #[doc = " # redirect: \"\".into(),"] - #[doc = " # token: \"\".into(),"] - #[doc = " # };"] - #[doc = " let client = Mastodon::from(data);"] - #[doc = " let statuses = client.statuses(\"user-id\", None)?;"] - #[doc = " # Ok(())"] - #[doc = " # }"] - #[doc = " ```"] - #[doc = ""] - #[doc = " ```no_run"] - #[doc = " # extern crate elefren;"] - #[doc = " # use elefren::prelude::*;"] - #[doc = " # use std::error::Error;"] - #[doc = " # fn main() -> Result<(), Box> {"] - #[doc = " # let data = Data {"] - #[doc = " # base: \"\".into(),"] - #[doc = " # client_id: \"\".into(),"] - #[doc = " # client_secret: \"\".into(),"] - #[doc = " # redirect: \"\".into(),"] - #[doc = " # token: \"\".into(),"] - #[doc = " # };"] - #[doc = " let client = Mastodon::from(data);"] - #[doc = " let mut request = StatusesRequest::new();"] - #[doc = " request.only_media();"] - #[doc = " let statuses = client.statuses(\"user-id\", request)?;"] - #[doc = " # Ok(())"] - #[doc = " # }"] - #[doc = " ```"] - fn statuses<'a, 'b: 'a, S>(&'b self, id: &'b str, request: S) - -> Result> where S: Into>> { - let mut url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - "/api/v1/accounts/", - "/statuses"], - &match (&self.base, - &id) - { - (arg0, - arg1) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt)], - })); - res - }; - if let Some(request) = request.into() { - url = - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["", - ""], - &match (&url, - &request.to_querystring()?) - { - (arg0, - arg1) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt), - ::core::fmt::ArgumentV1::new(arg1, - ::core::fmt::Display::fmt)], - })); - res - }; - } - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = - " Returns the client account\'s relationship to a list of other accounts."] - #[doc = " Such as whether they follow them or vice versa."] - fn relationships(&self, ids: &[&str]) -> Result> { - let mut url = self.route("/api/v1/accounts/relationships?"); - if ids.len() == 1 { - url += "id="; - url += &ids[0]; - } else { - for id in ids { url += "id[]="; url += &id; url += "&"; } - url.pop(); - } - let response = self.send(self.client.get(&url))?; - Page::new(self, response) - } - #[doc = " Add a push notifications subscription"] - fn add_push_subscription(&self, request: &AddPushRequest) - -> Result { - let request = request.build()?; - let response = - self.send(self.client.post(&self.route("/api/v1/push/subscription")).json(&request))?; - deserialise(response) - } - #[doc = - " Update the `data` portion of the push subscription associated with this"] - #[doc = " access token"] - fn update_push_data(&self, request: &UpdatePushRequest) - -> Result { - let request = request.build(); - let response = - self.send(self.client.put(&self.route("/api/v1/push/subscription")).json(&request))?; - deserialise(response) - } - #[doc = " Get all accounts that follow the authenticated user"] - fn follows_me(&self) -> Result> { - let me = self.verify_credentials()?; - Ok(self.followers(&me.id)?) - } - #[doc = " Get all accounts that the authenticated user follows"] - fn followed_by_me(&self) -> Result> { - let me = self.verify_credentials()?; - Ok(self.following(&me.id)?) - } -} -impl ops::Deref for Mastodon { - type Target = Data; - fn deref(&self) -> &Self::Target { &self.data } -} -struct MastodonBuilder { - client: Option, - data: Option, -} -impl MastodonBuilder { - pub fn new() -> Self { MastodonBuilder{client: None, data: None,} } - pub fn client(&mut self, client: Client) -> &mut Self { - self.client = Some(client); - self - } - pub fn data(&mut self, data: Data) -> &mut Self { - self.data = Some(data); - self - } - pub fn build(self) -> Result { - Ok(if let Some(data) = self.data { - Mastodon{client: self.client.unwrap_or_else(|| Client::new()), - data,} - } else { - return Err(Error::MissingField("missing field 'data'")); - }) - } -} -/// Client that can make unauthenticated calls to a mastodon instance -pub struct MastodonUnauth { - client: Client, - base: url::Url, -} -#[automatically_derived] -#[allow(unused_qualifications)] -impl ::core::clone::Clone for MastodonUnauth { - #[inline] - fn clone(&self) -> MastodonUnauth { - match *self { - MastodonUnauth { client: ref __self_0_0, base: ref __self_0_1 } => - MastodonUnauth{client: - ::core::clone::Clone::clone(&(*__self_0_0)), - base: - ::core::clone::Clone::clone(&(*__self_0_1)),}, - } - } -} -#[automatically_derived] -#[allow(unused_qualifications)] -impl ::core::fmt::Debug for MastodonUnauth { - fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { - match *self { - MastodonUnauth { client: ref __self_0_0, base: ref __self_0_1 } => - { - let mut debug_trait_builder = - f.debug_struct("MastodonUnauth"); - let _ = debug_trait_builder.field("client", &&(*__self_0_0)); - let _ = debug_trait_builder.field("base", &&(*__self_0_1)); - debug_trait_builder.finish() - } - } - } -} -impl MastodonUnauth { - /// Create a new unauthenticated client - pub fn new(base: &str) -> Result { - let base = - if base.starts_with("https://") { - base.to_string() - } else { - { - let res = - ::alloc::fmt::format(::core::fmt::Arguments::new_v1(&["https://"], - &match (&base,) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - })); - res - } - }; - Ok(MastodonUnauth{client: Client::new(), - base: url::Url::parse(&base)?,}) - } -} -impl MastodonUnauth { - fn route(&self, url: &str) -> Result { - Ok(self.base.join(url)?) - } - fn send(&self, req: RequestBuilder) -> Result { - let req = req.build()?; - Ok(self.client.execute(req)?) - } -} -impl MastodonUnauthenticated for MastodonUnauth { - /// GET /api/v1/statuses/:id - fn get_status(&self, id: &str) -> Result { - let route = self.route("/api/v1/statuses")?; - let route = route.join(id)?; - let response = self.send(self.client.get(route))?; - deserialise(response) - } - /// GET /api/v1/statuses/:id/context - fn get_context(&self, id: &str) -> Result { - let route = self.route("/api/v1/statuses")?; - let route = route.join(id)?; - let route = route.join("context")?; - let response = self.send(self.client.get(route))?; - deserialise(response) - } - /// GET /api/v1/statuses/:id/card - fn get_card(&self, id: &str) -> Result { - let route = self.route("/api/v1/statuses")?; - let route = route.join(id)?; - let route = route.join("card")?; - let response = self.send(self.client.get(route))?; - deserialise(response) - } -} -fn deserialise serde::Deserialize<'de>>(response: Response) - -> Result { - let mut reader = Tap::new(response); - match serde_json::from_reader(&mut reader) { - Ok(t) => { - { - let lvl = ::log::Level::Debug; - if lvl <= ::log::STATIC_MAX_LEVEL && lvl <= ::log::max_level() - { - ::log::__private_api_log(::core::fmt::Arguments::new_v1(&[""], - &match (&String::from_utf8_lossy(&reader.bytes),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - }), - lvl, - &("elefren", "elefren", - "src/lib.rs", 845u32)); - } - }; - Ok(t) - } - Err(e) => { - { - let lvl = ::log::Level::Error; - if lvl <= ::log::STATIC_MAX_LEVEL && lvl <= ::log::max_level() - { - ::log::__private_api_log(::core::fmt::Arguments::new_v1(&[""], - &match (&String::from_utf8_lossy(&reader.bytes),) - { - (arg0,) - => - [::core::fmt::ArgumentV1::new(arg0, - ::core::fmt::Display::fmt)], - }), - lvl, - &("elefren", "elefren", - "src/lib.rs", 851u32)); - } - }; - if let Ok(error) = serde_json::from_slice(&reader.bytes) { - return Err(Error::Api(error)); - } - Err(e.into()) - } - } -} diff --git a/src/requests/statuses.rs b/src/requests/statuses.rs index 5dd16c5..36130f9 100644 --- a/src/requests/statuses.rs +++ b/src/requests/statuses.rs @@ -48,6 +48,9 @@ pub struct StatusesRequest<'a> { limit: Option, #[serde(skip_serializing_if = "Option::is_none")] min_id: Option>, + #[serde(skip_serializing_if = "bool_qs_serialize::is_false")] + #[serde(serialize_with = "bool_qs_serialize::serialize")] + exclude_reblogs: bool, } impl<'a> Into>> for &'a mut StatusesRequest<'a> { @@ -60,6 +63,7 @@ impl<'a> Into>> for &'a mut StatusesRequest<'a> { since_id: self.since_id.clone(), limit: self.limit, min_id: self.min_id.clone(), + exclude_reblogs: self.exclude_reblogs, }) } } @@ -257,6 +261,7 @@ mod tests { since_id: None, limit: None, min_id: None, + exclude_reblogs: false, } ); } @@ -275,6 +280,7 @@ mod tests { since_id: None, limit: None, min_id: None, + exclude_reblogs: false, } ); } @@ -293,6 +299,7 @@ mod tests { since_id: None, limit: None, min_id: None, + exclude_reblogs: false, } ); } @@ -310,6 +317,7 @@ mod tests { since_id: None, limit: None, min_id: None, + exclude_reblogs: false, } ); } @@ -327,6 +335,7 @@ mod tests { since_id: None, limit: None, min_id: None, + exclude_reblogs: false, } ); } @@ -344,6 +353,7 @@ mod tests { since_id: Some("foo".into()), limit: None, min_id: None, + exclude_reblogs: false, } ); } @@ -361,6 +371,7 @@ mod tests { since_id: None, limit: Some(42), min_id: None, + exclude_reblogs: false, } ); } @@ -378,6 +389,7 @@ mod tests { since_id: None, limit: None, min_id: Some("foo".into()), + exclude_reblogs: false, } ); }