aboutsummaryrefslogtreecommitdiff
path: root/src/common/io/OpenFileFlag.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-05 20:56:07 +0800
committercrupest <crupest@outlook.com>2023-10-05 20:56:07 +0800
commit6cd1d68baf219b5d3c742ba5fb3a9ee04e830999 (patch)
tree523c97530f235139ef89f9137997ca4b70b32237 /src/common/io/OpenFileFlag.cpp
parentb09a5c7cea5b4eb32b3318c97b046f018b297d8c (diff)
downloadcru-6cd1d68baf219b5d3c742ba5fb3a9ee04e830999.tar.gz
cru-6cd1d68baf219b5d3c742ba5fb3a9ee04e830999.tar.bz2
cru-6cd1d68baf219b5d3c742ba5fb3a9ee04e830999.zip
...
Diffstat (limited to 'src/common/io/OpenFileFlag.cpp')
-rw-r--r--src/common/io/OpenFileFlag.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/common/io/OpenFileFlag.cpp b/src/common/io/OpenFileFlag.cpp
new file mode 100644
index 00000000..6b9957fe
--- /dev/null
+++ b/src/common/io/OpenFileFlag.cpp
@@ -0,0 +1,19 @@
+#include "cru/common/io/OpenFileFlag.h"
+
+namespace cru::io {
+bool CheckOpenFileFlag(OpenFileFlag flags) {
+ auto has = [flags](OpenFileFlag flag) { return flags & flag; };
+
+ if ((has(OpenFileFlags::Append) || has(OpenFileFlags::Truncate) ||
+ has(OpenFileFlags::Create)) &&
+ !has(OpenFileFlags::Write)) {
+ return false;
+ }
+
+ if (has(OpenFileFlags::Truncate) && has(OpenFileFlags::Append)) {
+ return false;
+ }
+
+ return true;
+}
+} // namespace cru::io