scryfall-client 0.1.0

an wrapper for the scryfall API
use crate::card::color::Colors;
use crate::search_builder::SearchBuilderTrait;

pub trait ColorArgument: ToString {}

impl ColorArgument for u32 {}

impl ColorArgument for Colors {}

pub struct Color {
    colors: String,
    operator: String,
}

impl Color {
    fn internal_new<T: ColorArgument>(colors: T, operator: &str) -> Color {
        Color {
            colors: colors.to_string(),
            operator: operator.to_string(),
        }
    }
}

impl SearchBuilderTrait for Color {
    fn stringify(&self) -> String {
        format!("c{}{}", self.operator, self.colors)
    }
}

crate::equality_operator_implementer_trait!(Color, ColorArgument);