/*
	This file is part of Fennix Kernel.

	Fennix Kernel is free software: you can redistribute it and/or
	modify it under the terms of the GNU General Public License as
	published by the Free Software Foundation, either version 3 of
	the License, or (at your option) any later version.

	Fennix Kernel is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
*/

#pragma once

namespace std
{
	class error_category
	{
		/* https://en.cppreference.com/w/cpp/error/error_category */
	};

	class error_code
	{
	public:
		error_code() noexcept
		{
		}

		error_code(int ec, const error_category &ecat) noexcept
		{
		}

		template <class ErrorCodeEnum>
		error_code(ErrorCodeEnum e) noexcept
		{
		}

		error_code(const error_code &other) = default;
		error_code(error_code &&other) = default;

		template <class ErrorCodeEnum>
		error_code &operator=(ErrorCodeEnum e) noexcept
		{
			return *this;
		}

		error_code &operator=(const error_code &other) = default;

		error_code &operator=(error_code &&other) = default;

		/* https://en.cppreference.com/w/cpp/error/error_code */
	};
}