mod constants {
pub const MONOGRAM_FOR_EARTH: char = '𝌀';
pub const DIGRAM_FOR_HEAVENLY_EARTH: char = '𝌁';
pub const DIGRAM_FOR_HUMAN_EARTH: char = '𝌂';
pub const DIGRAM_FOR_EARTHLY_HEAVEN: char = '𝌃';
pub const DIGRAM_FOR_EARTHLY_HUMAN: char = '𝌄';
pub const DIGRAM_FOR_EARTH: char = '𝌅';
pub const TETRAGRAM_FOR_CENTRE: char = '𝌆';
pub const TETRAGRAM_FOR_FULL_CIRCLE: char = '𝌇';
pub const TETRAGRAM_FOR_MIRED: char = '𝌈';
pub const TETRAGRAM_FOR_BARRIER: char = '𝌉';
pub const TETRAGRAM_FOR_KEEPING_SMALL: char = '𝌊';
pub const TETRAGRAM_FOR_CONTRARIETY: char = '𝌋';
pub const TETRAGRAM_FOR_ASCENT: char = '𝌌';
pub const TETRAGRAM_FOR_OPPOSITION: char = '𝌍';
pub const TETRAGRAM_FOR_BRANCHING_OUT: char = '𝌎';
pub const TETRAGRAM_FOR_DEFECTIVENESS_OR_DISTORTION: char = '𝌏';
pub const TETRAGRAM_FOR_DIVERGENCE: char = '𝌐';
pub const TETRAGRAM_FOR_YOUTHFULNESS: char = '𝌑';
pub const TETRAGRAM_FOR_INCREASE: char = '𝌒';
pub const TETRAGRAM_FOR_PENETRATION: char = '𝌓';
pub const TETRAGRAM_FOR_REACH: char = '𝌔';
pub const TETRAGRAM_FOR_CONTACT: char = '𝌕';
pub const TETRAGRAM_FOR_HOLDING_BACK: char = '𝌖';
pub const TETRAGRAM_FOR_WAITING: char = '𝌗';
pub const TETRAGRAM_FOR_FOLLOWING: char = '𝌘';
pub const TETRAGRAM_FOR_ADVANCE: char = '𝌙';
pub const TETRAGRAM_FOR_RELEASE: char = '𝌚';
pub const TETRAGRAM_FOR_RESISTANCE: char = '𝌛';
pub const TETRAGRAM_FOR_EASE: char = '𝌜';
pub const TETRAGRAM_FOR_JOY: char = '𝌝';
pub const TETRAGRAM_FOR_CONTENTION: char = '𝌞';
pub const TETRAGRAM_FOR_ENDEAVOUR: char = '𝌟';
pub const TETRAGRAM_FOR_DUTIES: char = '𝌠';
pub const TETRAGRAM_FOR_CHANGE: char = '𝌡';
pub const TETRAGRAM_FOR_DECISIVENESS: char = '𝌢';
pub const TETRAGRAM_FOR_BOLD_RESOLUTION: char = '𝌣';
pub const TETRAGRAM_FOR_PACKING: char = '𝌤';
pub const TETRAGRAM_FOR_LEGION: char = '𝌥';
pub const TETRAGRAM_FOR_CLOSENESS: char = '𝌦';
pub const TETRAGRAM_FOR_KINSHIP: char = '𝌧';
pub const TETRAGRAM_FOR_GATHERING: char = '𝌨';
pub const TETRAGRAM_FOR_STRENGTH: char = '𝌩';
pub const TETRAGRAM_FOR_PURITY: char = '𝌪';
pub const TETRAGRAM_FOR_FULLNESS: char = '𝌫';
pub const TETRAGRAM_FOR_RESIDENCE: char = '𝌬';
pub const TETRAGRAM_FOR_LAW_OR_MODEL: char = '𝌭';
pub const TETRAGRAM_FOR_RESPONSE: char = '𝌮';
pub const TETRAGRAM_FOR_GOING_TO_MEET: char = '𝌯';
pub const TETRAGRAM_FOR_ENCOUNTERS: char = '𝌰';
pub const TETRAGRAM_FOR_STOVE: char = '𝌱';
pub const TETRAGRAM_FOR_GREATNESS: char = '𝌲';
pub const TETRAGRAM_FOR_ENLARGEMENT: char = '𝌳';
pub const TETRAGRAM_FOR_PATTERN: char = '𝌴';
pub const TETRAGRAM_FOR_RITUAL: char = '𝌵';
pub const TETRAGRAM_FOR_FLIGHT: char = '𝌶';
pub const TETRAGRAM_FOR_VASTNESS_OR_WASTING: char = '𝌷';
pub const TETRAGRAM_FOR_CONSTANCY: char = '𝌸';
pub const TETRAGRAM_FOR_MEASURE: char = '𝌹';
pub const TETRAGRAM_FOR_ETERNITY: char = '𝌺';
pub const TETRAGRAM_FOR_UNITY: char = '𝌻';
pub const TETRAGRAM_FOR_DIMINISHMENT: char = '𝌼';
pub const TETRAGRAM_FOR_CLOSED_MOUTH: char = '𝌽';
pub const TETRAGRAM_FOR_GUARDEDNESS: char = '𝌾';
pub const TETRAGRAM_FOR_GATHERING_IN: char = '𝌿';
pub const TETRAGRAM_FOR_MASSING: char = '𝍀';
pub const TETRAGRAM_FOR_ACCUMULATION: char = '𝍁';
pub const TETRAGRAM_FOR_EMBELLISHMENT: char = '𝍂';
pub const TETRAGRAM_FOR_DOUBT: char = '𝍃';
pub const TETRAGRAM_FOR_WATCH: char = '𝍄';
pub const TETRAGRAM_FOR_SINKING: char = '𝍅';
pub const TETRAGRAM_FOR_INNER: char = '𝍆';
pub const TETRAGRAM_FOR_DEPARTURE: char = '𝍇';
pub const TETRAGRAM_FOR_DARKENING: char = '𝍈';
pub const TETRAGRAM_FOR_DIMMING: char = '𝍉';
pub const TETRAGRAM_FOR_EXHAUSTION: char = '𝍊';
pub const TETRAGRAM_FOR_SEVERANCE: char = '𝍋';
pub const TETRAGRAM_FOR_STOPPAGE: char = '𝍌';
pub const TETRAGRAM_FOR_HARDNESS: char = '𝍍';
pub const TETRAGRAM_FOR_COMPLETION: char = '𝍎';
pub const TETRAGRAM_FOR_CLOSURE: char = '𝍏';
pub const TETRAGRAM_FOR_FAILURE: char = '𝍐';
pub const TETRAGRAM_FOR_AGGRAVATION: char = '𝍑';
pub const TETRAGRAM_FOR_COMPLIANCE: char = '𝍒';
pub const TETRAGRAM_FOR_ON_THE_VERGE: char = '𝍓';
pub const TETRAGRAM_FOR_DIFFICULTIES: char = '𝍔';
pub const TETRAGRAM_FOR_LABOURING: char = '𝍕';
pub const TETRAGRAM_FOR_FOSTERING: char = '𝍖';
}
#[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 {
use constants::*;
match self {
TaiXuanJingSymbols::MonogramForEarth => MONOGRAM_FOR_EARTH,
TaiXuanJingSymbols::DigramForHeavenlyEarth => DIGRAM_FOR_HEAVENLY_EARTH,
TaiXuanJingSymbols::DigramForHumanEarth => DIGRAM_FOR_HUMAN_EARTH,
TaiXuanJingSymbols::DigramForEarthlyHeaven => DIGRAM_FOR_EARTHLY_HEAVEN,
TaiXuanJingSymbols::DigramForEarthlyHuman => DIGRAM_FOR_EARTHLY_HUMAN,
TaiXuanJingSymbols::DigramForEarth => DIGRAM_FOR_EARTH,
TaiXuanJingSymbols::TetragramForCentre => TETRAGRAM_FOR_CENTRE,
TaiXuanJingSymbols::TetragramForFullCircle => TETRAGRAM_FOR_FULL_CIRCLE,
TaiXuanJingSymbols::TetragramForMired => TETRAGRAM_FOR_MIRED,
TaiXuanJingSymbols::TetragramForBarrier => TETRAGRAM_FOR_BARRIER,
TaiXuanJingSymbols::TetragramForKeepingSmall => TETRAGRAM_FOR_KEEPING_SMALL,
TaiXuanJingSymbols::TetragramForContrariety => TETRAGRAM_FOR_CONTRARIETY,
TaiXuanJingSymbols::TetragramForAscent => TETRAGRAM_FOR_ASCENT,
TaiXuanJingSymbols::TetragramForOpposition => TETRAGRAM_FOR_OPPOSITION,
TaiXuanJingSymbols::TetragramForBranchingOut => TETRAGRAM_FOR_BRANCHING_OUT,
TaiXuanJingSymbols::TetragramForDefectivenessOrDistortion => TETRAGRAM_FOR_DEFECTIVENESS_OR_DISTORTION,
TaiXuanJingSymbols::TetragramForDivergence => TETRAGRAM_FOR_DIVERGENCE,
TaiXuanJingSymbols::TetragramForYouthfulness => TETRAGRAM_FOR_YOUTHFULNESS,
TaiXuanJingSymbols::TetragramForIncrease => TETRAGRAM_FOR_INCREASE,
TaiXuanJingSymbols::TetragramForPenetration => TETRAGRAM_FOR_PENETRATION,
TaiXuanJingSymbols::TetragramForReach => TETRAGRAM_FOR_REACH,
TaiXuanJingSymbols::TetragramForContact => TETRAGRAM_FOR_CONTACT,
TaiXuanJingSymbols::TetragramForHoldingBack => TETRAGRAM_FOR_HOLDING_BACK,
TaiXuanJingSymbols::TetragramForWaiting => TETRAGRAM_FOR_WAITING,
TaiXuanJingSymbols::TetragramForFollowing => TETRAGRAM_FOR_FOLLOWING,
TaiXuanJingSymbols::TetragramForAdvance => TETRAGRAM_FOR_ADVANCE,
TaiXuanJingSymbols::TetragramForRelease => TETRAGRAM_FOR_RELEASE,
TaiXuanJingSymbols::TetragramForResistance => TETRAGRAM_FOR_RESISTANCE,
TaiXuanJingSymbols::TetragramForEase => TETRAGRAM_FOR_EASE,
TaiXuanJingSymbols::TetragramForJoy => TETRAGRAM_FOR_JOY,
TaiXuanJingSymbols::TetragramForContention => TETRAGRAM_FOR_CONTENTION,
TaiXuanJingSymbols::TetragramForEndeavour => TETRAGRAM_FOR_ENDEAVOUR,
TaiXuanJingSymbols::TetragramForDuties => TETRAGRAM_FOR_DUTIES,
TaiXuanJingSymbols::TetragramForChange => TETRAGRAM_FOR_CHANGE,
TaiXuanJingSymbols::TetragramForDecisiveness => TETRAGRAM_FOR_DECISIVENESS,
TaiXuanJingSymbols::TetragramForBoldResolution => TETRAGRAM_FOR_BOLD_RESOLUTION,
TaiXuanJingSymbols::TetragramForPacking => TETRAGRAM_FOR_PACKING,
TaiXuanJingSymbols::TetragramForLegion => TETRAGRAM_FOR_LEGION,
TaiXuanJingSymbols::TetragramForCloseness => TETRAGRAM_FOR_CLOSENESS,
TaiXuanJingSymbols::TetragramForKinship => TETRAGRAM_FOR_KINSHIP,
TaiXuanJingSymbols::TetragramForGathering => TETRAGRAM_FOR_GATHERING,
TaiXuanJingSymbols::TetragramForStrength => TETRAGRAM_FOR_STRENGTH,
TaiXuanJingSymbols::TetragramForPurity => TETRAGRAM_FOR_PURITY,
TaiXuanJingSymbols::TetragramForFullness => TETRAGRAM_FOR_FULLNESS,
TaiXuanJingSymbols::TetragramForResidence => TETRAGRAM_FOR_RESIDENCE,
TaiXuanJingSymbols::TetragramForLawOrModel => TETRAGRAM_FOR_LAW_OR_MODEL,
TaiXuanJingSymbols::TetragramForResponse => TETRAGRAM_FOR_RESPONSE,
TaiXuanJingSymbols::TetragramForGoingToMeet => TETRAGRAM_FOR_GOING_TO_MEET,
TaiXuanJingSymbols::TetragramForEncounters => TETRAGRAM_FOR_ENCOUNTERS,
TaiXuanJingSymbols::TetragramForStove => TETRAGRAM_FOR_STOVE,
TaiXuanJingSymbols::TetragramForGreatness => TETRAGRAM_FOR_GREATNESS,
TaiXuanJingSymbols::TetragramForEnlargement => TETRAGRAM_FOR_ENLARGEMENT,
TaiXuanJingSymbols::TetragramForPattern => TETRAGRAM_FOR_PATTERN,
TaiXuanJingSymbols::TetragramForRitual => TETRAGRAM_FOR_RITUAL,
TaiXuanJingSymbols::TetragramForFlight => TETRAGRAM_FOR_FLIGHT,
TaiXuanJingSymbols::TetragramForVastnessOrWasting => TETRAGRAM_FOR_VASTNESS_OR_WASTING,
TaiXuanJingSymbols::TetragramForConstancy => TETRAGRAM_FOR_CONSTANCY,
TaiXuanJingSymbols::TetragramForMeasure => TETRAGRAM_FOR_MEASURE,
TaiXuanJingSymbols::TetragramForEternity => TETRAGRAM_FOR_ETERNITY,
TaiXuanJingSymbols::TetragramForUnity => TETRAGRAM_FOR_UNITY,
TaiXuanJingSymbols::TetragramForDiminishment => TETRAGRAM_FOR_DIMINISHMENT,
TaiXuanJingSymbols::TetragramForClosedMouth => TETRAGRAM_FOR_CLOSED_MOUTH,
TaiXuanJingSymbols::TetragramForGuardedness => TETRAGRAM_FOR_GUARDEDNESS,
TaiXuanJingSymbols::TetragramForGatheringIn => TETRAGRAM_FOR_GATHERING_IN,
TaiXuanJingSymbols::TetragramForMassing => TETRAGRAM_FOR_MASSING,
TaiXuanJingSymbols::TetragramForAccumulation => TETRAGRAM_FOR_ACCUMULATION,
TaiXuanJingSymbols::TetragramForEmbellishment => TETRAGRAM_FOR_EMBELLISHMENT,
TaiXuanJingSymbols::TetragramForDoubt => TETRAGRAM_FOR_DOUBT,
TaiXuanJingSymbols::TetragramForWatch => TETRAGRAM_FOR_WATCH,
TaiXuanJingSymbols::TetragramForSinking => TETRAGRAM_FOR_SINKING,
TaiXuanJingSymbols::TetragramForInner => TETRAGRAM_FOR_INNER,
TaiXuanJingSymbols::TetragramForDeparture => TETRAGRAM_FOR_DEPARTURE,
TaiXuanJingSymbols::TetragramForDarkening => TETRAGRAM_FOR_DARKENING,
TaiXuanJingSymbols::TetragramForDimming => TETRAGRAM_FOR_DIMMING,
TaiXuanJingSymbols::TetragramForExhaustion => TETRAGRAM_FOR_EXHAUSTION,
TaiXuanJingSymbols::TetragramForSeverance => TETRAGRAM_FOR_SEVERANCE,
TaiXuanJingSymbols::TetragramForStoppage => TETRAGRAM_FOR_STOPPAGE,
TaiXuanJingSymbols::TetragramForHardness => TETRAGRAM_FOR_HARDNESS,
TaiXuanJingSymbols::TetragramForCompletion => TETRAGRAM_FOR_COMPLETION,
TaiXuanJingSymbols::TetragramForClosure => TETRAGRAM_FOR_CLOSURE,
TaiXuanJingSymbols::TetragramForFailure => TETRAGRAM_FOR_FAILURE,
TaiXuanJingSymbols::TetragramForAggravation => TETRAGRAM_FOR_AGGRAVATION,
TaiXuanJingSymbols::TetragramForCompliance => TETRAGRAM_FOR_COMPLIANCE,
TaiXuanJingSymbols::TetragramForOnTheVerge => TETRAGRAM_FOR_ON_THE_VERGE,
TaiXuanJingSymbols::TetragramForDifficulties => TETRAGRAM_FOR_DIFFICULTIES,
TaiXuanJingSymbols::TetragramForLabouring => TETRAGRAM_FOR_LABOURING,
TaiXuanJingSymbols::TetragramForFostering => TETRAGRAM_FOR_FOSTERING,
}
}
}
impl std::convert::TryFrom<char> for TaiXuanJingSymbols {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
use constants::*;
match c {
MONOGRAM_FOR_EARTH => Ok(TaiXuanJingSymbols::MonogramForEarth),
DIGRAM_FOR_HEAVENLY_EARTH => Ok(TaiXuanJingSymbols::DigramForHeavenlyEarth),
DIGRAM_FOR_HUMAN_EARTH => Ok(TaiXuanJingSymbols::DigramForHumanEarth),
DIGRAM_FOR_EARTHLY_HEAVEN => Ok(TaiXuanJingSymbols::DigramForEarthlyHeaven),
DIGRAM_FOR_EARTHLY_HUMAN => Ok(TaiXuanJingSymbols::DigramForEarthlyHuman),
DIGRAM_FOR_EARTH => Ok(TaiXuanJingSymbols::DigramForEarth),
TETRAGRAM_FOR_CENTRE => Ok(TaiXuanJingSymbols::TetragramForCentre),
TETRAGRAM_FOR_FULL_CIRCLE => Ok(TaiXuanJingSymbols::TetragramForFullCircle),
TETRAGRAM_FOR_MIRED => Ok(TaiXuanJingSymbols::TetragramForMired),
TETRAGRAM_FOR_BARRIER => Ok(TaiXuanJingSymbols::TetragramForBarrier),
TETRAGRAM_FOR_KEEPING_SMALL => Ok(TaiXuanJingSymbols::TetragramForKeepingSmall),
TETRAGRAM_FOR_CONTRARIETY => Ok(TaiXuanJingSymbols::TetragramForContrariety),
TETRAGRAM_FOR_ASCENT => Ok(TaiXuanJingSymbols::TetragramForAscent),
TETRAGRAM_FOR_OPPOSITION => Ok(TaiXuanJingSymbols::TetragramForOpposition),
TETRAGRAM_FOR_BRANCHING_OUT => Ok(TaiXuanJingSymbols::TetragramForBranchingOut),
TETRAGRAM_FOR_DEFECTIVENESS_OR_DISTORTION => Ok(TaiXuanJingSymbols::TetragramForDefectivenessOrDistortion),
TETRAGRAM_FOR_DIVERGENCE => Ok(TaiXuanJingSymbols::TetragramForDivergence),
TETRAGRAM_FOR_YOUTHFULNESS => Ok(TaiXuanJingSymbols::TetragramForYouthfulness),
TETRAGRAM_FOR_INCREASE => Ok(TaiXuanJingSymbols::TetragramForIncrease),
TETRAGRAM_FOR_PENETRATION => Ok(TaiXuanJingSymbols::TetragramForPenetration),
TETRAGRAM_FOR_REACH => Ok(TaiXuanJingSymbols::TetragramForReach),
TETRAGRAM_FOR_CONTACT => Ok(TaiXuanJingSymbols::TetragramForContact),
TETRAGRAM_FOR_HOLDING_BACK => Ok(TaiXuanJingSymbols::TetragramForHoldingBack),
TETRAGRAM_FOR_WAITING => Ok(TaiXuanJingSymbols::TetragramForWaiting),
TETRAGRAM_FOR_FOLLOWING => Ok(TaiXuanJingSymbols::TetragramForFollowing),
TETRAGRAM_FOR_ADVANCE => Ok(TaiXuanJingSymbols::TetragramForAdvance),
TETRAGRAM_FOR_RELEASE => Ok(TaiXuanJingSymbols::TetragramForRelease),
TETRAGRAM_FOR_RESISTANCE => Ok(TaiXuanJingSymbols::TetragramForResistance),
TETRAGRAM_FOR_EASE => Ok(TaiXuanJingSymbols::TetragramForEase),
TETRAGRAM_FOR_JOY => Ok(TaiXuanJingSymbols::TetragramForJoy),
TETRAGRAM_FOR_CONTENTION => Ok(TaiXuanJingSymbols::TetragramForContention),
TETRAGRAM_FOR_ENDEAVOUR => Ok(TaiXuanJingSymbols::TetragramForEndeavour),
TETRAGRAM_FOR_DUTIES => Ok(TaiXuanJingSymbols::TetragramForDuties),
TETRAGRAM_FOR_CHANGE => Ok(TaiXuanJingSymbols::TetragramForChange),
TETRAGRAM_FOR_DECISIVENESS => Ok(TaiXuanJingSymbols::TetragramForDecisiveness),
TETRAGRAM_FOR_BOLD_RESOLUTION => Ok(TaiXuanJingSymbols::TetragramForBoldResolution),
TETRAGRAM_FOR_PACKING => Ok(TaiXuanJingSymbols::TetragramForPacking),
TETRAGRAM_FOR_LEGION => Ok(TaiXuanJingSymbols::TetragramForLegion),
TETRAGRAM_FOR_CLOSENESS => Ok(TaiXuanJingSymbols::TetragramForCloseness),
TETRAGRAM_FOR_KINSHIP => Ok(TaiXuanJingSymbols::TetragramForKinship),
TETRAGRAM_FOR_GATHERING => Ok(TaiXuanJingSymbols::TetragramForGathering),
TETRAGRAM_FOR_STRENGTH => Ok(TaiXuanJingSymbols::TetragramForStrength),
TETRAGRAM_FOR_PURITY => Ok(TaiXuanJingSymbols::TetragramForPurity),
TETRAGRAM_FOR_FULLNESS => Ok(TaiXuanJingSymbols::TetragramForFullness),
TETRAGRAM_FOR_RESIDENCE => Ok(TaiXuanJingSymbols::TetragramForResidence),
TETRAGRAM_FOR_LAW_OR_MODEL => Ok(TaiXuanJingSymbols::TetragramForLawOrModel),
TETRAGRAM_FOR_RESPONSE => Ok(TaiXuanJingSymbols::TetragramForResponse),
TETRAGRAM_FOR_GOING_TO_MEET => Ok(TaiXuanJingSymbols::TetragramForGoingToMeet),
TETRAGRAM_FOR_ENCOUNTERS => Ok(TaiXuanJingSymbols::TetragramForEncounters),
TETRAGRAM_FOR_STOVE => Ok(TaiXuanJingSymbols::TetragramForStove),
TETRAGRAM_FOR_GREATNESS => Ok(TaiXuanJingSymbols::TetragramForGreatness),
TETRAGRAM_FOR_ENLARGEMENT => Ok(TaiXuanJingSymbols::TetragramForEnlargement),
TETRAGRAM_FOR_PATTERN => Ok(TaiXuanJingSymbols::TetragramForPattern),
TETRAGRAM_FOR_RITUAL => Ok(TaiXuanJingSymbols::TetragramForRitual),
TETRAGRAM_FOR_FLIGHT => Ok(TaiXuanJingSymbols::TetragramForFlight),
TETRAGRAM_FOR_VASTNESS_OR_WASTING => Ok(TaiXuanJingSymbols::TetragramForVastnessOrWasting),
TETRAGRAM_FOR_CONSTANCY => Ok(TaiXuanJingSymbols::TetragramForConstancy),
TETRAGRAM_FOR_MEASURE => Ok(TaiXuanJingSymbols::TetragramForMeasure),
TETRAGRAM_FOR_ETERNITY => Ok(TaiXuanJingSymbols::TetragramForEternity),
TETRAGRAM_FOR_UNITY => Ok(TaiXuanJingSymbols::TetragramForUnity),
TETRAGRAM_FOR_DIMINISHMENT => Ok(TaiXuanJingSymbols::TetragramForDiminishment),
TETRAGRAM_FOR_CLOSED_MOUTH => Ok(TaiXuanJingSymbols::TetragramForClosedMouth),
TETRAGRAM_FOR_GUARDEDNESS => Ok(TaiXuanJingSymbols::TetragramForGuardedness),
TETRAGRAM_FOR_GATHERING_IN => Ok(TaiXuanJingSymbols::TetragramForGatheringIn),
TETRAGRAM_FOR_MASSING => Ok(TaiXuanJingSymbols::TetragramForMassing),
TETRAGRAM_FOR_ACCUMULATION => Ok(TaiXuanJingSymbols::TetragramForAccumulation),
TETRAGRAM_FOR_EMBELLISHMENT => Ok(TaiXuanJingSymbols::TetragramForEmbellishment),
TETRAGRAM_FOR_DOUBT => Ok(TaiXuanJingSymbols::TetragramForDoubt),
TETRAGRAM_FOR_WATCH => Ok(TaiXuanJingSymbols::TetragramForWatch),
TETRAGRAM_FOR_SINKING => Ok(TaiXuanJingSymbols::TetragramForSinking),
TETRAGRAM_FOR_INNER => Ok(TaiXuanJingSymbols::TetragramForInner),
TETRAGRAM_FOR_DEPARTURE => Ok(TaiXuanJingSymbols::TetragramForDeparture),
TETRAGRAM_FOR_DARKENING => Ok(TaiXuanJingSymbols::TetragramForDarkening),
TETRAGRAM_FOR_DIMMING => Ok(TaiXuanJingSymbols::TetragramForDimming),
TETRAGRAM_FOR_EXHAUSTION => Ok(TaiXuanJingSymbols::TetragramForExhaustion),
TETRAGRAM_FOR_SEVERANCE => Ok(TaiXuanJingSymbols::TetragramForSeverance),
TETRAGRAM_FOR_STOPPAGE => Ok(TaiXuanJingSymbols::TetragramForStoppage),
TETRAGRAM_FOR_HARDNESS => Ok(TaiXuanJingSymbols::TetragramForHardness),
TETRAGRAM_FOR_COMPLETION => Ok(TaiXuanJingSymbols::TetragramForCompletion),
TETRAGRAM_FOR_CLOSURE => Ok(TaiXuanJingSymbols::TetragramForClosure),
TETRAGRAM_FOR_FAILURE => Ok(TaiXuanJingSymbols::TetragramForFailure),
TETRAGRAM_FOR_AGGRAVATION => Ok(TaiXuanJingSymbols::TetragramForAggravation),
TETRAGRAM_FOR_COMPLIANCE => Ok(TaiXuanJingSymbols::TetragramForCompliance),
TETRAGRAM_FOR_ON_THE_VERGE => Ok(TaiXuanJingSymbols::TetragramForOnTheVerge),
TETRAGRAM_FOR_DIFFICULTIES => Ok(TaiXuanJingSymbols::TetragramForDifficulties),
TETRAGRAM_FOR_LABOURING => Ok(TaiXuanJingSymbols::TetragramForLabouring),
TETRAGRAM_FOR_FOSTERING => 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) -> &str {
match self {
TaiXuanJingSymbols::MonogramForEarth => "monogram for earth",
TaiXuanJingSymbols::DigramForHeavenlyEarth => "digram for heavenly earth",
TaiXuanJingSymbols::DigramForHumanEarth => "digram for human earth",
TaiXuanJingSymbols::DigramForEarthlyHeaven => "digram for earthly heaven",
TaiXuanJingSymbols::DigramForEarthlyHuman => "digram for earthly human",
TaiXuanJingSymbols::DigramForEarth => "digram for earth",
TaiXuanJingSymbols::TetragramForCentre => "tetragram for centre",
TaiXuanJingSymbols::TetragramForFullCircle => "tetragram for full circle",
TaiXuanJingSymbols::TetragramForMired => "tetragram for mired",
TaiXuanJingSymbols::TetragramForBarrier => "tetragram for barrier",
TaiXuanJingSymbols::TetragramForKeepingSmall => "tetragram for keeping small",
TaiXuanJingSymbols::TetragramForContrariety => "tetragram for contrariety",
TaiXuanJingSymbols::TetragramForAscent => "tetragram for ascent",
TaiXuanJingSymbols::TetragramForOpposition => "tetragram for opposition",
TaiXuanJingSymbols::TetragramForBranchingOut => "tetragram for branching out",
TaiXuanJingSymbols::TetragramForDefectivenessOrDistortion => "tetragram for defectiveness or distortion",
TaiXuanJingSymbols::TetragramForDivergence => "tetragram for divergence",
TaiXuanJingSymbols::TetragramForYouthfulness => "tetragram for youthfulness",
TaiXuanJingSymbols::TetragramForIncrease => "tetragram for increase",
TaiXuanJingSymbols::TetragramForPenetration => "tetragram for penetration",
TaiXuanJingSymbols::TetragramForReach => "tetragram for reach",
TaiXuanJingSymbols::TetragramForContact => "tetragram for contact",
TaiXuanJingSymbols::TetragramForHoldingBack => "tetragram for holding back",
TaiXuanJingSymbols::TetragramForWaiting => "tetragram for waiting",
TaiXuanJingSymbols::TetragramForFollowing => "tetragram for following",
TaiXuanJingSymbols::TetragramForAdvance => "tetragram for advance",
TaiXuanJingSymbols::TetragramForRelease => "tetragram for release",
TaiXuanJingSymbols::TetragramForResistance => "tetragram for resistance",
TaiXuanJingSymbols::TetragramForEase => "tetragram for ease",
TaiXuanJingSymbols::TetragramForJoy => "tetragram for joy",
TaiXuanJingSymbols::TetragramForContention => "tetragram for contention",
TaiXuanJingSymbols::TetragramForEndeavour => "tetragram for endeavour",
TaiXuanJingSymbols::TetragramForDuties => "tetragram for duties",
TaiXuanJingSymbols::TetragramForChange => "tetragram for change",
TaiXuanJingSymbols::TetragramForDecisiveness => "tetragram for decisiveness",
TaiXuanJingSymbols::TetragramForBoldResolution => "tetragram for bold resolution",
TaiXuanJingSymbols::TetragramForPacking => "tetragram for packing",
TaiXuanJingSymbols::TetragramForLegion => "tetragram for legion",
TaiXuanJingSymbols::TetragramForCloseness => "tetragram for closeness",
TaiXuanJingSymbols::TetragramForKinship => "tetragram for kinship",
TaiXuanJingSymbols::TetragramForGathering => "tetragram for gathering",
TaiXuanJingSymbols::TetragramForStrength => "tetragram for strength",
TaiXuanJingSymbols::TetragramForPurity => "tetragram for purity",
TaiXuanJingSymbols::TetragramForFullness => "tetragram for fullness",
TaiXuanJingSymbols::TetragramForResidence => "tetragram for residence",
TaiXuanJingSymbols::TetragramForLawOrModel => "tetragram for law or model",
TaiXuanJingSymbols::TetragramForResponse => "tetragram for response",
TaiXuanJingSymbols::TetragramForGoingToMeet => "tetragram for going to meet",
TaiXuanJingSymbols::TetragramForEncounters => "tetragram for encounters",
TaiXuanJingSymbols::TetragramForStove => "tetragram for stove",
TaiXuanJingSymbols::TetragramForGreatness => "tetragram for greatness",
TaiXuanJingSymbols::TetragramForEnlargement => "tetragram for enlargement",
TaiXuanJingSymbols::TetragramForPattern => "tetragram for pattern",
TaiXuanJingSymbols::TetragramForRitual => "tetragram for ritual",
TaiXuanJingSymbols::TetragramForFlight => "tetragram for flight",
TaiXuanJingSymbols::TetragramForVastnessOrWasting => "tetragram for vastness or wasting",
TaiXuanJingSymbols::TetragramForConstancy => "tetragram for constancy",
TaiXuanJingSymbols::TetragramForMeasure => "tetragram for measure",
TaiXuanJingSymbols::TetragramForEternity => "tetragram for eternity",
TaiXuanJingSymbols::TetragramForUnity => "tetragram for unity",
TaiXuanJingSymbols::TetragramForDiminishment => "tetragram for diminishment",
TaiXuanJingSymbols::TetragramForClosedMouth => "tetragram for closed mouth",
TaiXuanJingSymbols::TetragramForGuardedness => "tetragram for guardedness",
TaiXuanJingSymbols::TetragramForGatheringIn => "tetragram for gathering in",
TaiXuanJingSymbols::TetragramForMassing => "tetragram for massing",
TaiXuanJingSymbols::TetragramForAccumulation => "tetragram for accumulation",
TaiXuanJingSymbols::TetragramForEmbellishment => "tetragram for embellishment",
TaiXuanJingSymbols::TetragramForDoubt => "tetragram for doubt",
TaiXuanJingSymbols::TetragramForWatch => "tetragram for watch",
TaiXuanJingSymbols::TetragramForSinking => "tetragram for sinking",
TaiXuanJingSymbols::TetragramForInner => "tetragram for inner",
TaiXuanJingSymbols::TetragramForDeparture => "tetragram for departure",
TaiXuanJingSymbols::TetragramForDarkening => "tetragram for darkening",
TaiXuanJingSymbols::TetragramForDimming => "tetragram for dimming",
TaiXuanJingSymbols::TetragramForExhaustion => "tetragram for exhaustion",
TaiXuanJingSymbols::TetragramForSeverance => "tetragram for severance",
TaiXuanJingSymbols::TetragramForStoppage => "tetragram for stoppage",
TaiXuanJingSymbols::TetragramForHardness => "tetragram for hardness",
TaiXuanJingSymbols::TetragramForCompletion => "tetragram for completion",
TaiXuanJingSymbols::TetragramForClosure => "tetragram for closure",
TaiXuanJingSymbols::TetragramForFailure => "tetragram for failure",
TaiXuanJingSymbols::TetragramForAggravation => "tetragram for aggravation",
TaiXuanJingSymbols::TetragramForCompliance => "tetragram for compliance",
TaiXuanJingSymbols::TetragramForOnTheVerge => "tetragram for on the verge",
TaiXuanJingSymbols::TetragramForDifficulties => "tetragram for difficulties",
TaiXuanJingSymbols::TetragramForLabouring => "tetragram for labouring",
TaiXuanJingSymbols::TetragramForFostering => "tetragram for fostering",
}
}
}