Merge pull request #90 from dscottboggs/fix/derive-is_variant
Fix: derive `is_variant`
This commit is contained in:
commit
e6aae9041f
|
@ -28,10 +28,6 @@ edition.workspace = true
|
||||||
[package.metadata.docs.rs]
|
[package.metadata.docs.rs]
|
||||||
features = ["all"]
|
features = ["all"]
|
||||||
|
|
||||||
[patch.crates-io.is_variant]
|
|
||||||
git = "https://github.com/dscottboggs/rust_macro_is_variant.git"
|
|
||||||
branch = "fixes"
|
|
||||||
|
|
||||||
[dependencies.mastodon-async-entities]
|
[dependencies.mastodon-async-entities]
|
||||||
path = "./entities"
|
path = "./entities"
|
||||||
version = "1.0.3"
|
version = "1.0.3"
|
||||||
|
@ -48,7 +44,7 @@ static_assertions = "1.1.0"
|
||||||
percent-encoding = "2.2.0"
|
percent-encoding = "2.2.0"
|
||||||
thiserror = "1.0.38"
|
thiserror = "1.0.38"
|
||||||
derive_deref = "1.1.1"
|
derive_deref = "1.1.1"
|
||||||
is_variant = "1.0.0"
|
derive_is_enum_variant = "0.1.1"
|
||||||
|
|
||||||
[dependencies.parse_link_header]
|
[dependencies.parse_link_header]
|
||||||
version = "0.3.3"
|
version = "0.3.3"
|
||||||
|
|
|
@ -13,7 +13,7 @@ edition.workspace = true
|
||||||
futures = "0.3.25"
|
futures = "0.3.25"
|
||||||
thiserror = "1"
|
thiserror = "1"
|
||||||
static_assertions = "1"
|
static_assertions = "1"
|
||||||
is_variant = "1.0.0"
|
derive_is_enum_variant = "0.1.1"
|
||||||
|
|
||||||
[dependencies.log]
|
[dependencies.log]
|
||||||
version = "0.4"
|
version = "0.4"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//! Module containing everything related to media attachements.
|
//! Module containing everything related to media attachements.
|
||||||
|
|
||||||
use crate::AttachmentId;
|
use crate::AttachmentId;
|
||||||
use is_variant::IsVariant;
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
/// A struct representing a media attachment.
|
/// A struct representing a media attachment.
|
||||||
|
@ -63,7 +63,7 @@ pub struct ImageDetails {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The type of media attachment.
|
/// The type of media attachment.
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, IsVariant)]
|
#[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, Eq, is_enum_variant)]
|
||||||
pub enum MediaType {
|
pub enum MediaType {
|
||||||
/// An image.
|
/// An image.
|
||||||
#[serde(rename = "image")]
|
#[serde(rename = "image")]
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use is_variant::IsVariant;
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
|
|
||||||
/// Error type
|
/// Error type
|
||||||
#[derive(Debug, thiserror::Error, IsVariant)]
|
#[derive(Debug, thiserror::Error, is_enum_variant)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
#[error("unrecognized visibility '{invalid}'")]
|
#[error("unrecognized visibility '{invalid}'")]
|
||||||
VisibilityParsingError { invalid: String },
|
VisibilityParsingError { invalid: String },
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
use crate::{notification::Notification, status::Status};
|
use crate::{notification::Notification, status::Status};
|
||||||
use is_variant::IsVariant;
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, IsVariant)]
|
#[derive(Debug, Clone, Deserialize, Serialize, is_enum_variant)]
|
||||||
/// Events that come from the /streaming/user API call
|
/// Events that come from the /streaming/user API call
|
||||||
pub enum Event {
|
pub enum Event {
|
||||||
/// Update event
|
/// Update event
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use is_variant::IsVariant;
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
use serde::{de::Visitor, Deserialize, Deserializer, Serialize};
|
use serde::{de::Visitor, Deserialize, Deserializer, Serialize};
|
||||||
use time::{serde::iso8601, OffsetDateTime};
|
use time::{serde::iso8601, OffsetDateTime};
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ pub struct Filter {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Represents the various types of Filter contexts
|
/// Represents the various types of Filter contexts
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, IsVariant)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, is_enum_variant)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum FilterContext {
|
pub enum FilterContext {
|
||||||
/// Represents the "home" context
|
/// Represents the "home" context
|
||||||
|
@ -74,7 +74,7 @@ pub enum FilterContext {
|
||||||
///
|
///
|
||||||
/// Please note that the spec requests that any unknown value be interpreted
|
/// Please note that the spec requests that any unknown value be interpreted
|
||||||
/// as "warn".
|
/// as "warn".
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, IsVariant)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, is_enum_variant)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum Action {
|
pub enum Action {
|
||||||
/// Indicates filtered toots should show up, but with a warning
|
/// Indicates filtered toots should show up, but with a warning
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
use crate::NotificationId;
|
use crate::NotificationId;
|
||||||
|
|
||||||
use super::{account::Account, status::Status};
|
use super::{account::Account, status::Status};
|
||||||
use is_variant::IsVariant;
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use time::{serde::iso8601, OffsetDateTime};
|
use time::{serde::iso8601, OffsetDateTime};
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ pub struct Notification {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The type of notification.
|
/// The type of notification.
|
||||||
#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, IsVariant)]
|
#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, is_enum_variant)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum NotificationType {
|
pub enum NotificationType {
|
||||||
/// Someone mentioned the application client in another status.
|
/// Someone mentioned the application client in another status.
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use is_variant::IsVariant;
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
|
||||||
/// The visibility of a status.
|
/// The visibility of a status.
|
||||||
#[derive(Clone, Copy, Debug, Deserialize, Serialize, PartialEq, Eq, IsVariant)]
|
#[derive(Clone, Copy, Debug, Deserialize, Serialize, PartialEq, Eq, is_enum_variant)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum Visibility {
|
pub enum Visibility {
|
||||||
/// A Direct message to a user
|
/// A Direct message to a user
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
use std::string::FromUtf8Error;
|
use std::string::FromUtf8Error;
|
||||||
use std::{error, fmt, io::Error as IoError, num::TryFromIntError};
|
use std::{error, fmt, io::Error as IoError, num::TryFromIntError};
|
||||||
|
|
||||||
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
#[cfg(feature = "env")]
|
#[cfg(feature = "env")]
|
||||||
use envy::Error as EnvyError;
|
use envy::Error as EnvyError;
|
||||||
use is_variant::IsVariant;
|
|
||||||
use reqwest::{header::ToStrError as HeaderStrError, Error as HttpError, StatusCode};
|
use reqwest::{header::ToStrError as HeaderStrError, Error as HttpError, StatusCode};
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use serde_json::Error as SerdeError;
|
use serde_json::Error as SerdeError;
|
||||||
|
@ -18,7 +18,7 @@ use url::ParseError as UrlError;
|
||||||
pub type Result<T> = ::std::result::Result<T, Error>;
|
pub type Result<T> = ::std::result::Result<T, Error>;
|
||||||
|
|
||||||
/// enum of possible errors encountered using the mastodon API.
|
/// enum of possible errors encountered using the mastodon API.
|
||||||
#[derive(Debug, thiserror::Error, IsVariant)]
|
#[derive(Debug, thiserror::Error, is_enum_variant)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
/// Error from the Mastodon API. This typically means something went
|
/// Error from the Mastodon API. This typically means something went
|
||||||
/// wrong with your authentication or data.
|
/// wrong with your authentication or data.
|
||||||
|
|
|
@ -6,10 +6,10 @@ use std::{
|
||||||
str::FromStr,
|
str::FromStr,
|
||||||
};
|
};
|
||||||
|
|
||||||
use is_variant::IsVariant;
|
|
||||||
use serde::ser::{Serialize, Serializer};
|
use serde::ser::{Serialize, Serializer};
|
||||||
|
|
||||||
use crate::errors::Error;
|
use crate::errors::Error;
|
||||||
|
use derive_is_enum_variant::is_enum_variant;
|
||||||
use serde::{
|
use serde::{
|
||||||
de::{self, Visitor},
|
de::{self, Visitor},
|
||||||
Deserialize, Deserializer,
|
Deserialize, Deserializer,
|
||||||
|
@ -258,7 +258,7 @@ impl fmt::Display for Scopes {
|
||||||
/// Permission scope of the application.
|
/// Permission scope of the application.
|
||||||
/// [Details on what each permission provides][1]
|
/// [Details on what each permission provides][1]
|
||||||
/// [1]: https://github.com/tootsuite/documentation/blob/master/Using-the-API/OAuth-details.md)
|
/// [1]: https://github.com/tootsuite/documentation/blob/master/Using-the-API/OAuth-details.md)
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, IsVariant)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, is_enum_variant)]
|
||||||
#[serde(rename_all = "lowercase")]
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum Scope {
|
pub enum Scope {
|
||||||
/// Read only permissions.
|
/// Read only permissions.
|
||||||
|
@ -353,7 +353,7 @@ impl Default for Scope {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Represents the granular "read:___" oauth scopes
|
/// Represents the granular "read:___" oauth scopes
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, IsVariant)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, is_enum_variant)]
|
||||||
pub enum Read {
|
pub enum Read {
|
||||||
/// Accounts
|
/// Accounts
|
||||||
#[serde(rename = "accounts")]
|
#[serde(rename = "accounts")]
|
||||||
|
@ -448,7 +448,7 @@ impl fmt::Display for Read {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Represents the granular "write:___" oauth scopes
|
/// Represents the granular "write:___" oauth scopes
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, IsVariant)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, is_enum_variant)]
|
||||||
pub enum Write {
|
pub enum Write {
|
||||||
/// Accounts
|
/// Accounts
|
||||||
#[serde(rename = "accounts")]
|
#[serde(rename = "accounts")]
|
||||||
|
|
Loading…
Reference in New Issue