1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-01 11:59:23 +00:00
serenity/AK/SetOnce.h
Liav A. 122c82a2a1 AK: Add the SetOnce class
The SetOnce class is meant to be used as one-time set boolean flag,
which is useful for flags that change only once and then stay immutable
forever.
2024-04-26 23:46:23 -06:00

37 lines
496 B
C++

/*
* Copyright (c) 2024, Liav A. <liavalb@hotmail.co.il>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Noncopyable.h>
#include <AK/Types.h>
namespace AK {
class SetOnce {
AK_MAKE_NONCOPYABLE(SetOnce);
AK_MAKE_NONMOVABLE(SetOnce);
public:
SetOnce() = default;
void set()
{
m_value = true;
}
bool was_set() const { return m_value; }
private:
bool m_value { false };
};
}
#if USING_AK_GLOBALLY
using AK::SetOnce;
#endif