use crate::field::text_url_field::TextUrlField;
use crate::field::{AuthRequiredFields, DefaultableFields};
use crate::impl_field_display;
use strum_macros::AsRefStr;
#[derive(Debug, Clone, AsRefStr, PartialEq, Eq, Ord, PartialOrd, Hash)]
#[strum(serialize_all = "camelCase")]
pub enum PartStubField {
Id,
Title,
Url,
#[strum(disabled)]
TextUrl(Vec<TextUrlField>),
Rating,
Draft,
CreateDate,
ModifyDate,
HasBannedImages,
Length,
VideoId,
PhotoUrl,
CommentCount,
VoteCount,
ReadCount,
Voted,
Deleted,
}
impl_field_display!(
PartStubField,
TextUrl => "text_url"
);
impl AuthRequiredFields for PartStubField {
fn auth_required_fields() -> Vec<Self> {
vec![Self::Voted]
}
}
impl DefaultableFields for PartStubField {
fn default_fields() -> Vec<Self> {
vec![
Self::Id,
Self::Title,
Self::TextUrl(vec![TextUrlField::Text]),
Self::Rating,
Self::VideoId,
Self::PhotoUrl,
Self::ModifyDate,
]
}
}