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