use wasm_bindgen::prelude::*;
use crate::league::season::conference::{LeagueConference, LeagueDivision};
#[wasm_bindgen(js_name = "LeagueDivision")]
pub struct WasmLeagueDivision {
inner: LeagueDivision,
}
#[wasm_bindgen(js_class = "LeagueDivision")]
impl WasmLeagueDivision {
#[wasm_bindgen(constructor)]
pub fn new() -> WasmLeagueDivision {
WasmLeagueDivision {
inner: LeagueDivision::new(),
}
}
#[wasm_bindgen(js_name = "withName")]
pub fn with_name(name: &str) -> WasmLeagueDivision {
WasmLeagueDivision {
inner: LeagueDivision::with_name(name),
}
}
#[wasm_bindgen(getter)]
pub fn name(&self) -> String {
self.inner.name().to_string()
}
#[wasm_bindgen(setter)]
pub fn set_name(&mut self, name: &str) {
*self.inner.name_mut() = name.to_string();
}
#[wasm_bindgen(js_name = "addTeam")]
pub fn add_team(&mut self, team_id: usize) -> Result<(), JsError> {
self.inner
.add_team(team_id)
.map_err(|e| JsError::new(&e))
}
#[wasm_bindgen(getter)]
pub fn teams(&self) -> Result<JsValue, JsError> {
serde_wasm_bindgen::to_value(self.inner.teams())
.map_err(|e| JsError::new(&e.to_string()))
}
#[wasm_bindgen(js_name = "containsTeam")]
pub fn contains_team(&self, team_id: usize) -> bool {
self.inner.contains_team(team_id)
}
#[wasm_bindgen(getter, js_name = "numTeams")]
pub fn num_teams(&self) -> usize {
self.inner.num_teams()
}
#[wasm_bindgen(js_name = "toJSON")]
pub fn to_json(&self) -> Result<JsValue, JsError> {
serde_wasm_bindgen::to_value(&self.inner)
.map_err(|e| JsError::new(&e.to_string()))
}
}
impl Default for WasmLeagueDivision {
fn default() -> Self {
Self::new()
}
}
impl WasmLeagueDivision {
pub fn inner(&self) -> &LeagueDivision {
&self.inner
}
pub fn into_inner(self) -> LeagueDivision {
self.inner
}
pub fn from_inner(inner: LeagueDivision) -> Self {
WasmLeagueDivision { inner }
}
}
#[wasm_bindgen(js_name = "LeagueConference")]
pub struct WasmLeagueConference {
inner: LeagueConference,
}
#[wasm_bindgen(js_class = "LeagueConference")]
impl WasmLeagueConference {
#[wasm_bindgen(constructor)]
pub fn new() -> WasmLeagueConference {
WasmLeagueConference {
inner: LeagueConference::new(),
}
}
#[wasm_bindgen(js_name = "withName")]
pub fn with_name(name: &str) -> WasmLeagueConference {
WasmLeagueConference {
inner: LeagueConference::with_name(name),
}
}
#[wasm_bindgen(getter)]
pub fn name(&self) -> String {
self.inner.name().to_string()
}
#[wasm_bindgen(setter)]
pub fn set_name(&mut self, name: &str) {
*self.inner.name_mut() = name.to_string();
}
#[wasm_bindgen(js_name = "addDivision")]
pub fn add_division(&mut self, division: WasmLeagueDivision) -> Result<(), JsError> {
self.inner
.add_division(division.into_inner())
.map_err(|e| JsError::new(&e))
}
#[wasm_bindgen(getter)]
pub fn divisions(&self) -> Result<JsValue, JsError> {
serde_wasm_bindgen::to_value(self.inner.divisions())
.map_err(|e| JsError::new(&e.to_string()))
}
#[wasm_bindgen(js_name = "allTeams")]
pub fn all_teams(&self) -> Result<JsValue, JsError> {
serde_wasm_bindgen::to_value(&self.inner.all_teams())
.map_err(|e| JsError::new(&e.to_string()))
}
#[wasm_bindgen(js_name = "containsTeam")]
pub fn contains_team(&self, team_id: usize) -> bool {
self.inner.contains_team(team_id)
}
#[wasm_bindgen(getter, js_name = "numDivisions")]
pub fn num_divisions(&self) -> usize {
self.inner.num_divisions()
}
#[wasm_bindgen(getter, js_name = "numTeams")]
pub fn num_teams(&self) -> usize {
self.inner.num_teams()
}
#[wasm_bindgen(js_name = "toJSON")]
pub fn to_json(&self) -> Result<JsValue, JsError> {
serde_wasm_bindgen::to_value(&self.inner)
.map_err(|e| JsError::new(&e.to_string()))
}
}
impl Default for WasmLeagueConference {
fn default() -> Self {
Self::new()
}
}
impl WasmLeagueConference {
pub fn inner(&self) -> &LeagueConference {
&self.inner
}
pub fn into_inner(self) -> LeagueConference {
self.inner
}
pub fn from_inner(inner: LeagueConference) -> Self {
WasmLeagueConference { inner }
}
}