use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TeamMembership {
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "role")]
pub role: Role,
#[serde(rename = "state")]
pub state: State,
}
impl TeamMembership {
pub fn new(url: String, role: Role, state: State) -> TeamMembership {
TeamMembership {
url,
role,
state,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
#[serde(rename = "member")]
Member,
#[serde(rename = "maintainer")]
Maintainer,
}
impl Default for Role {
fn default() -> Role {
Self::Member
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum State {
#[serde(rename = "active")]
Active,
#[serde(rename = "pending")]
Pending,
}
impl Default for State {
fn default() -> State {
Self::Active
}
}