diff options
author | crupest <crupest@outlook.com> | 2023-10-05 20:56:07 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2023-10-05 20:56:07 +0800 |
commit | 6cd1d68baf219b5d3c742ba5fb3a9ee04e830999 (patch) | |
tree | 523c97530f235139ef89f9137997ca4b70b32237 /src/common/io/OpenFileFlag.cpp | |
parent | b09a5c7cea5b4eb32b3318c97b046f018b297d8c (diff) | |
download | cru-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.cpp | 19 |
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 |