Data types and settings

Shared types and configuration.

enum class snt::core::DataType : uint16_t

List of value data types Bit flags describing the scalar and grouped data types supported by SNT.

Values:

enumerator None

No type.

enumerator Boolean

Boolean value.

enumerator String

UTF-8 string value.

enumerator Character

Character value.

enumerator Integer16

Signed 16-bit integer.

enumerator Integer32

Signed 32-bit integer.

enumerator Integer64

Signed 64-bit integer.

enumerator IntegerX

Extended signed integer (reserved).

enumerator Integer16_U

Unsigned 16-bit integer.

enumerator Integer32_U

Unsigned 32-bit integer.

enumerator Integer64_U

Unsigned 64-bit integer.

enumerator Float32

32-bit floating-point value.

enumerator Float64

64-bit floating-point value.

enumerator Float128

Extended precision floating-point value.

enumerator FloatX

Extended floating-point type (reserved).

enumerator Integer8

Signed 8-bit integer.

enumerator Integer8_U

Unsigned 8-bit integer.

enumerator Integer

Group containing all signed and unsigned integer types.

enumerator Integer_S

Group containing signed integers.

enumerator Integer_U

Group containing unsigned integers.

enumerator Float

Group containing floating-point types.

std::unordered_map<DataType, std::string> snt::core::DataTypeNames

Maps each DataType enumeration value to its human-readable name.

This lookup table provides string representations of all defined DataType values. It is primarily used for serialization, logging, and diagnostic output where textual names of data types are required.

constexpr std::string_view snt::core::KEYWORD_NONE

Keyword used for an absent value.

constexpr std::string_view snt::core::KEYWORD_TRUE

Keyword used for a true Boolean value.

constexpr std::string_view snt::core::KEYWORD_FALSE

Keyword used for a false Boolean value.

constexpr std::string_view snt::core::SYMBOL_ARRAY_START

Opening delimiter used for array rendering.

constexpr std::string_view snt::core::SYMBOL_ARRAY_END

Closing delimiter used for array rendering.

constexpr std::string_view snt::core::SYMBOL_ARRAY_DELIMITER

Element delimiter used for array rendering.

template<typename E>
constexpr auto snt::core::to_underlying(E e) noexcept

Converts a strongly-typed enum value to its underlying integral type.

Template Parameters:

E – Enumeration type.

Parameters:

e – Enum value to convert.

Returns:

The underlying integral value corresponding to e.

template<typename E>
constexpr E snt::core::operator|(E lhs, E rhs)

Performs a bitwise OR operation between two enum class values.

Template Parameters:

E – Enumeration type.

Parameters:
  • lhs – Left-hand side operand.

  • rhs – Right-hand side operand.

Returns:

A new enum value representing the union of both flags.

template<typename E>
constexpr E &snt::core::operator|=(E &lhs, E rhs)

Performs an in-place bitwise OR assignment on enum class values.

Template Parameters:

E – Enumeration type.

Parameters:
  • lhs – Left-hand side operand to modify.

  • rhs – Right-hand side operand.

Returns:

Reference to the modified lhs.

inline DataType snt::core::operator|(DataType lhs, DataType rhs)

Performs a bitwise OR operation on two DataType flags.

Parameters:
  • lhs – Left-hand side flag.

  • rhs – Right-hand side flag.

Returns:

A new DataType value representing the combined flags.

inline DataType snt::core::operator&(DataType lhs, DataType rhs)

Performs a bitwise AND operation on two DataType flags.

Parameters:
  • lhs – Left-hand side flag.

  • rhs – Right-hand side flag.

Returns:

A new DataType value representing the intersected flags.

inline DataType &snt::core::operator|=(DataType &lhs, DataType rhs)

Performs an in-place bitwise OR assignment on DataType flags.

Parameters:
  • lhs – Left-hand side flag reference to modify.

  • rhs – Right-hand side flag.

Returns:

Reference to the modified lhs.

inline DataType snt::core::operator~(DataType f)

Performs a bitwise NOT operation on a DataType flag.

Parameters:

f – Input flag to invert.

Returns:

A new DataType value with inverted bits.

inline bool snt::core::any(DataType a)

Test if there is some flag in a flag set

Parameters:

a – Input flag

Returns:

Returns true if some flag is a set