53 lines
991 B
C++
53 lines
991 B
C++
/***
|
|
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: Value.hpp
|
|
Date: 2021-10-24
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
namespace Aurora::Data
|
|
{
|
|
struct Value
|
|
{
|
|
AU_COPY_MOVE(Value);
|
|
|
|
#define CONSTRUCTOR(type, member)\
|
|
Value(type val)\
|
|
{\
|
|
primitive.member = val;\
|
|
}
|
|
CONSTRUCTOR(const AuVec3 &, vec3);
|
|
CONSTRUCTOR(const AuVec4 &, vec4);
|
|
CONSTRUCTOR(bool, boolean);
|
|
CONSTRUCTOR(double, number);
|
|
CONSTRUCTOR(AuInt64, sint);
|
|
CONSTRUCTOR(AuUInt64, uint);
|
|
#undef CONSTRUCTOR
|
|
|
|
Value(uuids::uuid val)
|
|
{
|
|
UUID = val;
|
|
}
|
|
|
|
Value(const AuString &val)
|
|
{
|
|
string = val;
|
|
}
|
|
|
|
Value(const char *val)
|
|
{
|
|
string = val;
|
|
}
|
|
|
|
Value()
|
|
{
|
|
|
|
}
|
|
|
|
PrimitiveValue primitive;
|
|
uuids::uuid UUID;
|
|
AuString string;
|
|
};
|
|
} |