poot 0.1.1

API wrapper for Photop.
Documentation
use serde::{Deserialize};

#[derive(Deserialize, Debug)]
pub enum Role {
    Owner,
    Developer,
    Tester,
    Moderator,

    #[serde(rename = "Bug Hunter")]
    BugHunter,
}

#[derive(Deserialize, Debug)]
#[serde(untagged)]
pub enum RoleOrRoles {
    Role(Role),
    Roles(Vec<Role>),
}

impl Into<Vec<Role>> for RoleOrRoles {
    fn into(self) -> Vec<Role> {
        match self {
            RoleOrRoles::Role(role) => vec![role],
            RoleOrRoles::Roles(roles) => roles,
        }
    }
}

#[test]
fn test() {
    let roles: RoleOrRoles = serde_json::from_str(
        r#"
		"Owner"
	"#,
    )
    .unwrap();
    println!("{:#?}", roles);
}