// Description: Fuzzy 3-state logic
#ifndef PASTELSYS_TRISTATE_H
#define PASTELSYS_TRISTATE_H
namespace Pastel
{
//! A triple state variable.
enum class TriState : integer
{
False = 0,
Negative = 0,
True = 1,
Positive = 1,
Maybe = 2,
Both = 2,
Neither = 2,
Zero = 2
};
void swap(TriState& left, TriState& right);
TriState triNot(TriState that);
TriState triMix(TriState left, TriState right);
TriState triEqual(TriState left, TriState right);
TriState triNotEqual(TriState left, TriState right);
TriState triAnd(TriState left, TriState right);
TriState triOr(TriState left, TriState right);
TriState triXor(TriState left, TriState right);
template <typename Type>
TriState triLess(
const Type& left, const Type& right);
}
#include "pastel/sys/tristate/tristate.hpp"
#endif