[dependencies]
rand = { version = "0.8.4", optional = true }
rayon = { version = "1.5.1", optional = true }
+serde = { version = "1.0", optional = true, features = ["derive"] }
wasm-bindgen = "0.2.78"
use crate::{constants::PRIMES, MyError, Rules};
+#[cfg(feature = "serde")]
+use serde::{Deserialize, Serialize};
+
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Default, Clone)]
pub struct Cards(pub(crate) Vec<Card>);
}
}
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Clone)]
pub struct Deck(pub(crate) Cards);
/// Card::from_str("Kd").unwrap().get(),
/// 0b00001000_00000000_01001011_00100101_u32
/// );
-#[repr(transparent)]
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Clone, Copy)]
+#[repr(transparent)]
pub struct Card(pub(crate) u32);
impl Card {
Algorithm, MyError, Rules,
};
+#[cfg(feature = "serde")]
+use serde::{Deserialize, Serialize};
+
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug)]
pub struct Evaluator {
pub rules: Rules,
VALUE_STR,
};
+#[cfg(feature = "serde")]
+use serde::{Deserialize, Serialize};
+
use wasm_bindgen::prelude::*;
#[derive(Debug)]
}
}
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Clone, Copy)]
pub enum Rules {
Classic,
}
}
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Clone, Copy)]
pub enum Algorithm {
CactusKev,