Merge pull request #90 from dscottboggs/fix/derive-is_variant

Fix: derive `is_variant`
This commit is contained in:
Scott Boggs 2023-03-19 12:02:54 -04:00 committed by GitHub
commit e6aae9041f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 21 additions and 25 deletions

View File

@ -28,10 +28,6 @@ edition.workspace = true
[package.metadata.docs.rs]
features = ["all"]
[patch.crates-io.is_variant]
git = "https://github.com/dscottboggs/rust_macro_is_variant.git"
branch = "fixes"
[dependencies.mastodon-async-entities]
path = "./entities"
version = "1.0.3"
@ -48,7 +44,7 @@ static_assertions = "1.1.0"
percent-encoding = "2.2.0"
thiserror = "1.0.38"
derive_deref = "1.1.1"
is_variant = "1.0.0"
derive_is_enum_variant = "0.1.1"
[dependencies.parse_link_header]
version = "0.3.3"

View File

@ -13,7 +13,7 @@ edition.workspace = true
futures = "0.3.25"
thiserror = "1"
static_assertions = "1"
is_variant = "1.0.0"
derive_is_enum_variant = "0.1.1"
[dependencies.log]
version = "0.4"

View File

@ -1,7 +1,7 @@
//! Module containing everything related to media attachements.
use crate::AttachmentId;
use is_variant::IsVariant;
use derive_is_enum_variant::is_enum_variant;
use serde::{Deserialize, Serialize};
/// A struct representing a media attachment.
@ -63,7 +63,7 @@ pub struct ImageDetails {
}
/// 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 {
/// An image.
#[serde(rename = "image")]

View File

@ -1,7 +1,7 @@
use is_variant::IsVariant;
use derive_is_enum_variant::is_enum_variant;
/// Error type
#[derive(Debug, thiserror::Error, IsVariant)]
#[derive(Debug, thiserror::Error, is_enum_variant)]
pub enum Error {
#[error("unrecognized visibility '{invalid}'")]
VisibilityParsingError { invalid: String },

View File

@ -1,8 +1,8 @@
use crate::{notification::Notification, status::Status};
use is_variant::IsVariant;
use derive_is_enum_variant::is_enum_variant;
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
pub enum Event {
/// Update event

View File

@ -1,4 +1,4 @@
use is_variant::IsVariant;
use derive_is_enum_variant::is_enum_variant;
use serde::{de::Visitor, Deserialize, Deserializer, Serialize};
use time::{serde::iso8601, OffsetDateTime};
@ -55,7 +55,7 @@ pub struct Filter {
}
/// 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")]
pub enum FilterContext {
/// Represents the "home" context
@ -74,7 +74,7 @@ pub enum FilterContext {
///
/// Please note that the spec requests that any unknown value be interpreted
/// as "warn".
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, IsVariant)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, is_enum_variant)]
#[serde(rename_all = "lowercase")]
pub enum Action {
/// Indicates filtered toots should show up, but with a warning

View File

@ -3,7 +3,7 @@
use crate::NotificationId;
use super::{account::Account, status::Status};
use is_variant::IsVariant;
use derive_is_enum_variant::is_enum_variant;
use serde::{Deserialize, Serialize};
use time::{serde::iso8601, OffsetDateTime};
@ -26,7 +26,7 @@ pub struct 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")]
pub enum NotificationType {
/// Someone mentioned the application client in another status.

View File

@ -1,9 +1,9 @@
use is_variant::IsVariant;
use derive_is_enum_variant::is_enum_variant;
use serde::Deserialize;
use serde::Serialize;
/// 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")]
pub enum Visibility {
/// A Direct message to a user

View File

@ -1,9 +1,9 @@
use std::string::FromUtf8Error;
use std::{error, fmt, io::Error as IoError, num::TryFromIntError};
use derive_is_enum_variant::is_enum_variant;
#[cfg(feature = "env")]
use envy::Error as EnvyError;
use is_variant::IsVariant;
use reqwest::{header::ToStrError as HeaderStrError, Error as HttpError, StatusCode};
use serde::Deserialize;
use serde_json::Error as SerdeError;
@ -18,7 +18,7 @@ use url::ParseError as UrlError;
pub type Result<T> = ::std::result::Result<T, Error>;
/// enum of possible errors encountered using the mastodon API.
#[derive(Debug, thiserror::Error, IsVariant)]
#[derive(Debug, thiserror::Error, is_enum_variant)]
pub enum Error {
/// Error from the Mastodon API. This typically means something went
/// wrong with your authentication or data.

View File

@ -6,10 +6,10 @@ use std::{
str::FromStr,
};
use is_variant::IsVariant;
use serde::ser::{Serialize, Serializer};
use crate::errors::Error;
use derive_is_enum_variant::is_enum_variant;
use serde::{
de::{self, Visitor},
Deserialize, Deserializer,
@ -258,7 +258,7 @@ impl fmt::Display for Scopes {
/// 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)
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, IsVariant)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, is_enum_variant)]
#[serde(rename_all = "lowercase")]
pub enum Scope {
/// Read only permissions.
@ -353,7 +353,7 @@ impl Default for Scope {
}
/// 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 {
/// Accounts
#[serde(rename = "accounts")]
@ -448,7 +448,7 @@ impl fmt::Display for Read {
}
/// 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 {
/// Accounts
#[serde(rename = "accounts")]