/******************************************************************************
*	File		-	binary_serializable.h
*	Author		-	Joey Pollack
*	Date		-	2022/06/29 (y/m/d)
*	Mod Date	-	2022/06/29 (y/m/d)
*	Description	-	base class for any object that can be serialized to binary
******************************************************************************/

#ifndef LUNARIUM_BINARY_SERIALIZABLE_H_
#define LUNARIUM_BINARY_SERIALIZABLE_H_

#include <utils/op_res.h>

namespace lunarium
{
    class BinaryFileBuffer;

    class BinarySerializable
    {
    public:
        [[nodiscard]] OpRes Serialize(BinaryFileBuffer* pBuffer);
        [[nodiscard]] OpRes Deserialize(BinaryFileBuffer* pBuffer);
    };
}

#endif  // LUNARIUM_BINARY_SERIALIZABLE_H_