#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum TaiXuanJingSymbols {
MonogramForEarth,
DigramForHeavenlyEarth,
DigramForHumanEarth,
DigramForEarthlyHeaven,
DigramForEarthlyHuman,
DigramForEarth,
TetragramForCentre,
TetragramForFullCircle,
TetragramForMired,
TetragramForBarrier,
TetragramForKeepingSmall,
TetragramForContrariety,
TetragramForAscent,
TetragramForOpposition,
TetragramForBranchingOut,
TetragramForDefectivenessOrDistortion,
TetragramForDivergence,
TetragramForYouthfulness,
TetragramForIncrease,
TetragramForPenetration,
TetragramForReach,
TetragramForContact,
TetragramForHoldingBack,
TetragramForWaiting,
TetragramForFollowing,
TetragramForAdvance,
TetragramForRelease,
TetragramForResistance,
TetragramForEase,
TetragramForJoy,
TetragramForContention,
TetragramForEndeavour,
TetragramForDuties,
TetragramForChange,
TetragramForDecisiveness,
TetragramForBoldResolution,
TetragramForPacking,
TetragramForLegion,
TetragramForCloseness,
TetragramForKinship,
TetragramForGathering,
TetragramForStrength,
TetragramForPurity,
TetragramForFullness,
TetragramForResidence,
TetragramForLawOrModel,
TetragramForResponse,
TetragramForGoingToMeet,
TetragramForEncounters,
TetragramForStove,
TetragramForGreatness,
TetragramForEnlargement,
TetragramForPattern,
TetragramForRitual,
TetragramForFlight,
TetragramForVastnessOrWasting,
TetragramForConstancy,
TetragramForMeasure,
TetragramForEternity,
TetragramForUnity,
TetragramForDiminishment,
TetragramForClosedMouth,
TetragramForGuardedness,
TetragramForGatheringIn,
TetragramForMassing,
TetragramForAccumulation,
TetragramForEmbellishment,
TetragramForDoubt,
TetragramForWatch,
TetragramForSinking,
TetragramForInner,
TetragramForDeparture,
TetragramForDarkening,
TetragramForDimming,
TetragramForExhaustion,
TetragramForSeverance,
TetragramForStoppage,
TetragramForHardness,
TetragramForCompletion,
TetragramForClosure,
TetragramForFailure,
TetragramForAggravation,
TetragramForCompliance,
TetragramForOnTheVerge,
TetragramForDifficulties,
TetragramForLabouring,
TetragramForFostering,
}
impl Into<char> for TaiXuanJingSymbols {
fn into(self) -> char {
match self {
TaiXuanJingSymbols::MonogramForEarth => '𝌀',
TaiXuanJingSymbols::DigramForHeavenlyEarth => '𝌁',
TaiXuanJingSymbols::DigramForHumanEarth => '𝌂',
TaiXuanJingSymbols::DigramForEarthlyHeaven => '𝌃',
TaiXuanJingSymbols::DigramForEarthlyHuman => '𝌄',
TaiXuanJingSymbols::DigramForEarth => '𝌅',
TaiXuanJingSymbols::TetragramForCentre => '𝌆',
TaiXuanJingSymbols::TetragramForFullCircle => '𝌇',
TaiXuanJingSymbols::TetragramForMired => '𝌈',
TaiXuanJingSymbols::TetragramForBarrier => '𝌉',
TaiXuanJingSymbols::TetragramForKeepingSmall => '𝌊',
TaiXuanJingSymbols::TetragramForContrariety => '𝌋',
TaiXuanJingSymbols::TetragramForAscent => '𝌌',
TaiXuanJingSymbols::TetragramForOpposition => '𝌍',
TaiXuanJingSymbols::TetragramForBranchingOut => '𝌎',
TaiXuanJingSymbols::TetragramForDefectivenessOrDistortion => '𝌏',
TaiXuanJingSymbols::TetragramForDivergence => '𝌐',
TaiXuanJingSymbols::TetragramForYouthfulness => '𝌑',
TaiXuanJingSymbols::TetragramForIncrease => '𝌒',
TaiXuanJingSymbols::TetragramForPenetration => '𝌓',
TaiXuanJingSymbols::TetragramForReach => '𝌔',
TaiXuanJingSymbols::TetragramForContact => '𝌕',
TaiXuanJingSymbols::TetragramForHoldingBack => '𝌖',
TaiXuanJingSymbols::TetragramForWaiting => '𝌗',
TaiXuanJingSymbols::TetragramForFollowing => '𝌘',
TaiXuanJingSymbols::TetragramForAdvance => '𝌙',
TaiXuanJingSymbols::TetragramForRelease => '𝌚',
TaiXuanJingSymbols::TetragramForResistance => '𝌛',
TaiXuanJingSymbols::TetragramForEase => '𝌜',
TaiXuanJingSymbols::TetragramForJoy => '𝌝',
TaiXuanJingSymbols::TetragramForContention => '𝌞',
TaiXuanJingSymbols::TetragramForEndeavour => '𝌟',
TaiXuanJingSymbols::TetragramForDuties => '𝌠',
TaiXuanJingSymbols::TetragramForChange => '𝌡',
TaiXuanJingSymbols::TetragramForDecisiveness => '𝌢',
TaiXuanJingSymbols::TetragramForBoldResolution => '𝌣',
TaiXuanJingSymbols::TetragramForPacking => '𝌤',
TaiXuanJingSymbols::TetragramForLegion => '𝌥',
TaiXuanJingSymbols::TetragramForCloseness => '𝌦',
TaiXuanJingSymbols::TetragramForKinship => '𝌧',
TaiXuanJingSymbols::TetragramForGathering => '𝌨',
TaiXuanJingSymbols::TetragramForStrength => '𝌩',
TaiXuanJingSymbols::TetragramForPurity => '𝌪',
TaiXuanJingSymbols::TetragramForFullness => '𝌫',
TaiXuanJingSymbols::TetragramForResidence => '𝌬',
TaiXuanJingSymbols::TetragramForLawOrModel => '𝌭',
TaiXuanJingSymbols::TetragramForResponse => '𝌮',
TaiXuanJingSymbols::TetragramForGoingToMeet => '𝌯',
TaiXuanJingSymbols::TetragramForEncounters => '𝌰',
TaiXuanJingSymbols::TetragramForStove => '𝌱',
TaiXuanJingSymbols::TetragramForGreatness => '𝌲',
TaiXuanJingSymbols::TetragramForEnlargement => '𝌳',
TaiXuanJingSymbols::TetragramForPattern => '𝌴',
TaiXuanJingSymbols::TetragramForRitual => '𝌵',
TaiXuanJingSymbols::TetragramForFlight => '𝌶',
TaiXuanJingSymbols::TetragramForVastnessOrWasting => '𝌷',
TaiXuanJingSymbols::TetragramForConstancy => '𝌸',
TaiXuanJingSymbols::TetragramForMeasure => '𝌹',
TaiXuanJingSymbols::TetragramForEternity => '𝌺',
TaiXuanJingSymbols::TetragramForUnity => '𝌻',
TaiXuanJingSymbols::TetragramForDiminishment => '𝌼',
TaiXuanJingSymbols::TetragramForClosedMouth => '𝌽',
TaiXuanJingSymbols::TetragramForGuardedness => '𝌾',
TaiXuanJingSymbols::TetragramForGatheringIn => '𝌿',
TaiXuanJingSymbols::TetragramForMassing => '𝍀',
TaiXuanJingSymbols::TetragramForAccumulation => '𝍁',
TaiXuanJingSymbols::TetragramForEmbellishment => '𝍂',
TaiXuanJingSymbols::TetragramForDoubt => '𝍃',
TaiXuanJingSymbols::TetragramForWatch => '𝍄',
TaiXuanJingSymbols::TetragramForSinking => '𝍅',
TaiXuanJingSymbols::TetragramForInner => '𝍆',
TaiXuanJingSymbols::TetragramForDeparture => '𝍇',
TaiXuanJingSymbols::TetragramForDarkening => '𝍈',
TaiXuanJingSymbols::TetragramForDimming => '𝍉',
TaiXuanJingSymbols::TetragramForExhaustion => '𝍊',
TaiXuanJingSymbols::TetragramForSeverance => '𝍋',
TaiXuanJingSymbols::TetragramForStoppage => '𝍌',
TaiXuanJingSymbols::TetragramForHardness => '𝍍',
TaiXuanJingSymbols::TetragramForCompletion => '𝍎',
TaiXuanJingSymbols::TetragramForClosure => '𝍏',
TaiXuanJingSymbols::TetragramForFailure => '𝍐',
TaiXuanJingSymbols::TetragramForAggravation => '𝍑',
TaiXuanJingSymbols::TetragramForCompliance => '𝍒',
TaiXuanJingSymbols::TetragramForOnTheVerge => '𝍓',
TaiXuanJingSymbols::TetragramForDifficulties => '𝍔',
TaiXuanJingSymbols::TetragramForLabouring => '𝍕',
TaiXuanJingSymbols::TetragramForFostering => '𝍖',
}
}
}
impl std::convert::TryFrom<char> for TaiXuanJingSymbols {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'𝌀' => Ok(TaiXuanJingSymbols::MonogramForEarth),
'𝌁' => Ok(TaiXuanJingSymbols::DigramForHeavenlyEarth),
'𝌂' => Ok(TaiXuanJingSymbols::DigramForHumanEarth),
'𝌃' => Ok(TaiXuanJingSymbols::DigramForEarthlyHeaven),
'𝌄' => Ok(TaiXuanJingSymbols::DigramForEarthlyHuman),
'𝌅' => Ok(TaiXuanJingSymbols::DigramForEarth),
'𝌆' => Ok(TaiXuanJingSymbols::TetragramForCentre),
'𝌇' => Ok(TaiXuanJingSymbols::TetragramForFullCircle),
'𝌈' => Ok(TaiXuanJingSymbols::TetragramForMired),
'𝌉' => Ok(TaiXuanJingSymbols::TetragramForBarrier),
'𝌊' => Ok(TaiXuanJingSymbols::TetragramForKeepingSmall),
'𝌋' => Ok(TaiXuanJingSymbols::TetragramForContrariety),
'𝌌' => Ok(TaiXuanJingSymbols::TetragramForAscent),
'𝌍' => Ok(TaiXuanJingSymbols::TetragramForOpposition),
'𝌎' => Ok(TaiXuanJingSymbols::TetragramForBranchingOut),
'𝌏' => Ok(TaiXuanJingSymbols::TetragramForDefectivenessOrDistortion),
'𝌐' => Ok(TaiXuanJingSymbols::TetragramForDivergence),
'𝌑' => Ok(TaiXuanJingSymbols::TetragramForYouthfulness),
'𝌒' => Ok(TaiXuanJingSymbols::TetragramForIncrease),
'𝌓' => Ok(TaiXuanJingSymbols::TetragramForPenetration),
'𝌔' => Ok(TaiXuanJingSymbols::TetragramForReach),
'𝌕' => Ok(TaiXuanJingSymbols::TetragramForContact),
'𝌖' => Ok(TaiXuanJingSymbols::TetragramForHoldingBack),
'𝌗' => Ok(TaiXuanJingSymbols::TetragramForWaiting),
'𝌘' => Ok(TaiXuanJingSymbols::TetragramForFollowing),
'𝌙' => Ok(TaiXuanJingSymbols::TetragramForAdvance),
'𝌚' => Ok(TaiXuanJingSymbols::TetragramForRelease),
'𝌛' => Ok(TaiXuanJingSymbols::TetragramForResistance),
'𝌜' => Ok(TaiXuanJingSymbols::TetragramForEase),
'𝌝' => Ok(TaiXuanJingSymbols::TetragramForJoy),
'𝌞' => Ok(TaiXuanJingSymbols::TetragramForContention),
'𝌟' => Ok(TaiXuanJingSymbols::TetragramForEndeavour),
'𝌠' => Ok(TaiXuanJingSymbols::TetragramForDuties),
'𝌡' => Ok(TaiXuanJingSymbols::TetragramForChange),
'𝌢' => Ok(TaiXuanJingSymbols::TetragramForDecisiveness),
'𝌣' => Ok(TaiXuanJingSymbols::TetragramForBoldResolution),
'𝌤' => Ok(TaiXuanJingSymbols::TetragramForPacking),
'𝌥' => Ok(TaiXuanJingSymbols::TetragramForLegion),
'𝌦' => Ok(TaiXuanJingSymbols::TetragramForCloseness),
'𝌧' => Ok(TaiXuanJingSymbols::TetragramForKinship),
'𝌨' => Ok(TaiXuanJingSymbols::TetragramForGathering),
'𝌩' => Ok(TaiXuanJingSymbols::TetragramForStrength),
'𝌪' => Ok(TaiXuanJingSymbols::TetragramForPurity),
'𝌫' => Ok(TaiXuanJingSymbols::TetragramForFullness),
'𝌬' => Ok(TaiXuanJingSymbols::TetragramForResidence),
'𝌭' => Ok(TaiXuanJingSymbols::TetragramForLawOrModel),
'𝌮' => Ok(TaiXuanJingSymbols::TetragramForResponse),
'𝌯' => Ok(TaiXuanJingSymbols::TetragramForGoingToMeet),
'𝌰' => Ok(TaiXuanJingSymbols::TetragramForEncounters),
'𝌱' => Ok(TaiXuanJingSymbols::TetragramForStove),
'𝌲' => Ok(TaiXuanJingSymbols::TetragramForGreatness),
'𝌳' => Ok(TaiXuanJingSymbols::TetragramForEnlargement),
'𝌴' => Ok(TaiXuanJingSymbols::TetragramForPattern),
'𝌵' => Ok(TaiXuanJingSymbols::TetragramForRitual),
'𝌶' => Ok(TaiXuanJingSymbols::TetragramForFlight),
'𝌷' => Ok(TaiXuanJingSymbols::TetragramForVastnessOrWasting),
'𝌸' => Ok(TaiXuanJingSymbols::TetragramForConstancy),
'𝌹' => Ok(TaiXuanJingSymbols::TetragramForMeasure),
'𝌺' => Ok(TaiXuanJingSymbols::TetragramForEternity),
'𝌻' => Ok(TaiXuanJingSymbols::TetragramForUnity),
'𝌼' => Ok(TaiXuanJingSymbols::TetragramForDiminishment),
'𝌽' => Ok(TaiXuanJingSymbols::TetragramForClosedMouth),
'𝌾' => Ok(TaiXuanJingSymbols::TetragramForGuardedness),
'𝌿' => Ok(TaiXuanJingSymbols::TetragramForGatheringIn),
'𝍀' => Ok(TaiXuanJingSymbols::TetragramForMassing),
'𝍁' => Ok(TaiXuanJingSymbols::TetragramForAccumulation),
'𝍂' => Ok(TaiXuanJingSymbols::TetragramForEmbellishment),
'𝍃' => Ok(TaiXuanJingSymbols::TetragramForDoubt),
'𝍄' => Ok(TaiXuanJingSymbols::TetragramForWatch),
'𝍅' => Ok(TaiXuanJingSymbols::TetragramForSinking),
'𝍆' => Ok(TaiXuanJingSymbols::TetragramForInner),
'𝍇' => Ok(TaiXuanJingSymbols::TetragramForDeparture),
'𝍈' => Ok(TaiXuanJingSymbols::TetragramForDarkening),
'𝍉' => Ok(TaiXuanJingSymbols::TetragramForDimming),
'𝍊' => Ok(TaiXuanJingSymbols::TetragramForExhaustion),
'𝍋' => Ok(TaiXuanJingSymbols::TetragramForSeverance),
'𝍌' => Ok(TaiXuanJingSymbols::TetragramForStoppage),
'𝍍' => Ok(TaiXuanJingSymbols::TetragramForHardness),
'𝍎' => Ok(TaiXuanJingSymbols::TetragramForCompletion),
'𝍏' => Ok(TaiXuanJingSymbols::TetragramForClosure),
'𝍐' => Ok(TaiXuanJingSymbols::TetragramForFailure),
'𝍑' => Ok(TaiXuanJingSymbols::TetragramForAggravation),
'𝍒' => Ok(TaiXuanJingSymbols::TetragramForCompliance),
'𝍓' => Ok(TaiXuanJingSymbols::TetragramForOnTheVerge),
'𝍔' => Ok(TaiXuanJingSymbols::TetragramForDifficulties),
'𝍕' => Ok(TaiXuanJingSymbols::TetragramForLabouring),
'𝍖' => Ok(TaiXuanJingSymbols::TetragramForFostering),
_ => Err(()),
}
}
}
impl Into<u32> for TaiXuanJingSymbols {
fn into(self) -> u32 {
let c: char = self.into();
let hex = c
.escape_unicode()
.to_string()
.replace("\\u{", "")
.replace("}", "");
u32::from_str_radix(&hex, 16).unwrap()
}
}
impl std::convert::TryFrom<u32> for TaiXuanJingSymbols {
type Error = ();
fn try_from(u: u32) -> Result<Self, Self::Error> {
if let Ok(c) = char::try_from(u) {
Self::try_from(c)
} else {
Err(())
}
}
}
impl Iterator for TaiXuanJingSymbols {
type Item = Self;
fn next(&mut self) -> Option<Self> {
let index: u32 = (*self).into();
use std::convert::TryFrom;
Self::try_from(index + 1).ok()
}
}
impl TaiXuanJingSymbols {
pub fn new() -> Self {
TaiXuanJingSymbols::MonogramForEarth
}
pub fn name(&self) -> String {
let s = std::format!("TaiXuanJingSymbols{:#?}", self);
string_morph::to_sentence_case(&s)
}
}